Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Journeyman III

OpenCL on Ubuntu-machine without graphics card

I installed the 2.3-sdk, but only platform reported is an NVIDIA platform.

I want to test my Intel multi-core CPU for OpenCL programming, so I installed the v2.3-sdk, but without having an ATI graphics card installed. When I run the CLInfo sample program, it only reports one platform found, namely one for "OpenCL 1.0 CUDA 3.2.1". (There is a GeForce card in the computer.)

Does this mean that I should install an ATI driver (for a graphics card?) in order for the OpenCL functions to find the CPU-platform?

(Or do I have to actually have an ATI card in the machine because the CPU will only show up as a device inside an "ATI-platform" in OpenCL?)



8 Replies

Although Intel CPUs are not officially supported. Generally you should be able to see CPU platform by just installing SDK.

What did you installed first, AMD APP SDK or NV Driver ? Some old NV frivers were known to be creating problems of thie kind.

Is there any reason why you are not trying intel's SDK?


I had the Nvidia driver already installed, it is rather fresh, version 260.19.36, then I installed the AMD app sdk.

Thanks for the Intel suggestion, I was not aware they had an SDK for OpenCL at all! Will look into that.





because Intel implemtation is currently Windows only? but yes older nVidia drivers are incompatible.

do you properly register ICD into /etc/OpenCL/vendors? and try replace with that which is in APP SDK.


Ah! Missed the ubuntu.

In that case AMD SDK is the only option.

Thanks nou.


Aha, so Intel is Windows-only, that's a pity... But the tip about was good, turns out that the Nvidia-version was being used, and only reported its own platform, while the AMD-version detects both. 

It does crash when it is about to look for devices in the ATI-platform, but I guess that must be something else then. At least now I believe that it will work in the end...



Number of platforms:                             2

  Platform Profile:                              FULL_PROFILE

  Platform Version:                              OpenCL 1.0 CUDA 3.2.1

  Platform Name:                                 NVIDIA CUDA

  Platform Vendor:                               NVIDIA Corporation

  Platform Extensions:                           cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll 

  Platform Profile:                              FULL_PROFILE

  Platform Version:                              OpenCL 1.1 ATI-Stream-v2.3 (451)

  Platform Name:                                 ATI Stream

  Platform Vendor:                               Advanced Micro Devices, Inc.

  Platform Extensions:                           cl_khr_icd cl_amd_event_callback cl_amd_offline_devices



  Platform Name:                                 NVIDIA CUDA

Number of devices:                               1

  Device Type:                                   CL_DEVICE_TYPE_GPU

  Device ID:                                     4318

  Max compute units:                             12

  Max work items dimensions:                     3

    Max work items[0]:                           512

    Max work items[1]:                           512

    Max work items[2]:                           64

  Max work group size:                           512

  Preferred vector width char:                   1

  Preferred vector width short:                  1

  Preferred vector width int:                    1

  Preferred vector width long:                   1

  Preferred vector width float:                  1

  Preferred vector width double:                 0

ERROR: clgetDeviceInfo(-30)




Update to my previous post:

The crash in CLInfo happened as soon as the control flow got into an #ifdef CL_VERSION_1_1-section of the code. If I undefine CL_VERSION_1_1, it runs all through to the end, (seemingly) correctly reporting the two devices, a GPU in the NVIDIA platform, and a CPU in the AMD platform!

Why CL_VERSION_1_1 was defined if it is unavailable, I do not yet know.





that is bug in CLInfo code which query OpenCL 1.1 even when platform or device don't support OpenCL 1.1. as nVidia don't support 1.1 it return a error so CLInfo exit.



This has been fixed. You will see it in future releases.