【发布时间】:2019-01-21 12:55:46
【问题描述】:
我正在试验 Vivante GPU GC2000 系列,其中 clinfo 产生了以下结果。
CL_DEVICE_GLOBAL_MEM_SIZE: 64 MByte
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 32 MByte
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE: Read/Write
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 64
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 4096
CL_DEVICE_LOCAL_MEM_SIZE: 1 KByte
CL_DEVICE_LOCAL_MEM_TYPE: Global
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 4 KByte
CL_DEVICE_MAX_CONSTANT_ARGS: 9
从上面的输出可以看出,64MByte 是全局内存分配的限制。
现在,当我尝试分配 900Mbytes 全局大小时,我没有收到任何错误并且它是成功的。
int noOfBytes = (900 * 1024 * 1024);
memPtr = clCreateBuffer(context, CL_MEM_READ_WRITE, noOfBytes, NULL, &err);
if ( err != CL_SUCESS) {
printf ("Ooops.. Failed");
}
听起来这个实验证明了 clinfo 声称的内容。我是否缺少任何理论或其他内容?
【问题讨论】: