The cheapskate way I installed and powered a second GPU on my old Mac Pro
I'm happy to admit that I'm a cheapskate. Well maybe I'm more frugal but I definitely have cheapskate tendencies. Do I pay for television? Hell no, I have an antenna that gets 24 channels. Do I buy new cars? Never. Last year I bought a like new 2007 Toyota FJ Cruiser based on the old Toyota FJ 40 Land Cruiser that runs like champ and looks damn cool, too. My wife wanted a pool heater. I made a solar pool heater with black tubing and spare wood.
For my computing I inherited a 2009 Mac Pro where I upgraded the CPU, GPU, Wi-Fi, Bluetooth module, and memory to run nearly as well as a modern iMac Pro. All at a fraction of the cost of an iMac Pro of course. I have a second hand gen 2 Apple Watch that does most of what a new Apple Watch does and I bought a used HTC Vive headset out of an open box sale for 50% off the full price.
None of this means I never buy new. If I can't have an adequate substitute to a new product, then I'll weigh how important it is for me to have "right now". I just get a kick out of being able to get features and add ons for my consumer lifestyle all while buying used or being able to update my used things by (many times poorly) copying the real thing using spare parts I have lying around or buying incremental upgrades as needed. Here's how I used this cheapskate tendency to power a second GPU in my Mac Pro.
Some background
When I inherited my 2009 Mac Pro, I was lucky enough to have an unused AMD RX 580 GPU from a Windows 10 gaming rig after I got a deal on an Nvidia 1080 ti as an upgrade. With the release of macOS High Sierra, support for the RX 580 came out of the box. As such, it was a no brainer for me to add it to the Mac Pro system. And it was really good.
Around the same time of me inheriting the Mac Pro, Apple decided to release the eGPU development kit for VR and AR application development. It too had an AMD RX 580 GPU in the eGPU enclosure.
For my testing I received one of the Apple eGPU development kits to run on a borrowed Skylake based MacBook Pro via the Thunderbolt 3 port. And although it does it's job, the performance relative to the AMD RX 580 running directly on a PCIe port on my much older Mac Pro was a bit disappointing. Overall, the eGPU on TB3 ran about 25% slower than the GPU in the Mac Pro.
The idea
Although I could have continued to used the eGPU kit, the performance delta when compared to the Mac Pro had me just leaving it unused for some weeks. Until I got a great idea. The 2009 Mac Pro has two 16x PCIe ports on the motherboard. One of them was being used by my own RX 580. The other was unused. Why not just remove the RX 580 from the eGPU enclosure and put it into my 2009 Mac Pro? I'd have double the compute power than I had using a single GPU and since I use Boot Camp to run Windows 10, I could harness the second GPU to run in Crossfire mode (a special way for 2 or more GPUs to split graphical workloads) for gaming in Windows!
Master your iPhone in minutes
iMore offers spot-on advice and guidance from our team of experts, with decades of Apple device experience to lean on. Learn more with iMore!
The problems and solutions
Although the overall idea was simple, in practice I ran into some issues.
The PCIe slot and fan problem
The most immediate issue was the slot placement of the two 16x PCIe ports on the 2009 Mac Pro. They are right next to each other. Both RX 580s have a two slot profile. This means that in a normal PC based motherboard, the GPU card will take up two slot positions when mounted. Most manufactures of motherboards deal with this nicely by placing their PCIe slots at intervals where an installed GPU will not interfere with another equally capable PCIe slot. Interestingly, the Mac Pro ALMOST does this too, except that there is too little of an interval between the PCIe slots. There are other slots as well but those run at a slower bus speed and would cause issues while running the two GPUs in Crossfire mode under Windows 10. So I needed to run both cards in the adjacent slots.
The PCIe slot and fan solution
This PCIe problem wouldn't have been an issue if the GPUs came with what is called a "blower" style fan. A blower style fan can have closely stacked cards since it suck in air from a fan at the front end of a GPU and then "blows" air across the heat sink out the back of the card. My RX 580s had regular fans blowing onto the heat sink. So stacking them not only restricted air flow, but it also physically stopped the fans of the lower most card from spinning. I didn't want the bottom GPU over-heating.
So my solution was two-fold. First, I removed the GPU back-plate on the upper most card. This removal of the back-plate gave me just enough space for the fan on the lower most card to spin freely. Secondly, I added two spacers in between the GPUs so that it gave me just a bit more space to all some more airflow for the bottom most GPU. I used two plasticized grommets I had from some AV cables as the spacers. I had to make extra special care to not make the spacers too wide as I was putting pressure on the PCIe pins on the lower most GPU.
The power problems
Before I could fire up the two GPUs I was already facing a power supply issue. Although the RX 580 reference version can use a 6-pin power connector. These RX 580s from Sapphire used an 8-pin power connector. Guess which type of connectors I had on my 2009 Mac Pro. Yup, 6-pin.
The first thing I did was simply use the 6-pin plugs in the 8-pin port directly. I knew that the RX 580 could run on 150 watts of power. Getting 75 from the PCIe slot and the other 75 from the 6-pin connector. These RX 580s were actually rated to run at 170 watts but I figured I try them out at lower wattage.
Things ran beautifully, at first. My two GPUs ran OpenCL based applications insanely quickly. I was excited to try to use both GPUs in Crossfire mode under Windows 10 so I switched to my Boot Camp install and ran some tests.
It was during the usage of Crossfire that my system would simply shutdown. Either the cards were too starved for power, or the PSU on the 2009 Mac Pro wasn't up to the task of supplying enough power to the GPUs even at the lower wattage.
To test this, I used the Windows 10 AMD program called Wattman to lower the power usage of each GPU by 30% and then I reran my Crossfire test. To my amazement, it worked! However, even though the machine no longer shut down, I was getting very frequent crashes and screen locks. I needed more power to run the GPUs.
The power "solution"
I knew that I needed more power to be delivered to the cards. I tried various cable adapters that I had lying around at first to see if I could sap power from other system components to feed the GPUs. I tried SATA to 8-Pin connectors. I tried 6-pin to 8-pin adapters, I tried multiple SATA to 6-pin into another 2x6-pin to single 8-pin adapters. All of them had either shutdowns, or crashes depending on the power usage setting in Wattman. I still needed more power from the GPU.
But remember I'm cheap. Sure I could have looked for a better power delivery unit for the Mac Pro. But I didn't want to spend the money. In fact, there are 5 1/4" PSUs available to fit in the Super Drive drive bay I could have purchase. But I had spare PSUs of my own. In fact I had a spare PSU that was powering an RX 580 all along. The PSU in the eGPU kit! It was small, quiet, and free for me to use.
Now be warned. If you're an electrician or and electrical engineer, you're going to be wincing and cringing at your screen at some of my following choices. Yes, I'm aware of having different grounds. Yes I'm aware that I'm not regulating for power differences using this method. Frankly I can't be buggered getting things to that level of electrical competence since I wouldn't buy the things I need to get it to that spec anyway. Because I'm cheap. I may pay for it later. But I'm willing to take that chance on a nearly decade old Mac Pro.
Moving on, I removed the PSU from the eGPU. I shorted the two cables I needed to by pass the power button to enable power to the PSU when not plugged into a motherboard. I actually did this with a small adapter that plugs into the wiring harness but there are plenty of online tutorials to do this yourself easily.
I used my Mac Pro's two 6-pin plugs to a single 8-pin plug to power the bottom most GPU.
I then connected the 8-pin plug from the eGPU PSU into the top most GPU.
I removed my Super Drive (since I never use it) and placed my eGPU PSU into the space that housed the Super Drive.
I then fed the power cable for the eGPU PSU through the Super Drive front loading slot to get access to my wall plug.
The 8-pin plug that powers the upper adapter have to cross the Mac Pro's support beam so closing the side panel becomes tricky. I just put the panel on and then lean the side of the Mac Pro onto my desk post to keep is "sealed" without crushing the wiring from the PSU.
I fired everything back up, ran some tests and voila! No more crashes. No more shut downs. The only issue is that the PSU for the secondary card remains on even when the computer goes to sleep. Again, it doesn't bother me in the least but you can find online tutorials on how to make that shutdown with the test of the computer if that's important to you.
Final comments
My 2009 Mac Pro is truly a beast. Both in performance and in it's haggardly setup. Looks aren't so much of a thing for me. It's the capabilities that I look for. In OpenCL compute usage, my 2009 Mac Pro competes with a 2017 iMac Pro. When it comes to gaming under Boot Camp using Crossfire, my dual RX 580 GPUs compete with a single Nvidia 1080. All this performance at a fraction of the cost of the big boys. Totally worth it if you're a cheapskate like me. What about you? How do you deck out more fro less? Let us know in the comments!