产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
在Device上分配size大小的线性内存,并通过*devPtr返回已分配内存的指针,且内存首地址64字节对齐。
与aclrtMalloc接口相比,本接口在申请内存时,还可以指定内存相关的配置信息。
使用本接口申请的内存,需要通过aclrtFree接口或aclrtFreeWithDevSync接口释放内存。
1 | aclError aclrtMallocWithCfg(void **devPtr, size_t size, aclrtMemMallocPolicy policy, aclrtMallocConfig *cfg) |
参数名 |
输入/输出 |
说明 |
|---|---|---|
devPtr |
输出 |
“Device上已分配内存的指针”的指针。 |
size |
输入 |
申请内存的大小,单位Byte。 size不能为0。 |
policy |
输入 |
内存分配规则。类型定义请参见aclrtMemMallocPolicy。 若配置的内存分配规则超出aclrtMemMallocPolicy取值范围,size≥2M时,按大页申请内存,否则按普通页申请内存。 |
cfg |
输入 |
内存配置信息。类型定义请参见aclrtMallocConfig。 不指定配置时,此处可传NULL。 |
返回0表示成功,返回其他值表示失败,请参见aclError。
policy处支持配置单个枚举项,也支持配置多个枚举项位或。位或时,支持以下3组中枚举项组合,例如ACL_MEM_TYPE_HIGH_BAND_WIDTH | ACL_MEM_ACCESS_USER_SPACE_READONLY | ACL_MEM_MALLOC_HUGE_FIRST: