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接口