Announcement

Collapse
No announcement yet.

ATI Kernel Power Management Moves A Bit More

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    What does the ForceLowPowerMode option do? After enabling it I still see with rovclock that the core and memory clocks are at their maximum values...
    With KMS, it doesn't do anything.

    With UMS, it halves the clock speeds, I think.

    Comment


    • #32
      Originally posted by bridgman View Post
      There are definitely differences from generation to generation but I *think* the main breakpoints were in the middle of the 6xx generation and then more changes between 6xx and 7xx. We'll know more in a month or so, but AFAIK Evergreen should be able to leverage most of the 7xx code.

      Remember, there is no R800, just Evergreen
      Ok, thanks.

      Comment


      • #33
        Originally posted by pingufunkybeat View Post
        With KMS, it doesn't do anything.

        With UMS, it halves the clock speeds, I think.
        That's a weird one. As I said, rovclock still reports the clocks at full whack.

        Comment


        • #34
          Last time I looked, rovclock did not take into account the post divider. Also, rovclock only works on legacy radeons, (r1xx-r4xx).

          Comment


          • #35
            I probably should have posted in another thread to avoid confusion: my card is an R300. I just thought ForceLowPowerMode also worked for legacy cards. Should owners of these cards keep using rovclock then?

            Comment


            • #36
              Originally posted by yotambien View Post
              I probably should have posted in another thread to avoid confusion: my card is an R300. I just thought ForceLowPowerMode also worked for legacy cards. Should owners of these cards keep using rovclock then?
              ForceLowPowerMode works on all asics. rovclock should be avoided.

              Comment


              • #37
                Originally posted by agd5f View Post
                ForceLowPowerMode works on all asics. rovclock should be avoided.
                So rovclock is reporting the wrong numbers? If it's not, why is the card at its highest frequency settings with the ForceLowPowerMode option activated and why should this tool be avoided?

                Comment


                • #38
                  Originally posted by yotambien View Post
                  So rovclock is reporting the wrong numbers? If it's not, why is the card at its highest frequency settings with the ForceLowPowerMode option activated and why should this tool be avoided?
                  Last time I looked at rovclock it did not take into account the post divider for the engine or memory clocks so if the post divider is anything other an 1, it will set/report the wrong value. Also, IIRC, some of the vram setup stuff in the memory reclocking code is wrong for r2xx+ chips.

                  Comment


                  • #39
                    Stupid $^$^&% edit limit. If the post divider is initially set to 1 and you half the engine clock, the post divider will likely be 2. since rovclock does look at the post divider, it will still report the old clock.

                    Comment


                    • #40
                      I can't say I fully understood you, but I take it that there are some technical drawbacks with using rovclock. The point is that if ForceLowPowerMode is just halving the clocks, that's a bit conservative, isn't it? This is, I use rovclock to set the core and memory frequencies to the values reported by fglrx in its lowest power settings, and those are 1/4 and 1/3 their original values, respectively.

                      Comment


                      • #41
                        Originally posted by yotambien View Post
                        I can't say I fully understood you, but I take it that there are some technical drawbacks with using rovclock. The point is that if ForceLowPowerMode is just halving the clocks, that's a bit conservative, isn't it? This is, I use rovclock to set the core and memory frequencies to the values reported by fglrx in its lowest power settings, and those are 1/4 and 1/3 their original values, respectively.
                        The problem is rovclock isn't necessary setting the clocks to what you think it is. It only works if your current clock happens to use a post divider (post_div) of 1. If not, your clocks will be 2, 4, or 8x slower than rovclock reports.

                        The output frequencies of the plls used for the engine and memory are calculated from the following formula:

                        output frequency = ((reference clock * fb_div) / ref_div) / post_div;

                        As you can see the post divider dividers the clock down by 1, 2, 4, or 8, depending on what it's set to. If you don't take it into account, your output frequencies will be wrong. This is why rovclock shows the same clock as before even when the driver has set the engine clock to half of the default value. Also, the engine and memory plls share the same ref_div, so you have to take that into account when setting the clocks.

                        You can adjust the ForceLowPowerMode driver option to set values lower than 1/2 by changing it in he driver. That's just what a conservative value that I picked as a stop gab until the dynamic kms pm code was finished. The new dynamic pm code in kms does a much better job.

                        Comment


                        • #42
                          I see. KMS is the final solution to power saving then. Personally I'm not extremely bothered about the power drain, but the noise from the fan kills me and my concentration--aside from the fact that my partner doesn't appreciate it all too much when I work until late : )

                          Thanks!

                          Comment


                          • #43
                            I'll be interested to see how the DRM ends up communicating with the hwmon components as I'm not sure how this is supposed to be done in-kernel.

                            Comment


                            • #44
                              I'm curious about how dynamic power adjustments will be supposed to work. Is this anything like CPU frequency scaling, where changes are applied extremely fast depending on the load? It seems that all these engine and memory reclockings, pci lane adjustments, perhaps future voltage changes and what not are cumbersome operations (no technical reason to think so, but the glitches I see when I adjust the clocks never fail to give me bad vibrations).

                              Many OpenGL applications do not need to use all the power available from the GPU. Imagine a molecular (or any other kind of) viewer; the user will touch it at discrete intervals, rotate a couple of things, zoom here, move there and so on. As long as the displayed scene is fluid you don't need to go over the top with the GPU. I guess the same thinking applies to composite desktops, where moving a window shouldn't need to put the card on a higher power state, increasing the heat produced and ultimately (gasp!) kicking the fan in.

                              I'm sure this has been thought through; what behaviour should we expect? Will there be an option to force everything down irrespective of the load?

                              Comment


                              • #45
                                Originally posted by yotambien View Post
                                I guess the same thinking applies to composite desktops, where moving a window shouldn't need to put the card on a higher power state
                                Indeed it doesn't. FPS are fixed in compositing and so only a small amount of power is used and it shouldn't put the gpu on a higher power state.
                                ## VGA ##
                                AMD: X1950XTX, HD3870, HD5870
                                Intel: GMA45, HD3000 (Core i5 2500K)

                                Comment

                                Working...
                                X