26 Replies Latest reply on Jan 24, 2013 1:08 AM by darkmen

    Using HD7970 as secondary GPU for OpenCL only

    darkmen

      Hi, i have problems using the HD7970 as secondary GPU. I have itegrated Intel video I want to use for desktop rendering and HD7970 for calculations. This is required to have normal screen feedback during OpenCL calculations running. Both cards have no monitors connected.

      The windows 7 makes last installed GPU as primary card (I cant select it any other way, only disable and enable in Device Manager)

      So, to make Intel as primary card (and render desktop) I have to disable the AMD card and enable it again.

      This is not the big problem, but when AMD card is secondary in system here starts wired things:

      1. AMD Catalist control center stops "seeing" it, I cant check\set memory or core clock

      amd_ccc.png

      2. AMD System Monitor still can see it but NO info about clock or usage %

      amd_sm.png

      3. OpenCL device information shows 500 Mhz core clock (default clock when it was primary GPU, was 1050 Mhz)

      OpenCL kernels running ok but with very low performance.

      No other third party software is able to set clock for secondary GPU.

      Please adwise how to run the AMD card full power.

       

      System running Win7 x64 with the latest stable catalist drivers 12.10

        • Re: Using HD7970 as secondary GPU for OpenCL only
          binying

          Multiple GPUs from different vendors...

          "OpenCL device information shows 500 Mhz core clock "--by using "clinfo"?

          "OpenCL kernels running ok but with very low performance."--Are you sure the kernel is running on 7970?

          • Re: Using HD7970 as secondary GPU for OpenCL only
            darkmen

            Still facing the problem. Any ideas?

             

            Strange thing, when kernel range takes 4-5 seconds, the system become very hard contolable.

            Delayed desktop feedback, and very hard to connect to the host with remote admin clients (CPU load is close to 0 btw)

            When running desktop on the Intel GPU, no such kind of problems happens.

             

            Thanks in advance

              • Re: Using HD7970 as secondary GPU for OpenCL only
                nou

                That is because when you run kernel GPU is locked and can't do anything else. That mean it can't update what is on screen. Solution is using separate GPU for display.

                  • Re: Using HD7970 as secondary GPU for OpenCL only
                    darkmen

                    Thats exactly what I am trying to do:) But no luck so far

                      • Re: Using HD7970 as secondary GPU for OpenCL only
                        developer

                        Hi,

                        Windows can get finicky about its video drivers. Having 2 graphics drivers loaded at the same time can be a very complicated situation for windows. The best bet (a temporary workaround) is to use a low-end AMD video card instead of Intel.

                          • Re: Using HD7970 as secondary GPU for OpenCL only
                            darkmen

                            I prefer some software workaround, not hardware

                            But thanks anyway

                              • Re: Using HD7970 as secondary GPU for OpenCL only
                                himanshu.gautam

                                hi darkmen,

                                I created a similar setup using HD7750 GPU + Intel i5 2500 machine with SDK 2.8 and Driver 12.10.

                                I have made the integrated GPU as primary video device using BIOS settings, to run the display using intel's iGPU.

                                The peak performance of the discrete GPU is 819GFLOPS.

                                I tried MatrixMulImage sample and here are the results:

                                -------------------------------------------------------------------------------------------------------------------------------------------------

                                C:\Users\cas\Desktop\bin\x86_64>MatrixMulImage.exe  -q  -t -i 5 -x 512 -y 2048 -z 2048
                                Platform 0 : Intel(R) Corporation
                                Platform 1 : Advanced Micro Devices, Inc.
                                Platform found : Advanced Micro Devices, Inc.

                                Selected Platform Vendor : Advanced Micro Devices, Inc.
                                Device 0 : Capeverde Device ID is 0000000002A699E0
                                Executing kernel for 5 iterations
                                -------------------------------------------
                                KernelTime (ms) : 24.0153
                                GFlops achieved : 178.843

                                KernelTime (ms) : 15.7046
                                GFlops achieved : 273.485

                                KernelTime (ms) : 9.10385
                                GFlops achieved : 471.775

                                KernelTime (ms) : 9.09007
                                GFlops achieved : 472.49

                                KernelTime (ms) : 9.09304
                                GFlops achieved : 472.336

                                MatrixA                  MatrixB                  Time(sec)                KernelTime(sec)
                                512x2048                 2048x2048                0.188817                 0.0239169

                                 

                                ---------------------------------------------------------------------------------------------------------------------------------------------------------

                                 

                                So it seems i can reach nearly 60% of the peak GPU performance, which is quite impressive. Can you try this sample?

                                  • Re: Using HD7970 as secondary GPU for OpenCL only
                                    darkmen

                                    Hi, thanks for participating for a start.

                                    Now results for my HD7970 stock clock (core: 1100MHz | mem:1500MHz):

                                    AMD GPU primary

                                    Platform 0 : Advanced Micro Devices, Inc.

                                    Platform found : Advanced Micro Devices, Inc.

                                    Selected Platform Vendor : Advanced Micro Devices, Inc.

                                    Device 0 : Tahiti Device ID is 0242B7F0

                                    Executing kernel for 5 iterations

                                    -------------------------------------------

                                    KernelTime (ms) : 3.92607

                                    GFlops achieved : 1093.96

                                    KernelTime (ms) : 3.91852

                                    GFlops achieved : 1096.07

                                    KernelTime (ms) : 1.92296

                                    GFlops achieved : 2233.52

                                    KernelTime (ms) : 1.92296

                                    GFlops achieved : 2233.52

                                    KernelTime (ms) : 1.924

                                    GFlops achieved : 2232.31

                                    MatrixA                  MatrixB                  Time(sec)                KernelTime(sec)         

                                    512x2048                 2048x2048                0.204031                 0.00941063             

                                     

                                    Intel GPU primary

                                    Platform 0 : Advanced Micro Devices, Inc.

                                    Platform found : Advanced Micro Devices, Inc.

                                    Selected Platform Vendor : Advanced Micro Devices, Inc.

                                    Device 0 : Tahiti Device ID is 00AFB7F0

                                    Executing kernel for 5 iterations

                                    -------------------------------------------

                                    KernelTime (ms) : 6.04104

                                    GFlops achieved : 710.965

                                    KernelTime (ms) : 6.07852

                                    GFlops achieved : 706.581

                                    KernelTime (ms) : 6.47807

                                    GFlops achieved : 663.001

                                    KernelTime (ms) : 6.17259

                                    GFlops achieved : 695.813

                                    KernelTime (ms) : 6.28415

                                    GFlops achieved : 683.461

                                    MatrixA                  MatrixB                  Time(sec)                KernelTime(sec)         

                                    512x2048                 2048x2048                0.197901                 0.0126547              


                                      • Re: Using HD7970 as secondary GPU for OpenCL only
                                        himanshu.gautam

                                        Hi darkman,

                                        I will get back to you on this. Thanks for sharing the results.

                                          • Re: Using HD7970 as secondary GPU for OpenCL only
                                            himanshu.gautam

                                            Hi darkmen,

                                            I am still not able to reproduce this issue at my end. I have not been able to test on tahiti (because of its availablity), but my HD7750 do not show any signs of this performance degradation.

                                            Willl it be possible for you to send some steps as to what all you installed, and in what order.

                                            Have you tried changing the BIOS settings of your machine. Try making iGPU as primary device adapter.

                                            Also I think you have not installled any other OpenCL SDK(intel's ?) as you only want to use intel's GPU for display purpose?

                                            Thanks for your patience.

                                              • Re: Using HD7970 as secondary GPU for OpenCL only
                                                darkmen

                                                Hi, there is no primary card settings in BIOS (atleast in windows gui tool from Gigabyte), and there is no monitor hardware newr the PC to try normal way. As i wrote in my first post - both cards running w\o monitors connected.

                                                MB has only HDMI output for video, so i tried to connect some tv instead of monitor.

                                                Well, it still cant enter bios (black screen, seems tv not supports low res) but, in windows it works correct. And with tv plugged in iGPU, clinfo reports 1100 MHz for AMD. After I did reboot w\o tv it falls back to 500 MHz again.

                                                 

                                                So, technicaly i need to find HDMI dummy plug for iGPU as workaround (if it exists)

                                                But, would be nice to have some software way for this issue.

                                                THanks in advance

                              • Re: Using HD7970 as secondary GPU for OpenCL only
                                developer

                                Hi,

                                As a temporary workaround, can you try extending your desktop to the secondary GPU?

                                This can force the OS to increase the clock-speed in the secondary GPU.

                                If this works, we can just extend 1 scanline to the secondary GPU and get the required performance.

                                you will loose a pixel column for superior GPU performance.

                                 

                                Just a thought.

                                 

                                Best Regards,

                                Workitem 6

                                  • Re: Using HD7970 as secondary GPU for OpenCL only
                                    darkmen

                                    Unfortunatley this not works. When i press Extended desktop - nothing happens (reminding, none of GPUs have monitors connected, becuase this is a compute unit, not a work unit)

                                      • Re: Using HD7970 as secondary GPU for OpenCL only
                                        himanshu.gautam

                                        I am just curious here. If both your GPUs (integrated as well as discrete) are not connected, how are you extending the desktop? Are you using remote desktop to connect and work with this machine?

                                         

                                        You have said that if a TV is connected to iGPU, AMD GPU shows correct clock speed (By iGPU - I assume you mean Integrated Intel GPU). Can you try connecting something to AMD GPU and check what clock speed is reported? - if this is not a hassle.

                                         

                                        For a s/w workaruond -- will ask around if this is expected behaviour (or) if there is some work around for the same.

                                        • Re: Using HD7970 as secondary GPU for OpenCL only
                                          himanshu.gautam

                                          Hi,

                                          I tried using my setup with out any monitors attached. I used windows RDP to access the machine remotely. As of now, I have not seen any degradation in tahiti clock. Can you explain your hardware setup, and how exactly are you accessing it.

                                           

                                          Also can you please share the source, for the method used by you to select the primary video adapters.

                                          AFAIK, you should select the primary video adapter from BIOS settings. (probably somewhere in advanced settings).

                                           

                                          Message was edited by: Himanshu Gautam

                                            • Re: Using HD7970 as secondary GPU for OpenCL only
                                              darkmen

                                              Hi, from the start I want to say:

                                              I used TeamViewer for remote access to display-less workstation before.

                                              Today I have tried RDP and had different experience:

                                              1. OpenCL application shows correct core freq and running full speed using RDP. System feedbacks good even for long kernel execution time (like a few seconds+)

                                              2. Screen settings are a bit different under RDP because it uses own display/driver

                                               

                                              But anyway, CCC not even starts under RDP and this way overclocking options are not available. May be this is because of missing phisical display (not sure)

                                               

                                              Closing current question as answered, but would be good to know what was wrong for TeamViewr (i belive VNC will be the same too)