hi,
i need to use at least 500 megabytes of memory in my kernel. got a 4650 with 1024MB here and even with
export GPU_INITIAL_HEAP_SIZE=512
export GPU_MAX_ALLOC_SIZE=512
export GPU_MAX_HEAP_SIZE=512
CLInfo reports:
Max memory allocation: 268435456
Global memory size: 1073741824
a test case shows that using opencl with the cpu device allocates ~500mb of memory, so i should work on the GPU as well. my program just exits with ERROR: clCreateBuffer(-61), regardless if i set all env variables to 700 or more megabytes.
any help would be appreciated.
PS: ubuntu 10.04 32bit, catalyst 10.04, stream sdk 2.1
Nou wrote in another forum GPU_MAX_ALLOC_SIZE doesn't work anymore with the new SDK. It looks like the largest single allocable memory buffer is 256MB, no matter what setting you use.
this is a major drawback, especially for HPC usage. i need to use as much as possible GPU memory to reduce the amount of host transfers.
total data size is > 8TB, which is calculated completly on the GPU and transfered back into the host. don't got a clue anyway how i should do this in an efficient way.
regards
so when i enqueue copy to buffer an execution of kernel on another buffer it will happend paralel when i call clFinish()?
With the current implementation, optimizations are not taken care. At present what you can do is to be careful not to do redundant transfers.