4

This is not about gaming performance. I've got that all sorted when booting into Windows.

This is a 2012 version rMBP.

The question is about trying to gain a little more control over the hardware from the OS X-side.

During the summer, the machine runs acceptably cool under typical usage, for example, web browsing, even mp4/h.264 (non-flash) video decoding, etc. I was watching a 1080p Blu-ray rip the other day. Handled it fine.

However, once I plug in my external 2560x1440 display via a MiniDP-to-DL-DVI adapter, the display will only connect if the GT 650M is switched on. I use gfxCardStatus to control whether this Nvidia GPU is allowed to be switched to.

So this is fine, except that now I have to keep the fan spinning at higher RPMs (controlled through smcFanControl, of course), and even with that the temperature reads above 70 degrees C most of the time. It will generally be in the mid 50's to low 60's range when running the integrated GPU.

I know these are not very specific numbers, but the point is that whenever the Nvidia GPU is powered on the machine is producing a lot more power as heat.

According to an app I have here called "BatteryExpert" it draws around 11 watts on integrated and 19 watts with the second screen plugged in.

So my question is how can I see the clock speed of the Nvidia GPU, and how can I adjust it in hopes of cooling it down, but still keep it enabled? I need it to be powered on for the secondary monitor, but it's making the aluminum surface a bit too warm for comfort for typing.

I am able to boot to Windows to run e.g. GPU-Z there to check the clocks, but on Windows I'm not aware of any app that can read out a power draw wattage, so it's a little difficult to corroborate. (I guess I can compare idle temps, though.)

It may turn out to be the case that that ~8 watt difference (which results in the 15+ degree C difference in temperature, and a similar difference felt on the aluminum surface) is fully accounted for by running the 650M at its lowest power level, as it is after all a ~50W unit. I'm not really sure what to think. On the one hand 50W is at 900Mhz under load, and here it should be ~165Mhz ('s what GPU-Z tells me in Windows) idle.

Well I've gone off in the weeds at this point. The question is, what is some monitoring software to show me the GPU clocks? When I tried iStat Menus it did not have a GPU clocks reading.

2 Answers 2

1

If you don't need to use the MBP screen while using the external monitor you can disable it using a small magnet.

A small magnet placed on the left side of the MBP keyboard, more or less above where the SD card reader is placed, will make it think that the lid is closed. The GPU will need to do less work to drive just one screen (the external) and use less power, and with the lid still open the airflow will be beter.

I use this on a 2011 MBP, other versions may need to have the magnet placed at different places for it to detect a closed lid. And if you try this, please use the smallest magnet available.

1
  • That's actually a really neat hack! I bet the location of the magnetometer that controls this is somewhere else on my Mac but this is probably a decent way to force the computer to think it's closed without actually closing it (and risk heat-damaging the screen) and keeping it running. However most of the time when I plug in an external I am interested in also using the laptop's own 2880 resolution display as well.
    – Steven Lu
    Nov 14, 2013 at 15:40
0

Not really.

First I just want to clarify a few things, though you might already be aware of them. The integrated graphics can only draw to the built in display in this case. It physically cannot output a stream through DisplayPort, it's not that the chip is incapable of it, it's the video switch IC isn't wired up to with dual graphics MBP's.

So, like you said, if you use both the built-in and external display, both cards have to be working. And when the discrete card starts drawing, there's a bump in power usage, and your machine runs hotter, as you've noted. And it would run even hotter if you use any OpenGL/CL (and now, metal) using apps as well.

Also, it's worth pointing out that while your case feeling warmer does mean it's using more energy, it also means that the heat is being routed away from the cards as intended. Unibody Macbooks have really bad ventilation.

So moving onto the question: no, that is not possible to do in macOS.

I guess theoretically, it would be possible if you somehow got your hands on the Nvidia drivers and built your own version that allowed you to manually adjust these very low level settings. And then I'd imagine you would have to roll your own version of gMux, which would probably override with power management.

My advice would be to resist the urge to control the system management aspects, as after all, they put an SMC on your MBP's logic board with its expensive real estate. Just let it do its job (which it does pretty well in most cases), and if you are positive power is being wasted, the logical angle to tackle the issue would be at the software level. (whatever you're running might not be as optimized as it could be, and using more resources than needed).

I think some tools that might satisfy your curiosity as to what the power management parameters are at a given time could be found in the additional tools Apple provides on its developer portal. (You might need to sign up for the free developer program, pretty sure you don't need paid membership.)

Go through the registry values, look around a bit. The hardware side would be something like IODeviceTree:/PCI?@?/P?P?@?, and the firmware side something like IOACPIPlane:/_SB/PCI?@?/P?P?@?????, with varying digits for the ? marks. (integrated video would be IGPU under the PCI tree). It should expose the "power state" out of a number of possible values. I didn't dig too deep, and wasn't able to find the clock multiplier, but it also may well be exposed.

Since IMO, control at this level isn't very feasible, if you want to look on the software side of things, the additional tools image also includes an opengl monitor which would give you all the information available with the driver currently in use. Things like # of shaders, % utilization, GPU time, CPU time spent waiting for GPU, etc.

8
  • Nice, a lot of good info here. I don't have that machine anymore. (When I tried to buy a battery upgrade they told me they were out of replacement parts and gave me a 2015 year model instead!) I would expect the 2015 model to have similar properties, though it's an AMD dGPU this time around. These days I mainly work on my 2017 model macbook pro, which I am happy to report that (a somewhat hard to find version of) gfxCardStatus works wonderfully with. I would be surprised if it couldn't drive two large monitors without having to start the dGPU.
    – Steven Lu
    Feb 21, 2018 at 21:54
  • That's great, glad it worked out for you. I figured you'd probably have a different machine by now, but I've been trying to dig into the why of kepler chips failing in MBP's, and thought I'd share my findings for anyone who was curious. I wasn't so lucky when I took my 2012 rMBP in for dGPU issues. I ended up paying ~$500 for a new motherboard out of warranty, because the diagnostics tests didn't indicate GPU problems, even though it was obvious from the spectacular failures on the display whenever (and this is almost funny) you put some pressure on part of the casing. Mar 1, 2018 at 10:44
  • Oh, I meant to ask, did you mean to say you'd be surprised if intel hd graphics couldn't drive two large external dp streams, or was that a typo?? Because I would be surprised (in a good way) if the integrated graphics could handle that large of a canvas?? I've been weary of any Mac portables for reliable graphics since my 2012 machine kept dying (replacement board started failing within a year. But the repair extension period's up, and over 4 years since purchase date. grr...) , and even the dual firepro turned out to be not as useful as I expected. Hoping the iMac pro fares better. Mar 1, 2018 at 10:58
  • I’d be happy to test that, but I bet you can find an answer somewhere on the net about tests of this kind. I do expect intel iGPUs to be improving, but it’s possible that the same limitations exist. It is possible to drive 2 large displays on a non dGPU having older MacBook... dunno.
    – Steven Lu
    Mar 3, 2018 at 6:57
  • 1
    I googled around and found basically no info. It does not look like there are many people out there who use multi monitors who care about minimizing heat generation like us. I do not have enough USB-C/TB3 -> HDMI/DP adapters, I only have a single one right now... I really hope that I could run e.g. 2x 1440p displays off of only the iGPU on this 2017 MBP, but at this time cannot confirm if that is possible. When my house remodeling is done I will have more space to set up enough space around my computer desk and get another adapter to test this.
    – Steven Lu
    Mar 4, 2018 at 21:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .