RegisterMem
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          x  | 
       
函数功能
注册内存地址。用于TransferSync调用指定本地内存地址和远端内存地址,TransferSync指定的地址可以为注册的地址子集,其中本地内存地址需在当前AdxlEngine进行注册,远端内存地址需要在远端AdxlEngine进行注册。
函数原型
          1
           | 
         
          Status RegisterMem(const MemDesc &mem, MemType type, MemHandle &mem_handle)  | 
        
参数说明
返回值
- SUCCESS:成功
 - PARAM_INVALID:参数错误
 - 其他:失败
 
异常处理
无
约束说明
- 在调用Connect与对端建链之前需要完成所有local内存的注册。
 - 单进程支持注册的内存个数上限是256。
 - 最大注册50GB的Device内存,20GB的Host内存。注册内存越大,占用的OS内存越多。
 - 注册Host内存需使用“aclrtMallocHost”进行申请,该接口申请的内存地址自动对齐。
 - 注册Device内存使用“aclrtMalloc”进行申请,如通过HCCS传输,则内存分配规则需配置为ACL_MEM_MALLOC_HUGE_ONLY。
 - 该接口需要和Initialize运行在同一个线程上,如需切换线程调用该接口,需要在Initialize所在线程调用“aclrtGetCurrentContext”获取context,并在新线程调用“aclrtSetCurrentContext”设置context。
 
     父主题: ADXL接口