cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

chris244
Journeyman III

ICD, NVIDIA, AMD Stream SDK 2.01

I have an Opteron XP64 machine with an NVIDIA graphics card and an ATI graphics card.  I started with the NVIDIA graphics driver with working OpenCL support installed.

I installed the AMD 2.01 developer package and samples.  The OpenCL.dll library in \windows\system32  (that was placed by NVIDIA) was not replaced.  When I ran the CLInfo sample only the NVIDIA device was listed.

I uninstalled the AMD 2.01 developer package.  The uninstaller removed the OpenCL.dll placed there by NVIDIA.  At this point OpenCL programs on the system (like CLInfo) couldn't run because there was no longer a OpenCL.dll on the system.

I installed the AMD 2.01 developer package again.  OpenCL.dll (the AMD version) was placed in \windows\system32.  When I ran CLInfo only the AMD CPU and GPU devices were listed (no NVIDIA).

I didn't think the situation could get worse than it was in 2.0 but it did.  Please sort this out with Khronos and NVIDIA.

0 Likes
8 Replies
genaganna
Journeyman III

Originally posted by: chris244 I have an Opteron XP64 machine with an NVIDIA graphics card and an ATI graphics card.  I started with the NVIDIA graphics driver with working OpenCL support installed.

 

I installed the AMD 2.01 developer package and samples.  The OpenCL.dll library in \windows\system32  (that was placed by NVIDIA) was not replaced.  When I ran the CLInfo sample only the NVIDIA device was listed.

 

I uninstalled the AMD 2.01 developer package.  The uninstaller removed the OpenCL.dll placed there by NVIDIA.  At this point OpenCL programs on the system (like CLInfo) couldn't run because there was no longer a OpenCL.dll on the system.

 

I installed the AMD 2.01 developer package again.  OpenCL.dll (the AMD version) was placed in \windows\system32.  When I ran CLInfo only the AMD CPU and GPU devices were listed (no NVIDIA).

 

I didn't think the situation could get worse than it was in 2.0 but it did.  Please sort this out with Khronos and NVIDIA.

 

Chris244,

              In my case, OpenCL.dll is not removed either by installing or uninstalling SDK2.01.

0 Likes

I can reproduce the issue at will by installing ATIStreamSDK_dev.msi and then removing it with Add/Remove programs. (The first time I ran through the main installer, but subsequently I've been using the MSI)

Let me know if there's any information I can supply to help disgnose the problem.

From the install log of msiexec /log install.log /i ATIStreamSDK_dev.msi

InstallFiles: File: OpenCL.dll, Directory: C:\WINDOWS\system32\, Size: 52736
InstallFiles: File: OpenCL.dll, Directory: C:\WINDOWS\SysWOW64\, Size: 51712

From the uninstall log of msiexec /lv uninstall.log /x ATIStreamSDK_dev.msi

 MSI (s) (6C:5C) [07:55:06:826]: Executing op: SetTargetFolder(Folder=C:\WINDOWS\system32\)
MSI (s) (6C:5C) [07:55:06:826]: Executing op: FileRemove(,FileName=OpenCL.dll,,ComponentId={A094E39B-61F0-4BF7-8768-E9E9D82C7E85})
MSI (s) (6C:5C) [07:55:06:826]: Verifying accessibility of file: OpenCL.dll
MSI (s) (6C:5C) [07:55:06:826]: Executing op: SetTargetFolder(Folder=C:\WINDOWS\SysWOW64\)
MSI (s) (6C:5C) [07:55:06:826]: Executing op: FileRemove(,FileName=OpenCL.dll,,ComponentId={E2D91425-6952-46AE-96BF-10BE43FD116A})
MSI (s) (6C:5C) [07:55:06:826]: Verifying accessibility of file: OpenCL.dll

0 Likes

i instaled stream SDK and i can see that C:\WINDOWS\system32\OpenCL.dll exist. and i do not have nVidia SDK.

0 Likes

Originally posted by: nou i instaled stream SDK and i can see that C:\WINDOWS\system32\OpenCL.dll exist. and i do not have nVidia SDK.

 

If you uninstall the stream SDK does OpenCL.dll go away?

0 Likes

no when i uninstall Stream SDK OpenCL.dll stay.

anyway who provide OpenCL.dll that AMD and nVidia can not provide working ICD.

0 Likes

Won't be better to name it better like OpenCL_1_0_0_x86_ATI.dll?

 

Include version, platform and vendor before we get a nice DLL hell!

0 Likes

OpenCL.dll is special in that it must be named OpenCL.dll so that apps can link to it without any vendor specific code.

The idea of OpenCL.dll is to be a single library that applications can link against that will then dispatch calls to the appropriate vendor library (which *is* named to be distinguished).

However it probably should have version information (not in the library name though) so that older versions don't replace newer versions.  Newer versions should also *always* be backward compatible.

It shouldn't be uninstalled (it should gracefully handle a system with no vendor libraries) and should only be replaced by newer versions on installation.

According to AMD, NVIDIA is shipping an outdated OpenCL.dll which of course would not be a problem if the newer version that AMD ships was backward compatible with the older version.

Hopefully this will be addressed in upcoming versions, though it's difficult to tell at this point who is at fault here Khronos, NVIDIA, ATI, or all three.

I encountered 2 specific problems with 2.01: 1) If AMD's is newer, why didn't the AMD installer overwrite the older NVIDIA library on my system? 2) Why did the AMD uninstaller remove OpenCL.dll?



0 Likes

I am not able to repro with 2.3. I tried below steps, seems to be every thing fine.

1) installed Nvidia display driver. After install openCl.dll time stamp is
11/5/2010
2) installed CUDA driver.
3) Installed ATI Dev-MSI. Here OpenCL.dll time stamp changed to 12/7/2010. It
means that previous opencl.dll was replaced by ATI opencl binaries.

I also checked with CLinfo sample.

My setup:
OS: xp64
GPU: Nvidia8500GT+AMD-Redwood.
AMD-SDK : 2.3
Nvidia driver: 263.06
Cuda: 3.2.16

Chris244-- Can you check with latest SDK (2.3)

0 Likes