Underclock/undervolt discreet gfx? (AMD Radeon HD 6770M)

Discussion in 'MacBook Pro' started by canhaz, Jul 18, 2012.

  1. canhaz macrumors regular

    Joined:
    Jan 17, 2012
    #1
    There is a strong likelyhood that the discreet graphics card causes a 2012 MBP to heat up, and hence cause the fans to kick in. I'm really so frustrated by this activity, I could cry.

    Can't stand the fact that the I5/I7 CPU, can't be underclocked or undervolted at all, so wondered if the discreet graphics card (AMD Radeon HD 6770M) could be perhaps as a secondary solution?

    Now I could just use integrated only mode, using a tool like gfxCardStatus (http://codykrieger.com/gfxCardStatus), however that means I loose my Thunderbolt display, as it needs the discreet card to operate.

    Does anyone know if it is in theory possible to underclock or undervolt the GPU? I would pay up to $1000 for a solution. I'm that desperate.

    I just can't work with these fans going on and off all the time. Feel really let down by Apple, and considering going back to a Core2 Duo.
     
  2. negativzero macrumors 6502

    Joined:
    Jul 19, 2011
    #2
    Nope no way to do it. Undervolting can be done with Windows on Bootcamp, but the settings won't transfer over to OSX.
     
  3. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #3
    Are you sure you can undervolt an I5/I7 in Windows? I read elsewhere on this forum that Intel limited the CPU itself and removed the functionality to allow software to control the voltage.

    Or where you referring to the GPU?
     
  4. negativzero macrumors 6502

    Joined:
    Jul 19, 2011
    #4
    Sorry was referring to the GPU.
     
  5. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #5
    Ahh, so in theory it might be possible to underclock/undervolt it in OSX? (given enough motivation for someone to code this up)
     
  6. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #6
    It is possible but doubtful.
    I know the problem I also think it is hugely annoying that my discrete 330M always is active in OSX because of the external display. I never do anything in OSX with two displays that the Intel GPU couldn't handle just fine but I get a more noisy notebook.
    I thought about reapplying thermal past it might get me just the 500-1000 rpm lower that I need to keep this quite in most conditions.
    It is stupid and I really don't get why Apple keeps holding on to this idiotic implementation.
    Funny as it is I only ever really need my dedicated GPU when gaming under Windows with only ONE display active.
    In OSX I feel like a 15" without a dedicated GPU would be more my thing for it would stay less noisy.

    In theory it is possible to underclock and undervolt the GPU. They aren't locked as the CPUs.
    Here is one solution that might work with Nvidia.
    http://www.projectosx.com/forum/index.php?showtopic=1246
    Maybe if you try google you can find a port for ATI stuff. Look for both underclocking and overclocking. It is effectively the same thing but most tools might have as a primary purpose the latter.
     
  7. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #7
    Found something
    http://www.groths.org/?page_id=108
    Zeus it is a flashing tool.
    Basically it flashes the firmware of the drive. Flashing was used on Windows to make ie to make a GPU based on the same chip use all its shaders which often worked.
    It also changes the default clocks and unless the OSX driver overrides those you can falsh it in Windows and the maximum aka default clock will stay the same in OSX.
    If you want more speed in Windows for gaming again just use a normal overclocking tool and overclock as needed there.

    Problem is the program is quite old and it probably needed an update to work with 6000M GPUs.
    At least that is a solution that would work just a more uptodate might be needed.
     
  8. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #8
    Super thanks! Great find, looking into this. I have also been playing around with the SMC.

    Found this very interesting...

    http://www.parhelia.ch/blog/statics/k3_keys.html
     
  9. dusk007, Jul 18, 2012
    Last edited: Jul 18, 2012

    dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #9
    I checked those smc keys but there is no way to actually set any plimits unless I missed something.
    It only reads them out.
    I guess setting a really low plimit might force the gpu to stay in one of the lower power states which would be perfect.
    I think the SMC has no control over GPU power. That is all inside the GPUs firmware and up to the OS driver.
    SMC only communicates with thermal sensors and other stuff and can only read them out, report or trigger an emergency shut down if necessary.

    Maybe there is a way to force some lower plimit maximum but I am pretty sure the SMC cannot help us in that.

    Update: I found the solution but didn't get around to try it out yet.
    Download kext utility
    Change low high thresholds in AppleGraphicsPowerManagement.kext
    replace the kext in terminal (backup the old one before)
    It should work with any GPU.
    Can be found under System/Library/Extensions/AppleGraphicsPowerManagement.kext

    In there it should be possible to simple force it to stay in the lower (actually the higher) pstates of the GPU. I didn't look into it in detail but I am positiv that should work.
    pstates are usual 0 being full speed 1,2, ... less and less until the lowest 2D power state. Often GPUs don't go past 1 or 2 when an external monitor is connected which makes them all the hotter. I guess that problem can be fixed here but one has to try first.
     
  10. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #10
    Hmm K_VAR_ATOM_RW indicates it might be Read and Write, whereas K_VAR_R appears to be read only..?
     
  11. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #11
    I just saw your update. Might give this a bash now! Thanks, let me know if you've tried it.

    Also I've ordered some of this. http://www.amazon.com/gp/product/B0042IEVD8/ref=oh_details_o00_s00_i00

    IC Diamond thermal paste, and will reapply to GPU and CPU to see if it helps. The fan noise is just unbearable.
     
  12. canhaz thread starter macrumors regular

    Joined:
    Jan 17, 2012
    #12
    Hey so wondering what keys you changed. Been trying to do this, and found an old blog post.

    http://www.chromescreen.com/get-rid-of-osx-lag-and-run-your-macbook-pro-gpu-at-full-speed/

    But the keys are pretty different for the some MBP's. Maybe the difference is Nvidia vs ATI?

    My model is 8,2 as follows:

    Code:
    				<key>MacBookPro8,2</key>
    				<dict>
    					<key>IGPU</key>
    					<dict>
    						<key>Heuristic</key>
    						<dict>
    							<key>BusyDownThresholdPercent</key>
    							<integer>70</integer>
    							<key>BusyUpThresholdPercent</key>
    							<integer>90</integer>
    							<key>DiagnosticModeDefault</key>
    							<integer>0</integer>
    							<key>EvaluateDownInterval</key>
    							<integer>350000</integer>
    							<key>EvaluateUpInterval</key>
    							<integer>66000</integer>
    							<key>ID</key>
    							<integer>2</integer>
    							<key>SensorOption</key>
    							<integer>1</integer>
    						</dict>
    						<key>control-id</key>
    						<integer>16</integer>
    						<key>max-power-state</key>
    						<integer>15</integer>
    						<key>min-power-state</key>
    						<integer>0</integer>
    					</dict>
    					<key>Vendor1002Device6741</key>
    					<dict>
    						<key>QSC</key>
    						<dict>
    							<key>Enabled</key>
    							<integer>1</integer>
    							<key>Mode</key>
    							<integer>1</integer>
    							<key>hwPState</key>
    							<array>
    								<integer>0</integer>
    								<integer>0</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>2</integer>
    							</array>
    							<key>qscOnTime</key>
    							<array>
    								<integer>0</integer>
    								<integer>1440</integer>
    								<integer>0</integer>
    								<integer>2400</integer>
    								<integer>4000</integer>
    								<integer>5760</integer>
    								<integer>7680</integer>
    								<integer>9760</integer>
    								<integer>0</integer>
    							</array>
    						</dict>
    						<key>control-id</key>
    						<integer>17</integer>
    						<key>max-power-state</key>
    						<integer>8</integer>
    					</dict>
    					<key>Vendor1002Device6760</key>
    					<dict>
    						<key>QSC</key>
    						<dict>
    							<key>Enabled</key>
    							<integer>1</integer>
    							<key>Mode</key>
    							<integer>1</integer>
    							<key>hwPState</key>
    							<array>
    								<integer>0</integer>
    								<integer>0</integer>
    								<integer>0</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>1</integer>
    								<integer>2</integer>
    							</array>
    							<key>qscOnTime</key>
    							<array>
    								<integer>0</integer>
    								<integer>2240</integer>
    								<integer>3520</integer>
    								<integer>0</integer>
    								<integer>3680</integer>
    								<integer>4960</integer>
    								<integer>6720</integer>
    								<integer>9120</integer>
    								<integer>0</integer>
    							</array>
    						</dict>
    						<key>control-id</key>
    						<integer>17</integer>
    						<key>max-power-state</key>
    						<integer>8</integer>
    					</dict>
    				</dict>
     

Share This Page