我在一个工作组大小为16*16和工作-全局大小为1024*1024的OpenCL上执行NDRange程序。其应用是矩阵乘法。当两个输入矩阵大小都很小时,它工作得很好。但是,当输入矩阵的大小变大时,例如大于20000*20000,则在入队范围内的函数中报告错误"CL_MEM_OBJECT_ALLOCATION_FAILURE“。
我很困惑。我不熟悉内存分配。理由是什么呢?
发布于 2013-08-10 04:44:10
使用clGetDeviceInfo,,您可以使用CL_DEVICE_GLOBAL_MEM_SIZE,查询设备的全局内存大小,并使用CL_DEVICE_MAX_MEM_ALLOC_SIZE.查询单个内存对象中的最大内存大小。三个矩阵的20000*20000*大小(浮点数)=1.6GB可能超过了这些限制。
https://stackoverflow.com/questions/18158184
复制相似问题