aclrtMemExportToShareableHandleV2
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
功能说明
将本进程通过aclrtMallocPhysical接口获取到的Device物理内存handle导出,以便后续将Device物理内存共享给其它进程。
本接口是在接口aclrtMemExportToShareableHandle基础上进行了增强,用户可通过shareType参数指定导出AI Server内的共享句柄,或导出跨AI Server的共享句柄。AI Server通常多个NPU设备组成的服务器形态的统称。
本接口的使用流程可参见aclrtMemExportToShareableHandle,但本接口需配合调用aclrtMemSetPidToShareableHandleV2接口设置进程白名单、调用aclrtMemImportFromShareableHandleV2接口导入共享句柄。
函数原型
aclError aclrtMemExportToShareableHandleV2(aclrtDrvMemHandle handle, uint64_t flags, aclrtMemSharedHandleType shareType, void *shareableHandle)
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
handle |
输入 |
存放物理内存信息的handle。 需先在本进程调用aclrtMallocPhysical接口申请物理内存,该接口调用成功,会返回一个handle。 handle与shareableHandle是一一对应的关系,在同一个进程中,不允许一对多、或多对一,否则报错,例如重复调用本接口导出时则会返回报错。 |
flags |
输入 |
是否启用进程白名单校验。 取值为如下宏:
宏的定义如下: #define ACL_RT_VMM_EXPORT_FLAG_DEFAULT 0x0UL #define ACL_RT_VMM_EXPORT_FLAG_DISABLE_PID_VALIDATION 0x1UL |
shareType |
输入 |
导出的共享句柄类型。 |
shareableHandle |
输出 |
指向共享句柄的指针。其指向的内存由调用者提供,大小根据shareType决定: 若shareType为ACL_MEM_SHARE_HANDLE_TYPE_DEFAULT,则指向一个uint64_t变量。 若shareType为ACL_MEM_SHARE_HANDLE_TYPE_FABRIC,则指向一个aclrtMemFabricHandle结构体。 typedef struct aclrtMemFabricHandle {
uint8_t data[128];
} aclrtMemFabricHandle;
|
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
Atlas 200I/500 A2 推理产品 上,Ascend RC形态不支持调用本接口。
- 支持AI Server内跨进程共享物理内存的产品型号如下,若跨Device还需配合aclrtDeviceEnablePeerAccess接口使用。
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas 训练系列产品 Atlas 推理系列产品 - 仅
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 支持跨AI Server的跨进程共享物理内存。 - 不支持昇腾虚拟化实例场景。
- 不支持算力分组场景。
算力分组的相关接口请参见算力Group查询与设置。