Contribute
Register

Nvidia Fermi and AGPM power management in Mountain Lion

Status
Not open for further replies.
Joined
Jul 21, 2011
Messages
52
Motherboard
ASRock Z390 Phantom Gaming-ITX/ac
CPU
i9-9900
Graphics
RX 5700 XT
Mac
  1. MacBook
Mobile Phone
  1. Android
  2. iOS
I have my Nvidia GTX 570 working thanks to this small guide, so I have not installed any driver or modification for my GPU. The card seems to be working well, but when I enter "AGPM" in the console, to see if the card is switching power states, all I see is:

04-08-12 00:46:22,000 kernel[0]: [AGPM Controller] unknownPlatform

In Lion, I was able to see various power state switches this way, but not in Mountain Lion. Does this mean power management for my GPU is not working?
 
I have my Nvidia GTX 570 working thanks to this small guide, so I have not installed any driver or modification for my GPU. The card seems to be working well, but when I enter "AGPM" in the console, to see if the card is switching power states, all I see is:

04-08-12 00:46:22,000 kernel[0]: [AGPM Controller] unknownPlatform

In Lion, I was able to see various power state switches this way, but not in Mountain Lion. Does this mean power management for my GPU is not working?

That may be the case; I know I had to make an edit to AppleGraphicsPowerManagement.kext in order to get full performance from my GTX 470 as well as reduce idle temperatures. Here's my edit, you'll need to change the DeviceID to match your card, of course:

I'm using the MacPro 5,1 system definition, so for me, this goes immediately under:
Code:
                                <key>MacPro5,1</key>
                                <dict>


Code:
                                        <key>Vendor10deDevice06cd</key>
                                        <dict>
                                                <key>Heuristic</key>
                                                <dict>
                                                        <key>ID</key>
                                                        <integer>0</integer>
                                                        <key>IdleInterval</key>
                                                        <integer>500</integer>
                                                        <key>SensorOption</key>
                                                        <integer>1</integer>
                                                        <key>TargetCount</key>
                                                        <integer>5</integer>
                                                        <key>Threshold_High</key>
                                                        <array>
                                                                <integer>70</integer>
                                                                <integer>95</integer>
                                                                <integer>110</integer>
                                                                <integer>190</integer>
                                                        </array>
                                                        <key>Threshold_Low</key>
                                                       <array>
                                                                <integer>0</integer>
                                                                <integer>60</integer>
                                                                <integer>90</integer>
                                                                <integer>190</integer>
                                                        </array>
                                                </dict>
                                                <key>control-id</key>
                                                <integer>17</integer>
                                                <key>LogControl</key>
                                                <integer>1</integer>
                                        </dict>

Then, immediately before the next system definition (Macmini3,1 for me), make sure the "default-control-id" key's value is set to 17 as well.

After that, repair permissions ("sudo diskutil repairPermissions /" if you want to just stay in Terminal), then rebuild your kernel kext cache by typing:

Code:
sudo kextcache -system-caches
sudo kextcache -update-volume /
 
Thanks, forgot to do all that after installing ML :-o

Got it working, thank you!
 
Khaibit, do you think this would work for a 550 Ti by exchanging my Dev ID (1244) in place of yours? Would there be any additional edits that you would know of?
 
Khaibit, do you think this would work for a 550 Ti by exchanging my Dev ID (1244) in place of yours? Would there be any additional edits that you would know of?

It worked for the OP, and he has a 500 series, so it may well work for you too. Back up your AGPM.kext before making the changes, of course, so you can revert if it doesn't. =) The only other thing you may want to change is the threshold values, but I honestly don't remember what they all mean...can probably find more info on them by searching the site though.
 
For those running the GTX 560 (non Ti), I have been doing some experimentation on the different threshold values, and I found a pretty good range that worked for me. This configuration might work for other models, as well.

Inserted under your Device's ID (ie <key>Vendor10de1201</key>):

<dict>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>500</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>TargetCount</key>
<integer>5</integer>
<key>Threshold_High</key>
<array>
<integer>80</integer>
<integer>80</integer>
<integer>80</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>84</integer>
<integer>84</integer>
<integer>84</integer>
</array>
</dict>
<key>LogControl</key>
<integer>1</integer>
<key>control-id</key>
<integer>17</integer>
</dict>

The number didn't seem to do much until the key "SensorSampleRate" was removed. Perhaps someone could enlighten us on what that specific option does?
 
Hey guys,

I must be missing something but when I right-click on the AGPM kext to reveal its contents in ML and edit the plist to insert my deviceID but there is none to edit...is it hidden in some sort?

I feel like a noob (not that I am not, but I've been editing it since ages in SL/Lion and now it seems im stuck..:/)
 
Hey guys,

I must be missing something but when I right-click on the AGPM kext to reveal its contents in ML and edit the plist to insert my deviceID but there is none to edit...is it hidden in some sort?

I feel like a noob (not that I am not, but I've been editing it since ages in SL/Lion and now it seems im stuck..:/)

Yep, it's hidden! I ran into the same issue ;-) I use Path Finder instead of the default Finder so it's easy for me to see hidden files. I'm not sure how to view them with Finder but I'm sure a quick Google will help you out with that.
 
Yep, it's hidden! I ran into the same issue ;-) I use Path Finder instead of the default Finder so it's easy for me to see hidden files. I'm not sure how to view them with Finder but I'm sure a quick Google will help you out with that.

defaults write com.apple.Finder AppleShowAllFiles TRUE

then

killall Finder

When you want to get back to hiding hidden files just type

defaults write com.apple.Finder AppleShowAllFiles FALSE
 
Thanks guys! Now I know I'm a noob! :p
 
Status
Not open for further replies.
Back
Top