21 Replies Latest reply on May 15, 2011 5:37 AM by rollyng

    multiple GPU

    jstier
      clGetDeviceIDs only returns one GPU

       

      Hi, I have two HD 5830 in my PC but a call to clGetDeviceIDs only detects one of the devices. According to the device manager on Windows 7 (64) both devices seem to be running fine using driver version 8.831.2.0. Am I missing something here? Are multiple devices already supported?

       

       

       



       

       

       



       

       

       





       

       

       





       

       



       

       

       



       

       

      sStatusCL = clGetDeviceIDs(lPlatform, CL_DEVICE_TYPE_GPU, 100, lDevices, &lCount);

        • multiple GPU
          nou

          you should have connected monitor to both cards and have extended desktop. becuas windows disable disconnected card.

            • multiple GPU
              jstier

               

              Are you 100% certain about that, because the device manager under windows lists them both. I do not have a second monitor handy right now to try this out, but is there a way that I can tell windows to enable the card anyways? So basically, I cannot use multiple GPUs for HPC under windows ?



            • multiple GPU
              davibu

               

              Originally posted by: jstier Hi, I have two HD 5830 in my PC but a call to clGetDeviceIDs only detects one of the devices. According to the device manager on Windows 7 (64) both devices seem to be running fine using driver version 8.831.2.0. Am I missing something here? Are multiple devices already supported? 

               

               



               

              Are they connected with a CrossFire cable ? It may be the source of the problem.

               

                • multiple GPU
                  jstier

                  No, they are not connected by crossfire. It must be something along to lines of what nou says. When I start our App, clGetDeviceIDs detects one device and everything runs fine. When I plug the monitor into the other card (no reboot) the same thing happens. App runs fine but only detects one device. It looks like it is always the card connected to the monitor that is detected.  Another thing I do not understand is that when I switch the monitor cable, the windows desktop appears right away. It is almost like the two cards are rendering the windows gui in lockstep. Yet, when I switch monitor with our app running it crashes.

                  If Windows  7 really disables the unconnected card to the point that even the AMD drivers cannot detect it, then how is it possible that you can run PhysX on a separate card with NVIDIA hardware. Does the PhysX GPU also have to be connected to a monitor? I am curious if someone has a solution beyond plugging in the same monitor into both cards.

                • multiple GPU
                  MicahVillmow
                  jstier,
                  This is a limitation of our driver model and is something we are working on fixing. The other solutions are to create dummy plugs or use linux for development.
                    • multiple GPU
                      barno

                      MicahVillmow, can you perhaps give some more details on when you expect that to be fixed? We are having the problem that we need to use our computer remotely in which case none of our AMD GPUs shows up as an OpenCL device (even when they are connected to monitors). I figured that originates from the same problem, or am I mistaken?

                        • multiple GPU
                          laobrasuca

                          are you using Windows Remote Desktop or somtehing else?

                            • multiple GPU
                              barno

                              windows remote desktop (I cannot use a different protocol like vnc)

                                • multiple GPU
                                  laobrasuca

                                  well, then I'm afraid you won't be able to do nearly anything on the GL/CL matter. Remote Desktop creates a "virtual display adapter", it supports only GL 1.1 spec (but DirectX is better supported) and GPU CL devices are not supported (if you try to run GPU CAPS Viwer you will see that). For efficient GL/CL interop you will need at least GL 4.0 version. Let me quote this:

                                  "Remote desktops open up another desktop which isn't attached to a DISPLAY. Only desktops attached to a display can be HW accelerated by OpenGL installable client drivers." (from here-> http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=236477)

                                  I'm not even sure that AMD next releases will be able to do something about this. It seems to me that this is an OS limitation rather than card drivers. Maybe you could try going to DX/CL interop and see what happens...

                                  • multiple GPU
                                    rollyng

                                    I am afraid that remote desktop is not capable of using OpenCL devices. I have just tested it today on a NV C2050 but it also failed. My solution is to install ultravnc.

                                      • multiple GPU
                                        barno

                                        I understand that a virtual display adapter is used while on a remote desktop session, but isn't that just the same problem as the above one, that the driver gets disabled when it is not used to display anything? In that case MicahVillmow's answer would still hold for that problem, so my questions remains when that will be solved. Apparently Nvidia offers some compute only driver for their Tesla GPUs which works fine with remote deskto sessions. The question is if AMD is planning to release something similar and whether that will be usable for consumer GPUs (like the HD6970s etc. that we have)

                                        VNC is the very last ressort option as it does not really support multiple independent sessions on windows. Running multiple servers in multiple simultaneoulsy logged on user accounts would be very inconvenient for several reasons.

                                          • multiple GPU
                                            laobrasuca

                                            If your concern is only about openCL and not GL/CL interop, then yes, I agree with you, AMD might be able to do something for you. I think AMD may overcome the RDP problem with a similar solution to that of missing physical monitor. In this case, as Micah said above, it is a matter of time. So the question is, when!

                                            But I still think AMD can't do anything about GL/CL interop, although I hope I'm wrong about this ^^,

                                • multiple GPU
                                  MicahVillmow
                                  I know I've said it before, but expect it to be fixed with the next SDK release, some issues prevented it from being enabled in SDK 2.4, so SDK 2.5 should have it.