aclrtMemMapSelectedLink
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
☓ |
√ |
|
☓ |
|
☓ |
|
☓ |
|
☓ |
功能说明
将虚拟地址virPtrDst映射到虚拟地址virPtrSrc对应的物理地址,可以通过linkIdx选择HCCS链路或者SIO链路。
函数原型
1 | aclError aclrtMemMapSelectedLink(void *virPtrDst, size_t size, void *virPtrSrc, uint32_t linkIdx) |
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
virPtrDst |
输入 |
待映射的虚拟内存地址。 需要通过aclrtReserveMemAddress接口提前预留虚拟内存,然后将虚拟内存的首地址作为入参传入本接口。不支持将虚拟内存首地址进行偏移后再传入本接口。 |
size |
输入 |
虚拟内存大小,单位Byte。 virPtrDst与virPtrSrc处的虚拟内存大小需保持一致,且与size相等。 |
virPtrSrc |
输入 |
已与物理内存建立映射关系的虚拟内存地址。 需提前通过aclrtMapMem接口完成虚拟内存与物理内存的映射,然后将虚拟内存的首地址作为入参传入本接口。不支持对虚拟内存首地址进行偏移后再传入本接口。 |
linkIdx |
输入 |
链路标识。
宏定义如下: #define ACL_RT_MEM_LINK_IDX_0 0U // SIO #define ACL_RT_MEM_LINK_IDX_1 1U // HCCS |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
若virPtrSrc虚拟内存的首地址在偏移后映射至多个不同的物理内存,则在调用aclrtMemMapSelectedLink接口将virPtrDst与virPtrSrc进行映射时,virPtrDst同样会映射至这些不同的物理内存,且virPtrDst与virPtrSrc的地址偏移量保持一致。在此场景下,需多次调用aclrtUnmapMem接口取消virPtrDst与多个物理地址之间的映射关系。
父主题: 虚拟内存管理