MacInTouch Amazon link...
Channels
Apple, Products, News

Ric Ford

MacInTouch
Ars Technica said:
Are external GPUs for Macs viable in macOS 10.13.4? We tested to find out
Performance doesn’t disappoint, but lack of strong software support does.

When Apple released macOS High Sierra 10.13.4 on March 29, fully supported external graphics-card functionality was one of the flagship features.

Most Macs ship with discrete or integrated GPUs—power-saving cousins to the graphics cards found in desktop PCs—that emphasize efficient power and heat management as much as they do performance. External graphics cards (eGPUs) allow users to connect those powerful desktop graphics cards to their computers via the Thunderbolt

That could solve many of the frustrations some users have with the Mac platform, like the lack of an upgrade path for professional-use machines that depend on graphics power and lackluster gaming performance in the latest games.

At Apple's Worldwide Developers Conference (WWDC) last year (and when the company unveiled the iMac Pro in December), it claimed that eGPUs would be a good way to add multiple GPUs for demanding work for which just one is not sufficient or to upgrade performance as the iMac Pro's included GPU ages.

When we talked with Survios, a studio that has developed VR software for the Mac platform, we learned that slow progress in the MacBook Pro and standard iMac integrated and discrete GPUs is holding back most Macs from supporting VR. Survios only supports the iMac Pro's built-in GPU.

Mac gamers have long dealt with GPUs that don't keep the pace with demands from the latest PC games, so eGPU enthusiast communities have popped up around the Web in places like the MacRumors forums and eGPU.io. There's pent-up demand for better graphics performance on Macs, and eGPUs offer some hope.

And Apple and Intel's Thunderbolt 3 interface (found in the highest-end Macs from 2016 and 2017, so far) offers theoretical speeds of up to 40Gbps. That's a big improvement over the previous interface, and it's arguably finally fast enough to finally make eGPUs viable without dramatic performance disadvantages compared to traditional PCI-e interfaces.

All that is to say that the time is ripe for eGPUs to come to the Mac. With the new official support in macOS 10.13.4, Apple is finally helping consumers try eGPUs out.

We tested an eGPU enclosure with a Thunderbolt 3-equipped MacBook Pro, and found that, in most applications, performance didn't disappoint. Unfortunately, we also found limitations and software support inconsistencies that prevent the Mac eGPU dream from being fully realized at this time.
 


Ric Ford

MacInTouch
Here's some good background from last year about external Thunderbolt graphics systems ("eGPU", "eGFX"), noting performance penalties and limitations from Thunderbolt, differences beween AMD and Nvidia systems, benchmark results etc. (Thanks to TKS Ose for the link. :-)
As noted previously, I'm waiting for delivery of a Sonnet eGFX Breakaway Box 350 Bundle (with Sapphire Pulse Radeon RX 580 8GB) for testing with the Mac Mini.
OK, so I installed the Sapphire Pulse Radeon RX 580 8GB card inside the Sonnet eGFX Breakaway Box and hooked it up via the very-short Thunderbolt 3 cable to the Mac Mini. (It's actually still pretty quiet.) Here are the Geekbench Compute results:
AMD Radeon RX 580 Metal: 126,328
AMD Radeon RX 580 OpenCL: 121,572
Geekbench 4 results:
...
Compute OpenCL:
Intel Iris Plus Graphics 655​
38126
(22802 for Mac Mini)

Compute Metal:
Intel Iris Plus Graphics 655​
39256
(24289 for Mac Mini)

And let's not forget the Sonnet eGFX Breakaway Box 350 Bundle:

Compute OpenCL:
MacBook Pro (13-inch Mid 2018)​
118,674
(121,572 hooked into Mac Mini)

Compute Metal:
MacBook Pro (13-inch Mid 2018)​
125,556
(126,328 hooked into Mac Mini)
And here's Apple's support document on external GPUs (eGPU/eGFX), which includes supported hardware lists, configuration notes, and more:
Apple said:
Use an external graphics processor with your Mac
... An eGPU lets you do all this on your Mac:
  • Accelerate apps that use Metal, OpenGL, and OpenCL
  • Connect additional external monitors and displays
  • Use virtual reality headsets plugged into the eGPU
  • Charge your MacBook Pro while using the eGPU
  • Use an eGPU with your MacBook Pro while its built-in display is closed
  • Connect an eGPU while a user is logged in
  • Connect more than one eGPU using the multiple Thunderbolt 3 (USB-C) ports on your Mac
  • Use the menu bar item to safely disconnect the eGPU
  • View the activity levels of built-in and external GPUs (Open Activity Monitor, then choose Window > GPU History.)
eGPU support in macOS High Sierra 10.13.4 and later is designed to accelerate Metal, OpenGL, and OpenCL apps that benefit from a powerful eGPU. Not all apps support eGPU acceleration; check with the app's developer to learn more.
In general, an eGPU can accelerate performance in these types of apps:
  • Pro apps designed to utilize multiple GPUs
  • 3D games, when an external monitor is attached directly to the eGPU
  • VR apps, when the VR headset is attached directly to the eGPU
  • Pro apps and 3D games that accelerate the built-in display of an iMac or MacBook Pro (This capability must be enabled by the app's developer.)
...
 


In case you haven't seen it, egpu.io is a very active community for external GPU users, including Mac users.

One of the sticking points with Mac eGPUs is that Apple only support AMD cards and Thunderbolt 3. If you want to use Nvidia cards (which are required to use the Iray renderer used by some popular graphics software, such as DAZ 3D's DAZ|Studio), or your Mac uses an older Thunderbolt standard, there's no official support. Contributors on eGPU.io offer various software fixes that address these limitations, so that it's theoretically possible to use an Nvidia-based eGPU and/or an older Mac. These fixes are -- not to put too fine a point on it -- hacks, and have limitations and known bugs. Nevertheless, some people report good results using them and their maintainers seem very active and responsive.

I'd really like to see Apple support Nvidia cards officially, but I suspect that it isn't going to happen. There's no real incentive for them to do a lot of extra work just to please a small number of users, and there may even be an exclusivity clause in whatever deal they signed with AMD.
 


Ric Ford

MacInTouch
Thunderbolt 3/USB-C cables are very tricky in their modes and length limitations, but this web page helps clarify things:
I eventually managed to get the Sonnet eGFX Breakaway Box hooked up via HDMI - I had to disconnect DisplayPort to get HDMI working at one point, and I had some glitches getting HDMI synced up but eventually hit 7680 x 4320, which is 8K! (switching between two different cables).
I bought several Thunderbolt 3 cables for testing, including:
and used them to connect the 2018 MacBook Pro to the Sonnet Breakaway Box/Radeon RX 580.

Apple's System Information reported 20Gbps with the 20Gbps cable and reported 40Gbps for the StarTech 40Gbps cable.

I was delighted to see that everything worked with the long, 40Gbps cable (which must be an active cable design, different from the typical passive 0.5-meter Thunderbolt 3 cable).

And I ran Geekbench Compute tests to see if there were differences caused by the 20Gbps vs. 40Gbps speeds.

Geekbench 4 Compute
Sonnet eGFX Breakaway Box
Radeon RX 580
OpenCL / Metal

20Gps, 1-meter cable
123625 / 121352

40Gbps, 2-meter cable
124877 / 127244

The differences were less dramatic than I expected, and, at 20Gbps, the slower cable is equivalent to Thunderbolt 2, raising the question of viability of an eGPU with older, Thunderbolt 2-equipped Macs.
 


Ric Ford

MacInTouch
I just tried hooking up the external GPU (eGPU) via Apple's Thunderbolt 3-Thunderbolt 2 adapter to a 2015 MacBook Pro, booting macOS Mojave.

The eGPU was identified by GeekBench, but GeekBench would not let me select it for testing.

The eGPU-connected display didn't show up anywhere.

The eGPU menubar icon was missing, but when I disconnected the Thunderbolt cable, I got an error that an eGPU had been disconnected without being first unmounted.
 


Ric Ford

MacInTouch
I just tried hooking up the external GPU (eGPU) via Apple's Thunderbolt 3-Thunderbolt 2 adapter to a 2015 MacBook Pro, booting macOS Mojave....
Thanks to George for letting me know about this interesting hack... (though I haven't tried it out):
Mayank Kumar said:
purge-wrangler.sh
purge-wrangler.sh enables unsupported external GPU configurations on macOS for almost all Macs. Before proceeding, please read through this entire document to familiarize yourself with the script, the community, and the resources available you in case you find that you need help.
 


Thunderbolt 2 eGPU solutions existed before the official Thunderbolt 3 rollout. However, they were not blessed by Intel and hence were never official. The best you could get was a solution that worked as long as you started and shut the computer down while the Thunderbolt 2 cable was attached. "Hot unplugging" would lead to kernel panics.

The observed speeds also make sense in the context that every external PCIe interface I have seen to date is limited to x4 performance. Most graphics cards will still function, and moreover deliver a massive boost, but there is a bottleneck to contend with. Testing has confirmed that also.

Which brings me to an entirely different topic, which is how disastrously most docks, hubs, etc. drop on their noses the minute you start running massive data streams through them. Just the other day I had a external RAID grinding along at 50MB/s transfer when it shared a dock with a different device. Drop the dock (i.e. plug the RAID directly into the Type-C port with a USB 3 adapter), and the speed pops up to 150MB/s. (The dock claims it's good for USB 3.1 on every USB port, by the way.)

The folk who review docks don't seem to consider how well a dock can handle multiple streams of flow. I've found that I have had to isolate the various storage devices to individual computer ports in order to get promised performances.
 


Thunderbolt 2 eGPU solutions existed before the official Thunderbolt 3 rollout. However, they were not blessed by Intel and hence were never official.
At its heart, Thunderbolt is an external PCIe bus. So, with an expansion chassis, you can attach any PCIe card you like via any version of Thunderbolt (assuming you have a device driver for it, of course).

People have been using this approach to attach video cards for quite some time. A card that is compatible with a Mac Pro tower (via its PCIe slots) should "just work" via a Thunderbolt PCIe enclosure using the same driver software.

The whole "eGPU" concept has never really seemed like anything that special to me. It's simple Apple/Intel giving their blessing to a concept that people were already implementing. Apple did make it a bit more convenient (for example, by creating a menu-bar icon to allow hot-disconnect of an eGPU) but that's UI design not new technology.
The observed speeds also make sense in the context that every external PCIe interface I have seen to date is limited to x4 performance.
I think that's all Thunderbolt can deliver. We do know that Intel's three different Thunderbolt interface chips all attach using 2 or 4 lanes of PCIe.
... how disastrously most docks, hubs, etc. drop on their noses the minute you start running massive data streams through them.
Again, this shouldn't be surprising, given the nature of Thunderbolt. It's not a raw 40Gbit/s pipe. There are discrete streams of data (PCIe lanes, USB, DisplayPort). When one stream is used, its bandwidth is taken away from devices attached to the others.

For example, if it is delivering 4 lanes of PCIe 3.0 (8Gbit/s each) and the dock's internal bus architecture is breaking that out into four internal PCIe interfaces to drive four devices (e.g. Ethernet, USB3, SATA and audio), then no single device is going to be able to get more than 8Gbit/s - so you won't be able to max-out your USB3 ports.

If, on the other hand, it wires those 4 lanes to a single x4 bus with some kind of multi-function interface (sort of like the multi-I/O cards that you used to be able to buy for computers with slots), then it might be possible to get more bandwidth for some devices if others are not in use at the same time.

And, of course, if you're using the DisplayPort channels, then that is going to take bandwidth away from the PCIe channels.

Of course, there are also cases of cheap design where the ports simply can't deliver advertised performance, which seems to be your case - where the drive array is being clipped to 400Mbit/s (USB 2.0 speeds) for some reason.
 


Ric Ford

MacInTouch
Apple updated its support article about eGPU options last week:
Apple Support said:
Use an external graphics processor with your Mac

... Recommended graphics cards, along with chassis that can power them sufficiently, are listed below.

Thunderbolt 3 all-in-one eGPU products
These products contain a powerful built-in GPU and supply sufficient power to charge your MacBook Pro.
Recommended Thunderbolt 3 all-in-one eGPUs:
  • Blackmagic eGPU and Blackmagic eGPU Pro
  • Gigabyte RX 580 Gaming Box
  • Sonnet Radeon RX 570 eGFX Breakaway Puck
  • Sonnet Radeon RX 560 eGFX Breakaway Puck
AMD Radeon RX 470, RX 480, RX 570, RX 580, and Radeon Pro WX 7100
These graphics cards are based on the AMD Polaris architecture. Recommended graphics cards include the Sapphire Pulse series and the AMD WX series.
Recommended Thunderbolt 3 chassis for these graphics cards:
  • OWC Mercury Helios FX
  • PowerColor Devil Box
  • Sapphire Gear Box
  • Sonnet eGFX Breakaway Box 350W
  • Sonnet eGFX Breakaway Box 550W
  • Sonnet eGFX Breakaway Box 650W
  • Razor Core X
  • PowerColor Game Station
  • HP Omen
  • Akitio Node
AMD Radeon RX Vega 56
These graphics cards are based on the AMD Vega 56 architecture. Recommended graphics cards include the Sapphire Vega 56 and XFX Vega 56.
Recommended Thunderbolt 3 chassis for these graphics cards:
  • OWC Mercury Helios FX
  • PowerColor Devil Box
  • Sonnet eGFX Breakaway Box 550W
  • Sonnet eGFX Breakaway Box 650W
  • Razor Core X
  • PowerColor Game Station
AMD Radeon RX Vega 64, Vega Frontier Edition Air, and Radeon Pro WX 9100
These graphics cards are based on the AMD Vega 64 architecture. Recommended graphics cards include the Sapphire Vega 64, XFX Vega 64, AMD Frontier Edition air-cooled, and AMD Radeon Pro WX 9100.
Recommended Thunderbolt 3 chassis for these graphics cards:
  • Sonnet eGFX Breakaway Box 650W
  • Razor Core X
 


Ric Ford

MacInTouch
In addition to Apple's elimination of support for the OpenGL standard in favor of Apple's proprietary "Metal" framework, it's losing support for Nvidia graphics.
Gizmodo said:
Apple and Nvidia Are Over
The last vestiges of Nvidia and Apple’s long-term relationship are ending shortly. On Monday Nvidia published the release notes for the next update of its CUDA platform and noted that “CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS for developing and running CUDA applications.”

That means all future versions of CUDA will lack support for Apple devices, which could leave a decent share of the pro community, as well as the hackintosh community, without support for the most popular discrete GPUs being made at the moment.
 


Updated information regarding new AMD video cards being supported for use in eGPU enclosures. Am sure there will be good deals to be had the next few weeks.
Apple Support said:
Use an external graphics processor with your Mac
AMD Radeon RX 5700, 5700 XT, and 5700 XT 50th Anniversary
If you've installed macOS Catalina 10.15.1 or later, you can use these graphics cards that are based on the AMD Navi RDNA architecture. Recommended graphics cards include the AMD Radeon RX 5700, AMD Radeon RX 5700 XT, and AMD Radeon RX 5700 XT 50th Anniversary.

Recommended Thunderbolt 3 chassis for these graphics cards:
  • Sonnet eGFX Breakaway Box 650W
  • Razer Core X
 


In addition to Apple's elimination of support for the OpenGL standard in favor of Apple's proprietary "Metal" framework, it's losing support for Nvidia graphics....
Given Nvidia is, at this point, two macOS versions behind on basic driver support, this shouldn't be too surprising. They had already stopped. They just hadn't formalized talking about it.

Nvidia's CUDA is just as proprietary as Metal. It just has a different owner, responsible for its appearance or non-appearance somewhere. Metal is mostly portable over multiple hardware implementations. CUDA is mostly portable over several operating systems.

This Nvidia and Apple outcome appears to be a battle of the Goliath APIs — one (or both) sides couldn't come to an agreement. Both sides have bet huge, multi-million dollar sums on their proprietary interfaces. And it probably doesn't help that they are exactly mismatched on portability emphasis.

The codename for Khronos Vulkan before it got its official name was glNext. OpenGL is a standard, but it is also pragmatically "dead in the water". Apple tends to do better with standards that are a "shared path to the future", as opposed to "agreed to, so this will never change", especially when it is something critically intertwined with their core libraries, which evolve over time (e.g., the core Unix utilities generally get a 'fixed in time' pass, because they're not a critical foundation of the [Apple] core).

What Apple should do is leave a small interface for non-full-kernel-space drivers to plug in a higher-level graphics stack (i.e., OpenGL on top of Metal, Vulkan on top of Metal, etc.). Apple handed off XQuartz (X Windows), and that got more years of run room (not sure if that will make it once OpenGL goes down). For the size and bulk of code piled on top of OpenGL, the time window they appear to be giving is relatively short. Apple is in the process of changing the driver API, so perhaps they will open up some window for folks who want longer "fixed in stone" support via some third party.
 


What Apple should do is leave a small interface for non-full-kernel-space drivers to plug in a higher-level graphics stack (i.e., OpenGL on top of Metal, Vulkan on top of Metal, etc.).
FYI, Vulkan on Metal already exists. It’s called MoltenVK, and I’m running it every time I play my game, Dota 2. It runs much nicer and smoother than the OpenGL implementation of Dota 2.
 


Nvidia's CUDA is just as proprietary as Metal. It just has a different owner, responsible for its appearance or non-appearance somewhere. Metal is mostly portable over multiple hardware implementations. CUDA is mostly portable over several operating systems.
While this is all correct, it's not a valid comparison. OpenGL, DirectX, and Metal are graphics APIs; DirectX is proprietary to Windows, Metal is proprietary to Apple, and OpenGL is, well, open. It's up to graphics card vendors to write the drivers to support specific standards; with regards to Microsoft and Apple, this will generally require some co-operation from the OS vendor.

CUDA is a computational API, designed to allow developers to use the parallel processors on an Nvidia card as general purpose mathematical processors, specifically for problems that lend themselves to massive parallelization. In fact the cards Nvidia sells specifically for this market, such as their Tesla series, don't even have video outputs.

There's a surprisingly large group of CUDA users on Apple, using either "cheese grater" Mac Pros from 2007-2012, or Hackintoshes. CUDA has a huge presence in scientific computing. I wish Apple and Nvidia would put the customer ahead of their bickering, but if there's one thing Tim Cook has shown over the years, it's that what's best for the customer isn't even on Apple's radar any more.
 


Amazon disclaimer:
As an Amazon Associate I earn from qualifying purchases.

Latest posts