25 Replies Latest reply: Jan 23, 2013 11:08 PM by darkmen RSS

Using HD7970 as secondary GPU for OpenCL only

darkmen Newbie
Currently Being Moderated

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 Novice
    Currently Being Moderated

    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 Newbie
    Currently Being Moderated

    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 Expert
      Currently Being Moderated

      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 Newbie
        Currently Being Moderated

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

        • Re: Using HD7970 as secondary GPU for OpenCL only
          developer Newbie
          Currently Being Moderated

          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.

          Signature - Workitem 6, get_global_id(0) = 5, Workgroup = ?

          • Re: Using HD7970 as secondary GPU for OpenCL only
            darkmen Newbie
            Currently Being Moderated

            I prefer some software workaround, not hardware

            But thanks anyway

            • Re: Using HD7970 as secondary GPU for OpenCL only
              himanshu.gautam Master
              Currently Being Moderated

              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?

              Regards

              Himanshu , Bruhaspati

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

              The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

              • Re: Using HD7970 as secondary GPU for OpenCL only
                darkmen Newbie
                Currently Being Moderated

                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 Master
                  Currently Being Moderated

                  Hi darkman,

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

                  Regards

                  Himanshu , Bruhaspati

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

                  The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

                  • Re: Using HD7970 as secondary GPU for OpenCL only
                    himanshu.gautam Master
                    Currently Being Moderated

                    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.

                    Regards

                    Himanshu , Bruhaspati

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

                    The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

                    • Re: Using HD7970 as secondary GPU for OpenCL only
                      darkmen Newbie
                      Currently Being Moderated

                      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 Newbie
    Currently Being Moderated

    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

    Signature - Workitem 6, get_global_id(0) = 5, Workgroup = ?

    • Re: Using HD7970 as secondary GPU for OpenCL only
      darkmen Newbie
      Currently Being Moderated

      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 Master
        Currently Being Moderated

        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.

        Regards

        Himanshu , Bruhaspati

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

        The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

      • Re: Using HD7970 as secondary GPU for OpenCL only
        himanshu.gautam Master
        Currently Being Moderated

        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

        Regards

        Himanshu , Bruhaspati

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

        The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

        • Re: Using HD7970 as secondary GPU for OpenCL only
          darkmen Newbie
          Currently Being Moderated

          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)

          • Re: Using HD7970 as secondary GPU for OpenCL only
            nou Expert
            Currently Being Moderated

            there is difference between RDP and VNC/TeamViewer. RDP is using virtual graphic card but VNC is using actual physical GPU. This was problem in the past as there was no access to GPU with OpenCL under RDP.

            • Re: Using HD7970 as secondary GPU for OpenCL only
              darkmen Newbie
              Currently Being Moderated

              Well, not in the past. Its not possible to set core/mem clock for AMD GPU under RDP session currently, because CCC not even starts, and 3rd party tools (those i belive use AMD API) cant get fan/temp data and set freq.

               

              BTW,  AMD System Monitor screenshot is the same as in my first post (no GPU usage or MHz data)

              • Re: Using HD7970 as secondary GPU for OpenCL only
                himanshu.gautam Master
                Currently Being Moderated

                darkmen wrote:

                 

                Well, not in the past. Its not possible to set core/mem clock for AMD GPU under RDP session currently, because CCC not even starts, and 3rd party tools (those i belive use AMD API) cant get fan/temp data and set freq.


                Yeah Also see the same behaviour. I will try with teamviewer, and let you know. I had seen the RDP behavior while attaching DVI cable to the GPU.

                 

                 

                BTW,  AMD System Monitor screenshot is the same as in my first post (no GPU usage or MHz data)


                This behaviour is also with teamviewer only IMHO. I can see GPU usage when i am running the samples directly. You can report this in "GPU Developer Tools" section.

                 

                Message was edited by: Himanshu Gautam

                Regards

                Himanshu , Bruhaspati

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

                The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

                • Re: Using HD7970 as secondary GPU for OpenCL only
                  darkmen Newbie
                  Currently Being Moderated

                  No, under TV (when AMD is primary GPU) - all fan/usage data are afailable. And (as was mentioned above) RDP uses own graphic driver and AMD GPU becomes secondary (not primary). And thats why it behaves same way I described in my very first post, excepts core clock (it stays unchanged under RDP)

                  Reminding: all tests were w\o HW display connected

                  • Re: Using HD7970 as secondary GPU for OpenCL only
                    himanshu.gautam Master
                    Currently Being Moderated

                    Hi Darkmen,

                    I guess, you are setting the GPU in overclock mode, by attaching a monitor. Now when you remove the monitor and use RDP to access the system, does the GPU automatically down clock?

                    Regards

                    Himanshu , Bruhaspati

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

                    The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

                    • Re: Using HD7970 as secondary GPU for OpenCL only
                      darkmen Newbie
                      Currently Being Moderated

                      Hi, no. Under RDP - clock stays unchanged (even if was overclocked it stays overclocked) according to clinfo. But any of GPU monitor software (including AMD System Monitor) cant read GPU clock, usage, fan speed.

                      • Re: Using HD7970 as secondary GPU for OpenCL only
                        himanshu.gautam Master
                        Currently Being Moderated

                        darkmen,

                        I guess then, that you are finally able to run your GPU in overclocked mode using RDP.

                        I tried the teamviewer and AMD System monitor, and could see the spikes in System monitor, while running samples. Although System Monitor did not worked with RDP for me.

                         

                        Anyway, you have more chances of getting better answers in "GPU Developer Tools" section on this.

                        Regards

                        Himanshu , Bruhaspati

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

                        The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

More Like This

Legend

  • Correct Answers - 4 points
  • Helpful Answers - 2 points