开发者
下载

函数:host_register_v2

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

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

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

Atlas 训练系列产品

x

Atlas 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

功能说明

注册Host内存地址。

取消注册需调用acl.rt.host_unregister接口。

函数原型

  • C函数原型
    1
    aclError aclrtHostRegisterV2(void *ptr, uint64_t size, uint32_t flag)
    
  • python函数
    1
    ret = acl.rt.host_register_v2ptrsizeflag
    

参数说明

参数名

说明

ptr

Host内存地址。

Host内存地址需4K页对齐。

当os内核版本为5.10或更低时,使用非锁页内存会导致异常,因此必须调用aclrtMallocHost接口来申请Host锁页内存。

当os内核版本为5.10以上时,支持使用非锁页的Host内存,因此既支持调用aclrtMallocHost接口申请Host锁页内存,也支持使用malloc接口申请Host非锁页内存。

size

内存大小,单位Byte。

flag

内存注册类型。

  • 0x2:ACL_HOST_REG_MAPPED:将Host内存映射注册为Device可访问的内存地址,再配合调用acl.rt.host_get_device_pointer接口获取映射后的Device内存地址。
  • 0x4:ACL_HOST_REG_IOMEMORY:将Host上第三方PCIe设备的IO space(寄存器、缓存)映射注册为Device可访问,包括读写。预留选项,当前不支持。
  • 0x8:ACL_HOST_REG_READONLY:Host内存映射注册为Device只读。预留选项,当前不支持。
  • 0x10000000:ACL_HOST_REG_PINNED:将Host非锁页内存注册为锁页内存。

返回值说明

返回值

说明

ret

int,返回0表示成功,返回其它值表示失败。

约束说明

对于Atlas A3 训练系列产品/Atlas A3 推理系列产品,若将flag设置为ACL_HOST_REG_IOMEMORY,则仅支持X86架构,不支持ARM架构。