昇腾社区首页
中文
注册

函数:host_register

产品支持情况

产品

是否支持

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

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 训练系列产品

Atlas 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 200/300/500 推理产品

x

功能说明

将Host内存映射注册为Devcie可访问的地址,供Device侧网卡访问。映射后的Device地址不能用于内存复制操作。

本接口与acl.rt.host_unregister接口成对使用。

函数原型

  • C函数原型
    1
    aclError aclrtHostRegister(void *ptr, uint64_t size, aclrtHostRegisterType type, void **devPtr)
    
  • python函数
    1
    dev_ptr, ret = acl.rt.host_register(ptr, size, type)
    

参数说明

参数名

说明

ptr

int,Host内存地址。Host内存地址需4K页对齐。当os内核版本为5.10或更低时,使用非锁页内存会导致异常,因此必须调用acl.rt.malloc_host接口来申请Host内存;当os内核版本为5.10以上时,支持使用非锁页的Host内存,因此也支持不调用acl.rt.malloc_host接口申请Host内存。

size

int,内存大小,单位Byte。

type

int,内存注册类型。当前仅支持ACL_HOST_REGISTER_MAPPED,表示将Host内存映射注册为Devcie可访问的。

返回值说明

返回值

说明

dev_ptr

int,Host内存映射成的Device可访问的内存地址。

ret

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