Catalyst 11.6 is a really strange release.
I have 6950 equipped with 2GB of RAM. Up until 11.6 CL_DEVICE_GLOBAL_MEM_SIZE was always 1GB which is one half of available RAM. But now with 11.6 the global memory size for the device is 838860800 bytes, that is 800MB. CL_DEVICE_MAX_MEM_ALLOC_SIZE is reduces in the same degree.
I understand that AMD is free to change these values as far as they fit into OpenCL requirements. But I wonder why is only 39% of RAM available to OpenCL buffers?
You can still get more memory usage if you use images in addition to global memory (or even just images).
Thanks, Rick. But it's kind of awckward workaround. Like it was with "use images in order to get cached reads". Now we have cached reads from const restrict buffers.
export GPU_MAX_ALLOC_PERCENT=100 - get all 2GB
I searched for the GPU_MAX_ALLOC_PERCENT and found just one page: http://forums.amd.com/devforum/textthread.cfm?catid=390&threadid=149197
It seems that it works only formally. Yes, you will be able to allocate buffers up to that limit, but the device memory usage remains the same - the surplus buffers are swapped to host memory. And the solution seems for Unix only.
i Windows takzhe, tol?ko ne "eksport" a v sistemnye peremennye, znachenie 1... YA v rabote ne proveryal no clinfo i AIDA64 raportovali o dostupnosti vsego ob?ema pamyati
no this enviroment variables shold work on windows too. but they are just too unreliable.
Originally posted by: ED1980 i Windows takzhe, tol?ko ne "eksport" a v sistemnye peremennye, znachenie 1... YA v rabote ne proveryal no clinfo i AIDA64 raportovali o dostupnosti vsego ob?ema pamyati
Well, the question is not how to hack it. For my goals even 250MB is more than enough. But I wonder why only 39% of device RAM is available to OpenCL runtime while there are people who are asking for 1GB of CL_DEVICE_MAX_MEM_ALLOC_SIZE.
This is strange of course, I would have understood if the needs of the graphics (showing desktop) has been reserved a specific amount of memory, say 50 ~ 100 megabytes, but half or more, especially in the case of video cards have 1 - 2 gigabytes of memory, it is pointless
Yep, agree. NVidia does this way (soem megabytes reserved for video-buffer).