昇腾社区首页
中文
注册
开发者
下载

aclrtMemExportToShareableHandleV2

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

功能说明

将本进程通过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

输入

是否启用进程白名单校验。

取值为如下宏:

  • ACL_RT_VMM_EXPORT_FLAG_DEFAULT:默认值,启用进程白名单校验。

    配置为该值时,需单独调用aclrtMemSetPidToShareableHandleV2接口将使用shareableHandle的进程ID设置为白名单。

  • ACL_RT_VMM_EXPORT_FLAG_DISABLE_PID_VALIDATION:关闭进程白名单校验。

    配置为该值时,则无需调用aclrtMemSetPidToShareableHandleV2接口。

宏的定义如下:

#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查询与设置