Greetings,
I am running an OpenCL application under Linux 64 bit with the CPU device (server with dozens of processors). I have a problem because I can't reserve a memory buffer greater than around 1GB (that's what I get checking CL_DEVICE_MAX_MEM_ALLOC_SIZE). The CL_DEVICE_GLOBAL_MEM_SIZE only indicates around 3GB of memory when the server has hundreds of GB.
Is there any 32-bit limitation in the runtime? I have checked that I'am linking with the x86_64 libraries.
Thanks.
Originally posted by: jvsala
Is there any 32-bit limitation in the runtime? I have checked that I'am linking with the x86_64 libraries.
No, but I believe the available memory is currently "hardcoded" to be equal to the amount of megabytes specified in environment variable CPU_MAX_HEAP_SIZE.
At least it used to be that way. I haven't messed with those variables in a while.(And I'm also using Windows) My variable is currently set to 6144
Originally posted by: Illusio Originally posted by: jvsala
Is there any 32-bit limitation in the runtime? I have checked that I'am linking with the x86_64 libraries.
No, but I believe the available memory is currently "hardcoded" to be equal to the amount of megabytes specified in environment variable CPU_MAX_HEAP_SIZE.
At least it used to be that way. I haven't messed with those variables in a while.(And I'm also using Windows) My variable is currently set to 6144
Thanks for your tip. But it seems that it doesn't work. I have found that I am not the only one experiencing this:
http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=122369&enterthread=y
In the last message of this thread it is said that CPU_MAX_HEAP_SIZE is not supported at all. (Anyway I have tested setting the variable with a big value and it hasn't had any effect).
So it seems that for some reason the runtime, even in 64 bits, doesn't support more than buffers of 1GB. Does anyone now if this restriction will be lifted in the future? I have a big computation whose output is bigger than that. Luckily I can chop the result by partitioning the NDRange and saving the pieces, but it is a bit of a bummer that having tons of RAM and CPUs I can only use buffers of 1GB. OpenCL on a big multiprocessor really screams. It is a pity that I can't use it to its full potential.
Ahh yes sorry. Should have tested before answering I guess. 😃 It doesn't respect that variable anymore on my machine either.