AnsweredAssumed Answered

What is the true limit of OpenCL 3-D image?

Question asked by roboto on Apr 28, 2014
Latest reply on May 12, 2014 by roboto

Hi All,

 

What is the image memory limit for OpenCL 1.2?

 

On my AMD 7970 6GB, the following:

size_t sz=0, sx, sy;

clGetDeviceInfo(device_, CL_DEVICE_IMAGE3D_MAX_DEPTH, sizeof(sz), &sz, NULL);

clGetDeviceInfo(device_, CL_DEVICE_IMAGE3D_MAX_HEIGHT, sizeof(sy), &sy, NULL);

clGetDeviceInfo(device_, CL_DEVICE_IMAGE3D_MAX_WIDTH, sizeof(sx), &sx, NULL);

 

Returns 2048 for sx, sy, sz.

 

But I can't allocate more than 1000, 1000, 1000, image size using a volume descriptor as:

cl_image_desc bigImageDesc = {CL_MEM_OBJECT_IMAGE3D, 1024, 1024, 1024, 0, 0, 0, 0, 0, NULL};

const cl_image_format imageFormat = {CL_R, CL_FLOAT};

bigImage = clCreateImage(context, CL_MEM_READ_WRITE, &imageFormat, &bigImageDesc, NULL, &err);

 

The behavior is that when doing a clEnqueueReadImage , the call never returns. When doing smaller image sizes like 1000x1000x1000, everything is ok. Is the image size limited by 32bit addressing ? Is there a way around this like the is for buffer memory (i.e GPU_FORCE_64BIT_PTR) ?

 

My rig:

Win7 64

24GB Ram

i7 QuadCore

AMD 7970 6GB

 

Thanks!

Outcomes