aclrtMemsetAsync
aclrtFreeHost
函数功能
释放内存,同步接口。
aclrtFreeHost接口只能释放通过aclrtMallocHost接口申请的内存。
函数原型
aclError aclrtFreeHost(void *hostPtr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| hostPtr | 输入 | 待释放内存的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见数据传输。
父主题: 内存管理
aclrtMemset
函数功能
初始化内存,将内存中的内容设置为指定的值,同步接口。
要初始化的内存支持在Host侧或Device侧,系统根据地址判定是Host还是Device。
函数原型
aclError aclrtMemset (void *devPtr, size_t maxCount, int32_t value, size_t count)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| devPtr | 输入 | 内存起始地址的指针。 |
| maxCount | 输入 | 内存的最大长度,单位Byte。 |
| value | 输入 | 设置的值。 |
| count | 输入 | 需要设置为指定值的内存长度,单位Byte。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtMemsetAsync
函数功能
初始化内存,将内存中的内容设置为指定的值,异步接口。
要初始化的内存支持在Host侧或Device侧,系统根据地址判定是Host还是Device。
约束说明
该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,一定要调用aclrtSynchronizeStream接口确保内存初始化的任务已执行完成。
函数原型
aclError aclrtMemsetAsync(void *devPtr, size_t maxCount, int32_t value, size_t count, aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| devPtr | 输入 | 内存起始地址的指针。 |
| maxCount | 输入 | 内存的最大长度,单位Byte。 |
| value | 输入 | 设置的值。 |
| count | 输入 | 需要设置为指定值的内存长度,单位Byte。 |
| stream | 输入 | 指定stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtMemcpy
函数功能
实现同步内存复制。
函数原型
aclError aclrtMemcpy(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| dst | 输入 | 目的内存地址指针。 |
| destMax | 输入 | 目的内存地址的最大内存长度,单位Byte。 |
| src | 输入 | 源内存地址指针。 |
| count | 输入 | 内存复制的长度,单位Byte。 |
| kind | 输入 | 内存复制的类型,预留参数,配置枚举值中的值无效,系统内部会根据源内存地址指针、目的内存地址指针判断是否可以将源地址的数据复制到目的地址,如果不可以,则系统会返回报错。 text<br>typedef enum aclrtMemcpyKind {<br>ACL_MEMCPY_HOST_TO_HOST, // Host内的内存复制<br>ACL_MEMCPY_HOST_TO_DEVICE, // Host到Device的内存复制<br>ACL_MEMCPY_DEVICE_TO_HOST, // Device到Host的内存复制<br>ACL_MEMCPY_DEVICE_TO_DEVICE, // Device内或Device间的内存复制<br>} aclrtMemcpyKind;<br> |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见数据传输。
父主题: 内存管理
aclrtMemcpyAsync
函数功能
实现异步内存复制。
约束说明
- 调用本接口进行内存复制时,源地址和目的地址都必须64字节对齐。
- 本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,一定要调用aclrtSynchronizeStream接口确保内存复制的任务已执行完成。
- 本接口不支持异步Host内的内存复制功能,因此调用本接口选择ACL_MEMCPY_HOST_TO_HOST类型进行内存复制时,任务下发成功,但系统内部处理该任务时会返回失败。
函数原型
aclError aclrtMemcpyAsync(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind, aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| dst | 输入 | 目的内存地址指针。 |
| destMax | 输入 | 目的内存地址的最大内存长度,单位Byte。 |
| src | 输入 | 源内存地址指针。 |
| count | 输入 | 内存复制的长度,单位Byte。 |
| kind | 输入 | 内存复制的类型。 text<br>typedef enum aclrtMemcpyKind {<br>ACL_MEMCPY_HOST_TO_HOST, // Host内的内存复制<br>ACL_MEMCPY_HOST_TO_DEVICE, // Host到Device的内存复制<br>ACL_MEMCPY_DEVICE_TO_HOST, // Device到Host的内存复制<br>ACL_MEMCPY_DEVICE_TO_DEVICE, // Device内或Device间的内存复制<br>} aclrtMemcpyKind;<br> |
| stream | 输入 | 指定stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见数据传输。
父主题: 内存管理
aclrtGetMemInfo
函数功能
获取指定属性的AscendCL应用可用内存的空闲大小和总大小,不包括系统预留内存大小。同步接口。
请根据实际硬件支持的情况,选择对应属性的内存,否则调用本接口获取到的空闲大小和总大小都为0。
约束说明
调用本接口前是必须先指定用于计算的Device(例如调用aclrtSetDevice接口指定用于计算的Device),因此本接口中不体现Device ID。
函数原型
aclError aclrtGetMemInfo(aclrtMemAttr attr, size_t *free, size_t *total)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| attr | 输入 | 需要查询的内存的属性值。 |
| free | 输出 | 对应属性内存空闲大小的指针,单位Byte。 |
| total | 输出 | 对应属性内存总大小的指针,单位Byte。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
在线提单