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?)
J.
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.
J.
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 libOpenCL.so 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 libOpenCL.so 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.
J.
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.
jnygaard,
This has been fixed. You will see it in future releases.
Thanks