CL_DEVICE_MAX_MEM_ALLOC_SIZE looking for an device with ~ 1GB

hi,

is there any Nvidia device which has an CL_DEVICE_MAX_MEM_ALLOC_SIZE of ~ 1 GB?

Maybe the Tesla series?


Srdja

As has been pointed out in, e.g., this thread, CL_DEVICE_MAX_MEM_ALLOC_SIZE should be the maximum size of memory objects. The OpenCL specs demand that it is at least a quarter of the total memory (which I find a severe restriction). However, NVIDIAs (and Apple’s) OpenCL implementations always return exactly that quarter, even if you can create larger memory objects in practice, so this looks more like a misinterpretation of the specs or a kind of bug.

Note that while philipjfry is right when saying that you can allocate blocks larger than CL_DEVICE_MAX_MEM_ALLOC_SIZE on NVIDIA, in practice I found this to slow down memory access compared to allocating multiple blocks of smaller size. Probably some memory caching issue, as suggested elsewhere in this forum, IIRC.

hmm…then i have to think about splitting the memory block into appropriate pieces…


Srdja

Hello !
The Quadro 6000 with its 6GB return a CL_DEVICE_MAX_MEM_ALLOC_SIZE of 1.2GB, ie exactly 1/4th.
Note that we are able to allocate larger buffer than CL_DEVICE_MAX_MEM_ALLOC_SIZE on nVIDIA GPU. We did not have tested perfomance impact for large block.