Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

The_Interloper

macrumors 6502a
Original poster
Oct 28, 2016
691
1,417
Wondering if someone can help with this as I am tearing my hair out.

I recently was able to acquire an eGPU box effectively for free (a Lenovo Legion BoostStation). Fitted it with a Radeon RX 480 which I know isn't the most powerful or up-to-date card but I got it super-cheap (plus there's nothing else available right now anyway) and just wanted to experiment with it over the internal graphics on my Mac Mini. I have a 2018 Mac Mini i5 6-core 3.0GHz with 32 GB RAM and 512 GB SSD. It comes with the anaemic Intel UHD630 graphics and I'm on Big Sur 11.2.1.

I was expecting to see some kind of miraculous performance improvement in Final Cut Pro or DaVinci Resolve over the internal graphics but this hasn't been the case at all. When exporting a file, usually to H264, the speeds are completely underwhelming. In many cases things are taking longer to export than via Intel QuickSync/T2.

I'm not doing anything terribly graphically intensive – usually just some simple projects exported to either 720p or 1080p MP4 files. Sometimes I will also use HandBrake to compress things further. For example, a 1080p two-hour movie with subtitles hardcoded in DaVinci Resolve using Metal acceleration takes around 28 minutes to export. On my 8Gb M1 MacBook Pro, it's only taking around 16-18 minutes. Handbrake is much worse, with the VideoToolbox H264 option taking roughly double the time to export a file compared to under internal UHD630 QuickSync.

In all cases, the RX 480 is showing minimal processing happening under iStat Menus; it never seems to get above 20% usage while the CPU continues to be maxed out or near to it. I have checked "prefer external GPU" in the properties for all affected applications and also specified the RX 480 in any program preferences.

Am I expecting too much performance from this or is there something I'm doing wrong? I know the new M1 machines are excellent, but I would still expect to see something a bit closer in performance with a full desktop GPU added into the mix. Again, it's proving underwhelming even compared to QuickSync. Appreciate any advice anyone can give!
 
So first off, the primary benefit would not be in export times of codecs supported by acceleration hardware already. For that in fact I would expect no improvement, even degradation.
Or for codecs not supported by other hardware units.

But for active work with effects or complex compositing there should be a benefit. Have you tried any tests to verify the GPU is working with things like Geekbench's GPU test, gfxBench, a game, etc.?

Are you having the monitor plugged directly into the GPU?
Please untick the Prefer eGPU setting from applications that have their own GPU selector like Final Cut and DaVinci. Allow the programs to select the most apt hardware for a given task, so that they may still use QuickSync T2 but also the eGPU.
Set the eGPU in the Preferences within the programs.

If your monitor is connected to the eGPU it should almost never be necessary to tick that checkbox regardless.
 
So first off, the primary benefit would not be in export times of codecs supported by acceleration hardware already. For that in fact I would expect no improvement, even degradation.
Or for codecs not supported by other hardware units.

But for active work with effects or complex compositing there should be a benefit. Have you tried any tests to verify the GPU is working with things like Geekbench's GPU test, gfxBench, a game, etc.?

Are you having the monitor plugged directly into the GPU?
Please untick the Prefer eGPU setting from applications that have their own GPU selector like Final Cut and DaVinci. Allow the programs to select the most apt hardware for a given task, so that they may still use QuickSync T2 but also the eGPU.
Set the eGPU in the Preferences within the programs.

If your monitor is connected to the eGPU it should almost never be necessary to tick that checkbox regardless.
Thanks for this. I've removed the check from DaVinci and get GPU to Auto - no performance change. For FCPX, the checkbox isn't there anyway - it's just managed by the program.

Monitor is a 3440x1440 100Hz ultrawide, connected directly to the eGPU DisplayPort. I've attached screenshots of iStat while exporting in DaVinci and the results of a Unigine Heaven benchmark (medium, 1920x1080).
 

Attachments

  • Screenshot 2021-02-16 at 12.17.28.png
    Screenshot 2021-02-16 at 12.17.28.png
    85.2 KB · Views: 120
  • Screenshot 2021-02-16 at 12.30.13.png
    Screenshot 2021-02-16 at 12.30.13.png
    94.5 KB · Views: 116
Thanks for this. I've removed the check from DaVinci and get GPU to Auto - no performance change. For FCPX, the checkbox isn't there anyway - it's just managed by the program.

Monitor is a 3440x1440 100Hz ultrawide, connected directly to the eGPU DisplayPort. I've attached screenshots of iStat while exporting in DaVinci and the results of a Unigine Heaven benchmark (medium, 1920x1080).

In that case, sorry but I think the performance you're seeing is just what you can get out of this GPU in an eGPU set then. It'd likely perform way better than the Intel iGPU for actively working with complex timelines and compositing, but yeah as for export times dedicated hardware blocks always outperform software based rendering. You can try and check the GPU setting under Final Cut's Playback preferences, but it should already be using the eGPU.

@The_Interloper sorry to break into your post but @casperes1996 is there a way to force the Mini to use the eGPU exclusively?

If your monitor is connected to the eGPU, in most cases it would already be using it.
There's also the checkbox in Get Info, but it should not generally matter when plugged directly into the eGPU.

As for a system-wide setting to *force* it, nope. Each program can force a choice if they want.
 
Ok - thanks @casperes1996 - I do a lot of work with large documents in MS Word including a lot of graphics which makes the fans on the Mini go crazy but even though I have Prefer eGPU in Get Info - it does not use the e GPU according to the GPU tab in Activity Monitor?
 
In that case, sorry but I think the performance you're seeing is just what you can get out of this GPU in an eGPU set then.
That's what I was starting to think but it looks like you've confirmed it. Many thanks for your help.

@njvm - I'm starting to think we simply have to rethink the way macOS works with an eGPU; it's not the same as, say, a Windows PC where it balances out the system and is more tightly integrated overall.
 
Another question for @casperes1996 (sorry to bother you again!) - in System Info I'm only seeing x4 for the PCIe Lane Width. Is this normal/correct? I've seen YouTube videos where people have all 16 lanes showing.
 

Attachments

  • Screenshot 2021-02-16 at 16.28.14.png
    Screenshot 2021-02-16 at 16.28.14.png
    20.5 KB · Views: 105
Another question for @casperes1996 (sorry to bother you again!) - in System Info I'm only seeing x4 for the PCIe Lane Width. Is this normal/correct? I've seen YouTube videos where people have all 16 lanes showing.

To be honest; I don't know. Thunderbolt itself is only 4 lanes of PCIe effectively so it seems sensible for it to report x4. However, it could also report it based on the PCIe chassis/box it's connected to externally, which could have an x16 link itself even though Thunderbolt itself would only carry a connection of ~x4
 
  • Like
Reactions: The_Interloper
You got a eGPU, but in the end you are only comparing the GPU hardware encoder performance. The truth is that Intel quick sync is better, so if the hardware encoder is the bottleneck (because your timeline is not gpu heavy, you got almost no filter and the gpu has got nothing to do) it will be faster to just use the built-in Intel gpu.
 
  • Like
Reactions: The_Interloper
You got a eGPU, but in the end you are only comparing the GPU hardware encoder performance. The truth is that Intel quick sync is better, so if the hardware encoder is the bottleneck (because your timeline is not gpu heavy, you got almost no filter and the gpu has got nothing to do) it will be faster to just use the built-in Intel gpu.
That makes sense, thanks.
 
Another question for @casperes1996 (sorry to bother you again!) - in System Info I'm only seeing x4 for the PCIe Lane Width. Is this normal/correct? I've seen YouTube videos where people have all 16 lanes showing.
Thunderbolt is usually x4. If a GPU connected via Thunderbolt is showing x16 then it means there's a PCIe switch between the GPU and the Thunderbolt controller - the switch maybe a part of the GPU (I don't know if such GPUs exist - the Vega II Duo for the MacPro7,1 has a separate switch with two separate GPUs connected to it - but that's not what I'm talking about).

System Information.app doesn't show PCIe hierarchy so it doesn't show switches. You need ioreg or pciutils do show that info.
https://gist.github.com/joevt/e3cd4ff08aae06279134969c98ca3ab7
 
  • Like
Reactions: The_Interloper
Okay, just to add a footnote to this...

I ran the Unigine Valley benchmark (1920x1080 full screen, Medium, 2x AA) on both my Mac Mini with RX480 in an eGPU and with the card in my Ryzen desktop PC. Specs and benchmarks (FPS / Score):

Mac Mini 2018, i5 3.0GHz 6-core, 32Gb RAM, XFX Radeon RX480 4Gb in TB3 eGPU:
57.9 / 2423

Ryzen 7 1700 3.7GHz 8-core, 32Gb RAM, XFX Radeon RX480 4Gb in PCIe slot:
96.8 / 4048

That means the same card drops 41% performance in the eGPU. Yikes. :oops:

Some other benchmarks with same Valley settings, just for comparison purposes:

Mac Mini Intel UHD630 iGPU: 12.2 / 511
MacBook Pro 8Gb M1: 47.7 /1995
Above PC with Nvidia 1050Ti 4Gb: 56.8 / 2377

So the M1 Macs have a performance approaching the level of a 1050Ti and the Intel graphics are, as we all know, trash.
 
Okay, just to add a footnote to this...

I ran the Unigine Valley benchmark (1920x1080 full screen, Medium, 2x AA) on both my Mac Mini with RX480 in an eGPU and with the card in my Ryzen desktop PC. Specs and benchmarks (FPS / Score):

Mac Mini 2018, i5 3.0GHz 6-core, 32Gb RAM, XFX Radeon RX480 4Gb in TB3 eGPU:
57.9 / 2423

Ryzen 7 1700 3.7GHz 8-core, 32Gb RAM, XFX Radeon RX480 4Gb in PCIe slot:
96.8 / 4048

That means the same card drops 41% performance in the eGPU. Yikes. :oops:

Some other benchmarks with same Valley settings, just for comparison purposes:

Mac Mini Intel UHD630 iGPU: 12.2 / 511
MacBook Pro 8Gb M1: 47.7 /1995
Above PC with Nvidia 1050Ti 4Gb: 56.8 / 2377

So the M1 Macs have a performance approaching the level of a 1050Ti and the Intel graphics are, as we all know, trash.
Were the Ryzen and Mac using the same OS?
 
Another question for @casperes1996 (sorry to bother you again!) - in System Info I'm only seeing x4 for the PCIe Lane Width. Is this normal/correct? I've seen YouTube videos where people have all 16 lanes showing.

Youtubers are often not knowledgeable.

16 lane slot is the mechanical connector. 4 lanes is the electrical connection.
 
An eGPU can help some apps: DaVinci Resolve and modern games are usually much improved. FCP doesn't usually see a lot of improvement because all the optimisation has been for standard Macs. But yes, as you've found, there is a bottleneck due to Thunderbolt too.
 
Unigine Valley is an old OpenGL app. Recent Metal apps will have much better performance.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.