---
title: aclrtHostRegister
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/API/runtimeapi/aclcppdevg_03_1804.html
sourcePath: /source/zh/CANNCommunityEdition/920beta1/API/runtimeapi/aclcppdevg_03_1804.html
indexId: 5f373e931937d818c951095da4a59a7b1baaf9b71385a18d60e1352e6db3440679
---
# aclrtHostRegister

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Ascend 950PR | √ |
| Ascend 950DT | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

将Host内存映射注册为Device可访问的内存地址，并获取映射后的Device内存地址，该地址仅支持在Device上访问，例如作为核函数的参数，供Device的AI Core访问。若涉及Host侧的内存处理，需使用原始Host内存地址。取消注册Host内存需调用aclrtHostUnregister接口。


#### 函数原型

```
aclError aclrtHostRegister(void *ptr, uint64_t size, aclrtHostRegisterType type, void **devPtr)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| ptr | 输入 | Host内存地址。 Host内存地址需4KB页对齐。 当os内核版本为5.10或更低时，使用非锁页内存会导致异常，因此必须调用aclrtMallocHost接口来申请Host锁页内存。 当os内核版本为5.10以上时，支持使用非锁页的Host内存，因此既支持调用aclrtMallocHost接口申请Host锁页内存，也支持使用malloc接口申请Host非锁页内存。 |
| size | 输入 | 内存大小，单位Byte。 |
| type | 输入 | 内存注册类型。类型定义请参见aclrtHostRegisterType。 |
| devPtr | 输出 | Host内存映射成的Device可访问的内存地址。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。
