I’ve noticed that the property CL_DEVICE_ADDRESS_BITS is set to 32 for Tesla M2070 (driver version is 304.64, Ubuntu 10.04 x86_64). But this GPU has 6 GB of global memory. This makes extra 2 GB totally unusable.
Is there any way to fix this issue?
Also, profiler and cuda-memcheck from recent releases (4.2 and higher) don’t work for OpenCL applications any more.
What’s wrong with OpenCL support?
I got from a dev that NVIDIA was currently supporting only OpenCL 1.1, but does not plan to support OpenCL 1.2 or higher in the (near?) future.
That being said, there exists some other tools that are OpenCL compatible. TAU (Tuning and Analysis Utilities) from the University of Oregon (http://www.cs.uoregon.edu/Research/tau/home.php) supports CUDA and OpenCL (http://www.nic.uoregon.edu/tau-wiki/Guide:TAUGPU), and allows you to profile your code. For debugging purposes, you can look at the following thread on Stackoverflow: http://stackoverflow.com/questions/2362186/debugger-for-opencl – gDEBugger seems interesting for debugging and analyzing memory for OpenCL applications.
I do not know if it is possible to change the property CL_DEVICE_ADDRESS_BITS to 64 to get access to the 6 GB of memory. With an AMD card it is apparently possible to do that by setting the environment variable GPU_MAX_ALLOC_PERCENT to a 100 (http://devgurus.amd.com/thread/152036), but I do not have an answer for Tesla cards.
Thanks for advice! I heard that plans about OpenCL too.
I’ve found out that cuda-memcheck works fine with driver 295.75. Unfortunately it doesn’t fix the problem with address bits.