How can I allocate a single large buffer of 8GB ?
My Core i7 reports
How can I increase the MAX ALLOC SIZE limit in Intel OpenCL SDK?
Sorry it took a while for responding. Not sure if you are still looking for an answer. In theory you cannot allocate a buffer whose size is more than CL_DEVICE_MAX_MEM_ALLOC_SIZE (OpenCL doesn't allow that). But if you need a buffer that's larger than CL_DEVICE_MAX_MEM_ALLOC_SIZE, you might have to allocate multiple buffers and implement logic in your code to merge the result from these multiple buffers. What exactly are you trying to do?
I know this is an old thread, however I have the same issue - I cannot allocate buffers that are > 1/4th of my available memory due to someone implementing an artificial limit.
The OpenCL specification does not seem to imply this limit. Please read https://www.khronos.org/registry/cl/specs/opencl-1.2.pdf on page 39 table 4.3 it states:
Max size of memory object allocation in bytes. The minimum value is max (1/4th of CL_DEVICE_GLOBAL_MEM_SIZE , 128*1024*1024) for devices that are not of type CL_DEVICE_TYPE_CUSTOM.
Can someone please tell me why Intel OpenCL drivers (v4.4 of July 2014) impose the minimum value and not just let the CL_DEVICE_MAX_MEM_ALLOC_SIZE be set to be as big as the memory available?
I know this thread is old and was unearthed before but this is exactly the question I would like to ask and I did not want to open another thread. Maybe somebody got the answer somewhere in the meantime.
Why is the limit set to 1/4th?
I'm not an expert on the OpenCL specification, however this is what OpenCL 1.2 spec sheet says: "The minimum value is max (1/4th of CL_DEVICE_GLOBAL_MEM_SIZE , 128*1024*1024) "
so, the specification specifies a minimum value. This does not mean the minimum value should be implemented as the maximum value!