8 Replies Latest reply on Dec 29, 2010 1:57 AM by scharupa

    ICD, NVIDIA, AMD Stream SDK 2.01

    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.

        • ICD, NVIDIA, AMD Stream SDK 2.01
          genaganna

           

          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.

            • ICD, NVIDIA, AMD Stream SDK 2.01
              chris244

              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

                • ICD, NVIDIA, AMD Stream SDK 2.01
                  nou

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

                    • ICD, NVIDIA, AMD Stream SDK 2.01
                      chris244

                       

                      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?

                        • ICD, NVIDIA, AMD Stream SDK 2.01
                          nou

                          no when i uninstall Stream SDK OpenCL.dll stay.

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

                            • ICD, NVIDIA, AMD Stream SDK 2.01
                              bubu

                              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!

                                • ICD, NVIDIA, AMD Stream SDK 2.01
                                  chris244

                                   

                                  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?



                                    • ICD, NVIDIA, AMD Stream SDK 2.01
                                      scharupa

                                      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)