Contribute
Register

macOS Native Discrete GPU Power Management

Status
Not open for further replies.
How do we test it? That CurrentPowerState value doesn't change in my current setup. Is it supposed to change if GPU Power Management is working?

Same. I don't know a good way to test. Power usage, temps, and performance are unchanged for me after confirming the correct new stuff in IOReg. Maybe some improved sleep/wake reliabilty? Too early to tell tho . . .
 
Maybe some improved sleep/wake reliability?

I doubt it.
For my build (iMac 17,1), native PM = wake up to a blank screen, whereas no native PM (not having AGPMController nor Heuristic-ID) = wake up normally.
 
The only thing missing is Heuristic-ID: 4. That means GPU Power Management is not working?
Yes. See II. Installation/
Missed: 2. Confirm native AppleGraphicsPowerManagement.kext support/
1. AMD: iMac17,1
For Nvidia: 3. Add AppleGraphicsPowerManagement.kext support
Install ...
Reply with new files
 
spoke with vit9696, who is involved with NvidiaGraphicsFixup, and I was told that experiments indicated that the methods detailed here brought no visible effects to Kepler and newer Nvidia GPUs.
Interesting, the only way to know if CPU PM is working is Intel Power Gadget. Without Nvidia GPU frequency, power and temp data, there is no "visible" way to know anything. It is clear Fermi and older used 4 thresholds for PM (macOS GPU PM default) while Kepler and newer uses 16 power states.
 
For my build (iMac 17,1), native PM = wake up to a blank screen, whereas no native PM (not having AGPMController nor Heuristic-ID) = wake up normally.
GPU PM has nothing to do with sleep (no native sleep mode). With GPU PM and without has nothing to do with black screens; invalid experiment. Off topic.
 
Yes. See II. Installation/
Missed: 2. Confirm native AppleGraphicsPowerManagement.kext support/
1. AMD: iMac17,1
For Nvidia: 3. Add AppleGraphicsPowerManagement.kext support
Install ...
Reply with new files
I did’t use the guide, I don’t understand „*Select "Mac-Nvidia", paste IGPU on "Mac-Nvidia"*Copy board-id*Paste board-id over "Mac-Nvidia"”

My image is showing AGPM values with GFX0 to IGPU and PEGP to GFX0.
Also, AppleGraphicsPowerManagement.kext is showing as loaded in 10.13.3 (17D102) and 10.13.4 beta 4.
I don’t use Lilu, IntelGraphicsFixup, NvidiaGraphicsFixup or Shiki. I have only FakeSMC & IntelMausiEthernet.

That’s why I’m asking, is Heuristic-ID: 4 essential for GPU Power Management?
 
Last edited:
Interesting, the only way to know if CPU PM is working is Intel Power Gadget. Without Nvidia GPU frequency, power and temp data, there is no "visible" way to know anything. It is clear Fermi and older used 4 thresholds for PM (macOS GPU PM default) while Kepler and newer uses 16 power states.

These are only my personal experiments on the hardware I have. I can't speak for what data Vit has:

So, I can estimate power usage by monitoring draw at my UPS (it has a built-in Kill-a-Watt-like feature), and I've established a baseline with and without certain hardware in Windows to get some idea of the System and GPU power state at any given time. I saw no change in power draw in macOS with vs. without the dAGPM.kext. So, that's where I get that result.

For temperature, I have no reliable tool from Nvidia in macOS comparable to Intel Power Gadget to really test it, but I do have kozlek's GPUSensor kext, which was fixed a few months ago to provide data for Pascal. I agree I have no way to validate the results I get out of that kext, but I saw no change in what it showed with vs. without the dAGPM.kext. Even if its data is inaccurate, it does change with load, so it is at least possible that if dAGPM.kext was improving power management I might see some difference. So, that's where I get that result.

In terms of performance, I saw no improvement in tests where I know the 104 driver has issues, such as web gl. It was at least theoretically possible that improved power management might bring improvement in the tests. It did not.

These are just some ways that changes in Nvidia GPU frequency, power, and temp might be observed, although I agree that none of this is as good as Intel Power Gadget is for CPU PM.

I'm not saying that dAGPM.kext and discrete graphics power management on Kepler+ is useless, and I don't think Vit is either. I'm just looking for a "visible" way to know anything. Do you have any suggestions?

Also, see here where I asked Vit about it: https://github.com/lvs1974/NvidiaGraphicsFixup/issues/2

GPU PM has nothing to do with sleep (no native sleep mode). With GPU PM and without has nothing to do with black screens; invalid experiment. Off topic.

Also, thank you for clearing this up. I was also under the mistaken impression that GPU PM might help with sleep issues.
 
Last edited:
Hi Toleda, thanks for your work.
I have an i7-7700k Kaby Lake and using NVIDIA GeForce GTX 1060.
In my Hardware Overview the Model Identifier is iMac14,2 but on your table it corresponds to the 4th: Core i-4xxx Haswell.

Can you please suggest how to procced?
 
@toleda I've been struggling with this for a little while and I think that there may be a typo.
According to the online convertor that you linked :
47465830 = GFX0
and
50454730 = PEG0

So Patches - Item 1 in config-audio_cloverHDMI+.plist is saying
Find GFX0 and Replace it with PEG0

GFX0.png


Shouldn't they be the other way round ?
ie Find 50454730 (PEG0) and Replace it with 47465830 (GFX0) ?
 
Status
Not open for further replies.
Back
Top