Contribute
Register

macOS Native Discrete GPU Power Management

Joined
Dec 30, 2015
Messages
64
Mac
MacBook Pro
Classic Mac
iMac
Mobile Phone
iOS
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 . . .
 
Joined
Jul 16, 2016
Messages
10
Motherboard
MSI Z370M Gaming Pro AC
CPU
i5-8400
Graphics
RX580
Mac
iMac, MacBook Pro
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.
 

toleda

Moderator
Joined
May 20, 2010
Messages
24,261
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
iMac, MacBook Pro, Mac mini
Classic Mac
512K, LC, Power Mac
Mobile Phone
iOS
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
 

toleda

Moderator
Joined
May 20, 2010
Messages
24,261
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
iMac, MacBook Pro, Mac mini
Classic Mac
512K, LC, Power Mac
Mobile Phone
iOS
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.
 

toleda

Moderator
Joined
May 20, 2010
Messages
24,261
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
iMac, MacBook Pro, Mac mini
Classic Mac
512K, LC, Power Mac
Mobile Phone
iOS
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.
 
Joined
Mar 29, 2011
Messages
229
Motherboard
GA-Z170X-UD3 (F23g)
CPU
Intel Core i5-7400
Graphics
Asus Radeon RX 560 4GB
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:
Joined
Dec 30, 2015
Messages
64
Mac
MacBook Pro
Classic Mac
iMac
Mobile Phone
iOS
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:
Joined
Nov 18, 2017
Messages
26
Motherboard
ASUS TUF Z390M-PRO GAMING (WI-FI)
CPU
i7-8700K
Graphics
RX 580 8 GB
Mac
iMac, MacBook Pro
Mobile Phone
iOS
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?
 

P1LGRIM

Moderator
Joined
Mar 2, 2012
Messages
23,263
Motherboard
Lenovo ThinkStation p300 ⌘
CPU
i7-4790K
Graphics
HD 4600
Mac
MacBook Pro, Mac mini
Classic Mac
Power Mac
Mobile Phone
iOS
@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) ?
 
Top