13 Replies Latest reply on Mar 3, 2011 1:24 PM by laobrasuca

    Crash when removing AMD GPU from system

    sschuberth

      Hi,

      I'm currently doing a lot of OpenCL benachmarking. I have a PC with an AMD CPU and an AMD GPU running under Vista x64. Both the APP / Stream SDK 2.3 and the regular Catalyst 11.1 driver are installed. That configuration works fine, I'm seeing both CPU and GPU devices.

      However, if I remove the AMD GPU (without uninstalling the Catalyst driver, as I'm going to plug-in the AMD GPU again soon) in order to replace it with an NVIDIA GPU, the call to clGetPlatformIDs() crashes. Uninstalling the Catayst driver or manually renaming the AMD OpenCL ICD entries in the registry works around the crash (although the latter also removes the CPU device, obviously).

      It seems that a check for the presence of an AMD GPU is missing, and the OpenCL ICD assumes that just because the Catalyst driver files are there, it can use an AMD GPU. Having to uninstall / reinstall the Catalyst drivers really is very inconvenient if you do a lot of GPU swapping for benchmarking. Any chance to get this fixed?

      Thanks!

        • Crash when removing AMD GPU from system
          MicahVillmow
          Thanks for reporting this issue, we will look into it.
          • Crash when removing AMD GPU from system
            erwincoumans

             

            I've reported the same issue in the Khronos OpenCL working group half a year ago, with NVIDIA and AMD engineers looking into it, but it never got fixed.

            You can workaround the problem by editing the registry, remove the ATI components (ati*.dll) when running NVIDIA GPUs.

            HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Khronos\OpenCL\Vendors 
            HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors

            Save the registry key to revert back when using AMD GPUs.

             

              • Crash when removing AMD GPU from system
                sschuberth

                 

                Originally posted by: erwincoumans

                You can workaround the problem by editing the registry, remove the ATI components (ati*.dll) when running NVIDIA GPUs.



                Thanks, that's what I mean when I was saying "renaming the AMD OpenCL ICD entries in the registry" ;-)

                  • Crash when removing AMD GPU from system
                    laobrasuca

                    does this mean that it's impossible to use 1 AMD CPU + 1 NV GPU (noting else)?. As of now, I'm able to run 1 AMD CPU + 1 AMD GPU (1 platform) or 1 AMD CPU + 1 AMD GPU + 1 NV GPU (2 platforms), but removing the AMD GPU I have that only one platform is detected (the NV one) instead of 2.

                      • Crash when removing AMD GPU from system
                        sschuberth

                        No, it's no impossible, I've successfully done it. You just have to make sure that you uninstall / clean the ATI graphics drivers from system, but keep the ATI Stream SDK / AMD APP SDK.

                          • Crash when removing AMD GPU from system
                            laobrasuca

                            with the AMD CPU and the NV GPU i had the NV SDK and NV display drivers (i had removed all AMD software). Only one platform was detected (NV's). Then I installed the AMD SDK but it was still detecting only one platform (NV's). I then uninstalled both SDK and reinstalled AMD's one. Again, only one platform, but to my surprise it was the NV's (GPU)! Maybe i need to uninstall the NV display driver before installing the SDKs (?) Maybe i need reboot the system? (i can't test the rebooting now)

                              • Crash when removing AMD GPU from system
                                sschuberth

                                Well, all I can say is that it worked for me without uninstalling the NV drivers. I can't recall for sure whether a reboot was necessary.

                                Have you double-checked you're not limiting your device enumeration to GPUs?

                                  • Crash when removing AMD GPU from system
                                    laobrasuca

                                    maybe I need a reboot then. As for the limit on devices, i don't even come to check devices, as there only the NV platform.

                                    there's a funny thing, though. When connecting to my pc from outside using Windows Remote Desktop, i see only one platform, the AMD one with CPU device! I was expecting to see none since i had no AMD platform and NV platform has GPU only device (and RDP does not support opencl on gpu)!

                                    • Crash when removing AMD GPU from system
                                      laobrasuca

                                       

                                      Originally posted by: sschuberth Well, all I can say is that it worked for me without uninstalling the NV drivers. I can't recall for sure whether a reboot was necessary.

                                       

                                      Have you double-checked you're not limiting your device enumeration to GPUs?

                                       

                                      i give up! rebooting or not, it does not work! I've uninstalled everything (SKDs and display drivers) and installed piece by piece in any possible order. When installing the AMD SDK only, the AMD platform is recognized with CPU device. After this, installing the NV display driver (with or without NV SDK), makes the clGetPlatformIDs call crash. Renaming the ati*.dll in the register will allow me using the NV platform (GPU only) but not the AMD's (as u said above). The GPU is not in the 1st PCI-E slot, but i'm not sure it would change anything if I install it in the first slot... If you have any other idea, please share... (win7 x64)

                                        • Crash when removing AMD GPU from system
                                          jeff_golds

                                          Did you have the ATI Catalyst driver installed?  If so, then it sounds like you are hitting the issue referenced above.  You can either uninstall the ATI driver (a pain if you change cards a lot) or rename the module that is crashing, then restore the name before you swap cards again.  For me, it was sufficient to rename atigktxx.dll to atigktxx_.dll, I believe.

                                          Jeff

                                            • Crash when removing AMD GPU from system
                                              laobrasuca

                                              hi jeff, well, no, i don't have the Catalyst installed, the AMD card is not pluged-in. It is a pain, yes, for the install/reboot/uninstall/reboot, plug-in, take out, etc.... as the OP i do also do benches, its really helpfull to run the kernels on both architectures, you improve lot of things that are not viseable in one or in the other card. real pain, yes it is! hope in the future things will get more homogenous, without needing all these extra manipulations (well, the end user will not care about it, but the dev guy will, oh yes, he will...)