Hi!
I would like to use OpenCL 1.2. I’m running Ubuntu 12.04 64-bit, have a GTX 690 GPU and managed to install the 319.32 driver after much trouble. When running my OpenCL application it acknowledges the driver and reports OpenCL 1.1 and CUDA 4.2.1. I have a hard time understanding if the driver or the card is supposed to support OpenCL 1.2 at all (ridiculously hard to find OpenCL info on NVIDIA’s site, for some reason).
Does anyone know if I’m able to run OpenCL 1.2 and what steps would be needed in that case?
Thanks!
birdie
August 14, 2013, 5:10pm
2
If your app uses OpenCL 1.2 specific features , you’re probably out of luck.
Here’s the list of the functions supported by NVIDIA drivers:
Symbol table '.dynsym' contains 105 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00002120 59 FUNC GLOBAL DEFAULT 10 clGetProgramInfo
2: 00000000 41 FUNC GLOBAL DEFAULT UND sprintf@GLIBC_2.0 (2)
3: 00002610 101 FUNC GLOBAL DEFAULT 10 clEnqueueWriteImage
4: 00000000 162 FUNC WEAK DEFAULT UND __register_frame_info_bas@GCC_3.0 (3)
5: 00002e70 122 FUNC GLOBAL DEFAULT 10 clEnqueueReadBufferRect
6: 00001b70 83 FUNC GLOBAL DEFAULT 10 clCreateCommandQueue
7: 00001e90 56 FUNC GLOBAL DEFAULT 10 clGetMemObjectInfo
8: 00002480 87 FUNC GLOBAL DEFAULT 10 clEnqueueReadBuffer
9: 00001fe0 69 FUNC GLOBAL DEFAULT 10 clCreateProgramWithSource
10: 00002a80 86 FUNC GLOBAL DEFAULT 10 clCreateFromGLBuffer
11: 000024e0 87 FUNC GLOBAL DEFAULT 10 clEnqueueWriteBuffer
12: 00002460 31 FUNC GLOBAL DEFAULT 10 clFinish
13: 000029a0 94 FUNC GLOBAL DEFAULT 10 clEnqueueNativeKernel
14: 00002a00 38 FUNC GLOBAL DEFAULT 10 clEnqueueMarker
15: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
16: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
17: 00002250 31 FUNC GLOBAL DEFAULT 10 clReleaseKernel
18: 000025a0 101 FUNC GLOBAL DEFAULT 10 clEnqueueReadImage
19: 00002960 59 FUNC GLOBAL DEFAULT 10 clEnqueueTask
20: 00001fa0 56 FUNC GLOBAL DEFAULT 10 clGetSamplerInfo
21: 00002820 137 FUNC GLOBAL DEFAULT 10 clEnqueueMapImage
22: 00001f80 28 FUNC GLOBAL DEFAULT 10 clReleaseSampler
23: 00003080 105 FUNC GLOBAL DEFAULT 10 clGetDeviceIDs
24: 00000000 46 FUNC GLOBAL DEFAULT UND dlclose@GLIBC_2.0 (4)
25: 00000000 69 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.0 (2)
26: 000020d0 63 FUNC GLOBAL DEFAULT 10 clBuildProgram
27: 00002440 31 FUNC GLOBAL DEFAULT 10 clFlush
28: 00002160 66 FUNC GLOBAL DEFAULT 10 clGetProgramBuildInfo
29: 00001a30 56 FUNC GLOBAL DEFAULT 10 clGetDeviceInfo
30: 00001c10 56 FUNC GLOBAL DEFAULT 10 clGetCommandQueueInfo
31: 00000000 153 FUNC GLOBAL DEFAULT UND readdir@GLIBC_2.0 (2)
32: 00002ff0 137 FUNC GLOBAL DEFAULT 10 clCreateContext
33: 000030f0 86 FUNC GLOBAL DEFAULT 10 clGetPlatformInfo
34: 00000000 255 FUNC GLOBAL DEFAULT UND free@GLIBC_2.0 (2)
35: 000021f0 52 FUNC GLOBAL DEFAULT 10 clCreateKernelsInProgram
36: 00001ed0 56 FUNC GLOBAL DEFAULT 10 clGetImageInfo
37: 00000000 69 FUNC GLOBAL DEFAULT UND dlsym@GLIBC_2.0 (4)
38: 00000000 280 FUNC WEAK DEFAULT UND __deregister_frame_info_b@GCC_3.0 (3)
39: 00002740 87 FUNC GLOBAL DEFAULT 10 clEnqueueCopyBufferToImag
40: 00001df0 28 FUNC GLOBAL DEFAULT 10 clRetainMemObject
41: 00002400 59 FUNC GLOBAL DEFAULT 10 clGetEventProfilingInfo
42: 00002380 59 FUNC GLOBAL DEFAULT 10 clGetEventInfo
43: 00002d30 52 FUNC GLOBAL DEFAULT 10 clSetEventCallback
44: 00000000 456 FUNC GLOBAL DEFAULT UND opendir@GLIBC_2.0 (2)
45: 00001b10 28 FUNC GLOBAL DEFAULT 10 clReleaseContext
46: 00000000 214 FUNC GLOBAL DEFAULT UND fseek@GLIBC_2.0 (2)
47: 00002bc0 86 FUNC GLOBAL DEFAULT 10 clCreateFromGLRenderbuffe
48: 00000000 418 FUNC GLOBAL DEFAULT UND fclose@GLIBC_2.1 (5)
49: 00002e00 49 FUNC GLOBAL DEFAULT 10 clCreateUserEvent
50: 00002c50 59 FUNC GLOBAL DEFAULT 10 clGetGLTextureInfo
51: 00001f10 69 FUNC GLOBAL DEFAULT 10 clCreateSampler
52: 000023e0 31 FUNC GLOBAL DEFAULT 10 clReleaseEvent
53: 00002340 60 FUNC GLOBAL DEFAULT 10 clWaitForEvents
54: 00003150 227 FUNC GLOBAL DEFAULT 10 clGetPlatformIDs
55: 00000000 29 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.0 (2)
56: 00002c20 45 FUNC GLOBAL DEFAULT 10 clGetGLObjectInfo
57: 00000000 152 FUNC GLOBAL DEFAULT UND fopen@GLIBC_2.1 (5)
58: 00001e10 28 FUNC GLOBAL DEFAULT 10 clReleaseMemObject
59: 000023c0 31 FUNC GLOBAL DEFAULT 10 clRetainEvent
60: 00002900 87 FUNC GLOBAL DEFAULT 10 clEnqueueNDRangeKernel
61: 00002ef0 122 FUNC GLOBAL DEFAULT 10 clEnqueueWriteBufferRect
62: 00002a30 45 FUNC GLOBAL DEFAULT 10 clEnqueueWaitForEvents
63: 00000000 69 FUNC GLOBAL DEFAULT UND dlopen@GLIBC_2.1 (6)
64: 00000000 273 FUNC GLOBAL DEFAULT UND ftell@GLIBC_2.0 (2)
65: 00002d70 89 FUNC GLOBAL DEFAULT 10 clCreateSubBuffer
66: 00001e30 84 FUNC GLOBAL DEFAULT 10 clGetSupportedImageFormat
67: 00001d00 106 FUNC GLOBAL DEFAULT 10 clCreateImage2D
68: 00002ae0 100 FUNC GLOBAL DEFAULT 10 clCreateFromGLTexture2D
69: 000028b0 66 FUNC GLOBAL DEFAULT 10 clEnqueueUnmapMemObject
70: 00002110 7 FUNC GLOBAL DEFAULT 10 clUnloadCompiler
71: 00002b50 100 FUNC GLOBAL DEFAULT 10 clCreateFromGLTexture3D
72: 00000000 126 FUNC GLOBAL DEFAULT UND closedir@GLIBC_2.0 (2)
73: 00002c90 66 FUNC GLOBAL DEFAULT 10 clEnqueueAcquireGLObjects
74: 00000000 638 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.0 (2)
75: 00002dd0 45 FUNC GLOBAL DEFAULT 10 clSetMemObjectDestructorC
76: 00002030 83 FUNC GLOBAL DEFAULT 10 clCreateProgramWithBinary
77: 00001f60 28 FUNC GLOBAL DEFAULT 10 clRetainSampler
78: 00001c50 70 FUNC GLOBAL DEFAULT 10 clSetCommandQueueProperty
79: 00001af0 28 FUNC GLOBAL DEFAULT 10 clRetainContext
80: 000026e0 87 FUNC GLOBAL DEFAULT 10 clEnqueueCopyImageToBuffe
81: 00001d70 120 FUNC GLOBAL DEFAULT 10 clCreateImage3D
82: 00003340 508 FUNC GLOBAL DEFAULT 10 clGetExtensionFunctionAdd
83: 00002540 87 FUNC GLOBAL DEFAULT 10 clEnqueueCopyBuffer
84: 00001b30 56 FUNC GLOBAL DEFAULT 10 clGetContextInfo
85: 00002ce0 66 FUNC GLOBAL DEFAULT 10 clEnqueueReleaseGLObjects
86: 000027a0 123 FUNC GLOBAL DEFAULT 10 clEnqueueMapBuffer
87: 00001ca0 86 FUNC GLOBAL DEFAULT 10 clCreateBuffer
88: 000022b0 59 FUNC GLOBAL DEFAULT 10 clGetKernelInfo
89: 00002680 87 FUNC GLOBAL DEFAULT 10 clEnqueueCopyImage
90: 00000000 232 FUNC GLOBAL DEFAULT UND fread@GLIBC_2.0 (2)
91: 00002f70 115 FUNC GLOBAL DEFAULT 10 clEnqueueCopyBufferRect
92: 000022f0 66 FUNC GLOBAL DEFAULT 10 clGetKernelWorkGroupInfo
93: 00002270 52 FUNC GLOBAL DEFAULT 10 clSetKernelArg
94: 00002090 28 FUNC GLOBAL DEFAULT 10 clRetainProgram
95: 000021b0 58 FUNC GLOBAL DEFAULT 10 clCreateKernel
96: 00001bf0 28 FUNC GLOBAL DEFAULT 10 clReleaseCommandQueue
97: 00001bd0 28 FUNC GLOBAL DEFAULT 10 clRetainCommandQueue
98: 00002230 31 FUNC GLOBAL DEFAULT 10 clRetainKernel
99: 00000000 47 FUNC GLOBAL DEFAULT UND strcmp@GLIBC_2.0 (2)
100: 00000000 125 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.1.3 (7)
101: 00002a60 31 FUNC GLOBAL DEFAULT 10 clEnqueueBarrier
102: 000020b0 28 FUNC GLOBAL DEFAULT 10 clReleaseProgram
103: 000032b0 140 FUNC GLOBAL DEFAULT 10 clCreateContextFromType
104: 00002e40 38 FUNC GLOBAL DEFAULT 10 clSetUserEventStatus
Does this mean that there are no OpenCL 1.2 drivers at all available?
I’m trying to use Texture1D, but might have to implement that functionality using a 2D texture (with height 1, for example) instead.
birdie
August 14, 2013, 5:25pm
4
This list is compiled using the latest/newest available drivers for Linux - if your function is not on the list, implement a workaround.
I cannot say anything else - I’m not an NVIDIA representative, so I’ve no idea when and if they are going to implement OpenCL 1.2 functions (even thought OpenCL 2.0 is more or less complete).
NVIDIA’s primary computing interface is CUDA. They aren’t really interested in supporting the OpenCL specification - it dilutes their advantage over Intel and AMD.
Alright, thanks a lot for your help!
Isn’t clCreateSubBuffers already required by OpenCL 1.1 ? clCreateSubBuffer Not working on Ubuntu 15.10 driver 352.