cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

jvsala
Adept II

Stream SDK 2.2 Memory Limit

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.

 

0 Likes
3 Replies
Illusio
Journeyman III

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

 

0 Likes

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.

 

 

 

0 Likes

Ahh yes sorry. Should have tested before answering I guess. 😃 It doesn't respect that variable anymore on my machine either.

 

0 Likes