I posted this on the ATI Stream forum, but perhaps I'll have more luck here.
On my Win7 Intel machine, I previously had an ATI Radeon GPU. I could use the ATI Stream SDK to run OpenCL on both the CPU and GPU.
Now I have swapped out my Radeon for GeForce (need to make sure I can support both platforms) and I can't seem to get OpenCL working on both the GPU and CPU.
I need to install the NVIDIA drivers to get OpenCL on the GPU, but obviously they do not support the Intel CPU. When I install the ATI Stream SDK, it somehow conflicts with the NVIDIA installation and I lose OpenCL support on the GPU.
To be more clear: if I install NVIDIA last, I have OpenCL on GPU, but not CPU. If I install ATI Stream last, I have have OpenCL on CPU, but not GPU. I guess the OpenCL.dlls are overwriting each other in the Windows\system32 directory? Isn't one of the goals of OpenCL for me to be able to use these devices concurrently?
Are there steps I can take such that I can have the ATI Stream SDK installed to use OpenCL on the CPU and the NVIDIA driver installed to support OpenCL on the GPU?
which version of nvidia driver do you install and which version of ATI Stream SDK?
Originally posted by: nou which version of nvidia driver do you install and which version of ATI Stream SDK?
NVIDIA: 197.45_desktop_win7_winvista_64bit_english_whql
ATI Stream: ati-stream-sdk-v2.2-vista-win7-64
install newest driver from nvidia page. 197 is pretty old now.
Originally posted by: nou install newest driver from nvidia page. 197 is pretty old now.
I started with the latest NVIDIA drivers (including even trying the 1.1 candidate), but have rolled back to this one as later versions are, in my experience, buggy. I don't think the driver version should be the key factor in co-existence, should it?
yes version is important as there was some changes in ICD client.
Originally posted by: nou yes version is important as there was some changes in ICD client.
Alright, but with 257.21 and 258.19 I have the same problem...
Originally posted by: nou install newest driver from nvidia page. 197 is pretty old now.
Don¡'t do that. FW 2XX break OpenCL currently, drivers are bugged ( look at __constant problems at NVIDIA's forums ). Stay with the good old one 197. If you have a new Fermi card you have no option tho.
zkhan,
Install the followong:
ATI SDK 2.2
Nvidia SDK(most suitable)
Nvidia Gpu Driver
Are you able to run CAL Samples/CUDA Samples after that.
Originally posted by: himanshu.gautam zkhan,
Install the followong:
ATI SDK 2.2
Nvidia SDK(most suitable)
Nvidia Gpu Driver
Are you able to run CAL Samples/CUDA Samples after that.
I'm fairly sure I've tried that permutation. Is it not a problem that they both write an OpenCL.dll to the Windows\System32 and Windows\Wow64 folders? Whicever one I install last will have written that file.
hi Zkhan,
I think initially one of the SDKs already made some modifications to the system paths/files that cause the bugs. Now even you try to uninstall them and reinstall the problem may not be solved since the system files/paths were permanently changed. I don't know which one was changed but that my experience. Previously I try to install both SDK on the same computer then the ATI was corrupted due to Nvidia one. Even I try to uninstall the Nvidia SDK and clean the registry files but the ATI SDK still stuck. So my suggestion is you should try to reinstall your OS with a clean Windows version then try the following step, which is working well for me now:
1) If you have two cards on yr system then hookup the monitor(s) too the ATI card
2) Obtain ATI SDK 2.1(not 2.2) and CUDA Toolkit 3.2(developer RC version)
3) Install both of SDKs, no matter which one is installed first.
My cards are ATI 5870 and GTX 480 and they are working well. I tried to run ATI SDK on the system with only GTX 480 and CPU but it did not work so I think to make it possible with ATI SDK without any modification you may need an ATI card in the system.
Rotor
Hi Zkhan,
Many users able to use this combination. See following link http://forums.amd.com/forum/messageview.cfm?catid=328&threadid=132643&forumid=9.
I am also able to do on my laptop. I am able to run OpenCL samples on Intel CPU and Nvidia GPU.
See below for CLInfo.exe information
****************************************************
Number of platforms: 2
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 1.0 CUDA 3.1.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_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sha
ring cl_nv_d3d11_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.2 (302)
Platform Name: ATI Stream
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_khr_d3d10_sharing
Platform Name: NVIDIA CUDA
Number of devices: 1
Device Type: CL_DEVICE_TYPE_GPU
Device ID: 4318
Max compute units: 2
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
Max clock frequency: 800Mhz
Address bits: 41511271232700448
Max memory allocation: 134217728
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 8192
Max image 2D height: 8192
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 4352
Alignment (bits) of base address: 256
Minimum alignment (bytes) for any datatype: 16
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: None
Cache line size: 0
Cache size: 0
Global memory size: 119078912
Constant buffer size: 65536
Max number of constant args: 9
Local memory type: Scratchpad
Local memory size: 16384
Profiling timer resolution: 1000
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: Yes
Profiling : Yes
Platform ID: 00283AD8
Name: GeForce 8400M GS
Vendor: NVIDIA Corporation
Driver version: 257.21
Profile: FULL_PROFILE
Version: OpenCL 1.0 CUDA
Extensions: cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d
3d10_sharing cl_nv_d3d11_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_khr_global_int32_base_atomics cl_khr_global_in
t32_extended_atomics
Platform Name: ATI Stream
Number of devices: 1
Device Type: CL_DEVICE_TYPE_CPU
Device ID: 4098
Max compute units: 2
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 4
Preferred vector width double: 0
Max clock frequency: 1994Mhz
Address bits: 32
Max memory allocation: 536870912
Image support: No
Max size of kernel argument: 4096
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: No
Cache type: Read/Write
Cache line size: 64
Cache size: 32768
Global memory size: 1073741824
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Global
Local memory size: 32768
Profiling timer resolution: 69
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 0312D40C
Name: Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz
Vendor: GenuineIntel
Driver version: 2.0
Profile: FULL_PROFILE
Version: OpenCL 1.1 ATI-Stream-v2.2 (302)
Extensions: cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_
atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_prin
tf cl_khr_d3d10_sharing
*****************************************************
Originally posted by: zkhan
I'm fairly sure I've tried that permutation. Is it not a problem that they both write an OpenCL.dll to the Windows\System32 and Windows\Wow64 folders? Whicever one I install last will have written that file.
It can be a problem, but only when the two installers install different versions of the ICD. I use an ATI card as my primary and recently installed a cheap nVidia card to be able to check compatibility. The result of installing the most recent non-beta nVidia drivers was that OpenCL.dll no longer had entry points for OpenCL 1.1 functions. It was easily fixed by telling the ATI driver to repair itself from the uninstall menu though.
Other than that, having cards from different vendors appears to be unproblematic.
I'm on a Windows 7 AMD machine.
Originally posted by: nou install newest driver from nvidia page. 197 is pretty old now.
i install GeForce 9900 GT..