2018 MACBOOK PRO + EGPU = FASTER TRANSCODING?

In 2016 the MacBook Pro got updated with a new design and beefier specs, but the specs were never really pro. Finally in 2018 Apple issued an update that finally ticked the boxes for a worthy upgrade.
 
6-Core CPU, check.
32GB of RAM, check.
Decent Graphics Card, check.
 
I jumped at the chance to refresh my Data Management Kit with an up to date system. But stock standard is never enough for me, with macOS now supporting eGPUs it got me thinking that there is an even better way to do things. I had a Nvidia 980Ti sitting around and decided to fit it to an Akitio Node Pro eGPU Enclosure. Time to put the new rig through some tests!

THE QUESTION

What I am gunning for with these tests is to see if it's viable to use the Internal GPU which is an AMD Radeon Pro 560X and the eGPU Nvidia 980Ti simultaneously in Resolve Studio to get faster transcode speeds from the 2018 MacBook Pro.

If possible, it would allow for a really portable transcoding solution on-set. You'd have a laptop which would produce modest transcode results, then you could easily plug up your eGPU to take those speeds to the next level. The plan would be to use the Internal GPU for transcoding when you didn't have Mains Power, if you did have Mains Power you'd be able to use both the Internal GPU and eGPU to power through the transcodes at record speed.

TEST PROCEDURE

For this test I used a top of the line 2018 MacBook Pro with the following specs:

CPU: 2.9GHz Intel i9
GPU: AMD Radeon Pro 560X / Intel UHD Graphics 630
RAM: 32GB
SSD: 1TB PCIe

The eGPU was an Akitio Node Pro fitted with a Gigabyte GeForce GTX 980Ti connected via Thunderbolt 3 to the MacBook Pro. To make the 980Ti compatible with macOS I used the macOS-eGPU.sh script.

Transcodes were conducted with DaVinci Resolve 15 Beta 6 for Single GPU Tests and DaVinci Resolve Studio 15 Beta 7 for Dual GPU Tests.

Transcodes were working with these input/output formats:
Source Format: 4K UHD 3840x2160 ARRIRAW from an Alexa LF
Output Format: HD 1920x1080 ProRes 422 HQ with a LogC to REC709 LUT Applied

Footage was courtesy of ARRI from their sample footage collection. The exact clips used from the collection were B002C006 and B003C001. These clips were duplicated 3 Times in the Resolve Timeline to create a total length of source material to be processed of 2:14:09 @ 24fps, aka 2 Mins 14 Secs 9 Frames. ARRIRAW was chosen for these tests as it frequently requires transcoding and is heavily influenced by the performance of a Graphics Card.

Both source footage and exported footage was reading/writing from the MacBook Pro's Internal PCIe SSD which delivers speeds of over 2000MB/s thus negating hard disk speed as a limiting factor in the transcode pipeline.

All tests were conducted in identical conditions. The only settings changed were GPU Processing Mode and which GPU was being used. Settings can be tweaked in Resolve's Preferences and will come into effect once you reboot the software.

TEST RESULTS

This is the raw data from my tests:

This is a comparison of the Transcode FPS between different GPU Modes and GPUs:

This is a comparison of the Transcode Time in minutes between different GPU Modes and GPUs:

When you transcode ARRIRAW through DaVinci Resolve using the Metal GPU Mode with a Nvidia GPU you will get corrupt looking images as explained in a previous blog post. These corrupt looking colour shifts not only display while transcoding in Resolve but they also come through in the exported file. While I did test Metal for speed with the 980Ti, the product of the transcode is unusable and thus the Metal results should be ignored. Transcodes that are effected by GPU Corruption look like this when running in Resolve:

These results were much more interesting then anticipated. ARRIRAW is a GPU dependent video codec so it's no surprise that a beefier GPU performed better. What is interesting is that the CUDA API is significantly faster at processing ARRIRAW than the OpenCL API. Even in the instance where I was using Dual GPUs to process the footage in OpenCL the Single Nvidia GPU using CUDA was still faster. 36fps vs. 54fps. It's a big difference, especially when processing massive amounts of footage. If you could complete the exact same task in 1:02 Mins or 1:32 Mins what would you do?

Worth noting is that each and every time the transcode speed was capped out by the GPU Processor. Not the GPU Memory and not the CPU. I used iStat Menus to verify this which you can see below highlighted in red:

 The lesson to be learnt here is that many people just see the number when referencing the GPU. '6GB GPU, wow, that must be fast'. Well yes, it is fast but that number isn't the be all and end all for producing faster results, particulary while transcoding.

CONCLUSION

The hypothesis was to see if the addition of a eGPU could drastically speed up transcode times while having a small footprint on set. I'd say the answer is yes but the results didn't appear in the way that was expected.

Without a eGPU you can transcode ARRIRAW on the MacBook Pro at 19-20fps depending if you use OpenCL or Metal. Once you plug in a eGPU fitted with a 980Ti you can transcode using CUDA at 54fps which is 2.7x faster. A worthy improvement in my book. Going forward I'll have the eGPU in my kit as a portable option for boosting transcode performance.

I'll also be sure to use the CUDA API where available for transcoding ARRIRAW as it has proven superior for crunching the 1's and 0's when working with ARRI's flagship recording codec.

The eGPU is a flexible tool. You can fit almost any Graphics Card in a eGPU, I just happened to have a spare Nvidia 980Ti around and thus it became my weapon of choice. If I were selecting a specific Graphics Card for the purposes of transcoding with an Apple Computer there are some other attractive options that work natively with macOS that you should consider taking a look into. You could use the Blackmagic eGPU which comes pre-fitted with a Radeon Pro 580. Alternatively you could use the Akitio Node Pro eGPU Enclosure that I am using but fit it with the same GPU that is used in an iMac Pro, the Vega 56 or Vega 64. These Graphics Cards have official support from Apple in macOS and will likely produce different results to those documented above, particularly with Dual Internal GPU and eGPU Setups using the OpenCL and Metal APIs. If you've got an eGPU running any of these GPU Setups we'd love to hear from you in the comments below.

I hope you've found this useful. Questions, comments, want help? Touch base in the comments section below!


6 comments

  • Hi Agus,

    No problem, I’m glad to you have found it helpful. Definitely, hardware and software are your tools a a DIT / Data Wrangler, it certainly pays to not compromise on your tools.

    How did everything end up going with the job? Did you end up doing it? Glad to hear that your keen on further education.

    In terms of doing transfers and transcodes in unison, it all depends on your drive speed and where the system is reading the source footage from for transcoding. Often you’ll get transcoding bottlenecks when using spinning disk drives with a really high end system (16 Core CPU, Dual GPU). I never use the Camera Mag as the source for my transcodes, usually it’ll be an Internal SSD that acts as an intermediary for transcoding. To fully understand this it requires a more in-depth explanation than I can give in a a paragraph.

    The MacBook Pro used in this post provided surprisingly decent results as is, though I’d never rely on it solely for lots of transcoding on-set, I’d supplement it with an eGPU or use my bigger system. With that being said, the newest MacBook pro that has a 2.4GHZ 8 Core CPU and Vega 20 GPU would be a very solid portable transcoding machine when you need absolute portability.

    If I were to build a system now from scratch, I’d look at the iMac Pro or the soon to be released Mac Pro. If you wanted to go a MacBook Pro setup I’d go the current top end MacBook Pro and pair it with an eGPU (AMD Radeon Pro Vega II).

    Please let me know if you have any more questions!

    Thanks!

    Regards
    Brad

    Bradley Andrew
  • Hi Brad! Thank you for your reply! You have been very clear and generous.

    I think I fully realize now that I shouldn’t do any compromises regarding hardware and software.

    My MacBook Pro is the 15¨ inch, so I think It would be ok for the transfers, but not for the Dailies : (

    The Job Offer has not been yet confirmed by the production, but, if it does, I would certainly love to arrange a private lesson.
    And if It doesn’t, I would be certainly interested in the future course, since I would like to add this skill to my toolbox.

    Regarding the question about doing transfers and transcodings at the same time… that came to my mind since I saw that Silverstack Lab promotes that it can do both at the same time, with a software analysis that pauses the transcodes when necessary. But maybe that feature is for more powerfull computers than mine, I guess?

    Would you say that the MacBook Pro 2018 that you used for the test that you did in this post (CPU: 2.9GHz Intel i9
    GPU: AMD Radeon Pro 560X / Intel UHD Graphics 630 RAM: 32GB SSD: 1TB PCIe) is it fairly ok to do Transfer/Dailies on set till this date? Or would you say that maybe It will not keep up to the actual expectations of the film industry? Could you recommend me some model in particular that can handle the job properly, to keep in mind for my next update?

    Again, thank you very much for your time and dedication, it has been very insightful.

    Best regards!

    Agus

    Agus
  • Hi Agus,

    Thanks for reaching out! I’m glad you are enjoying what I have been putting out. I’ll do my best to answer your questions below:

    1. I opt to not transfer data and transcode at the same time, there are certain instances where I bend this rule but as a standard process it is safest if your machine is doing one thing at a time. Is your 2016 MacBook Pro 15” or 13”? The 13” doesn’t have full bandwidth in all TB3 Ports so it wouldn’t be great connection wise. The 15” should be adequate as you’ll have 4x Full Bandwidth TB3 Ports to work with. You’ll just need to make sure you know what equipment (card readers, drives) you’ll be using so you can configure your setup in such a way that data flow is spread over your different connections. In terms of producing dailies, I’d say no. ARRIRAW to ProRes or Avid Dailies is very GPU intensive, RED to ProRes or Avid Dailies is very CPU intensive. Dailies should be churned out fast and I don’t believe a standalone laptop can keep up with that kind of processing. You can look into an eGPU or perhaps renting an iMac Pro for the job.

    2. Most editors prefer to have full gate for their editorial transcodes. Dailies for directors / producers, it’s likely they’ll want their dailies cropped to the shooting aspect ratio. In both instances the LUT chosen by the DP will be applied. All of this can vary immensely so I’d advise working closely with the team (DP, Director, Editor, Post Supervisor) so that you can understand their needs and expectations and design a workflow that meets that effectively and efficiently. It sounds like you need a solid walkthrough of the entire transcoding process. I am looking at building an educational platform for DIT / Data Work soon so I’ll be sure to keep you posted. The other alternative is a private lesson via web conference which we can certainly arrange.

    3. Most bigger jobs will use Silverstack for their data management as it builds a great catalogue of all the footage for quick and easy reference later on. This can be purchased on a job by job basis and can be tested via the 10 Day Free Trial they offer. Other alternatives are Hedge and Shotput Pro as you mention. Whichever software you choose you should have the latest software to ensure it is compatible with the latest camera updates. If cost is a problem in regards to software, it’s something you should speak with production about as it’s likely something they can cover to ensure you have the appropriate tools for the job.

    Your desire to do a good job is important. Hold onto that. Don’t compromise and do everything properly and you won’t mess anything up. Part of the process of not compromising is making sure that your skills, knowledge and execution is top notch, please keep that in mind.

    Bradley Andrew
  • Hi Brad, Thank you for your excelent posts. (I ended up in your page after seeing yout tutorial about data wrangling on youtube)
    I´m an indie editor and filmmaker, but I don´t have much experience into large productions, and now I was offered a job as a data wrangler, and I´m doing my searching about it cause I don´t want to mess it up…

    If you would be so kind, I would like to ask you some questions…

    1) I have a MacBook Pro Late 2016. 2GB Graphic card, 256 GB SSD, and 16GB Ram… do you think I could do a decent job in set for backup the cards and make ProRes Dailies from Red or Arri footage with this machine? And if I can, should I do Copies and Daillies at the same time, or would it be to much stress for the computer?

    2) On the other hand, it´s probably a dumb question, but, how do you Export/transcode Dailies for editorial, when you have so many different resolutions and aspect ratios with Red and ARRI? What resolution should be used for the ProRes Dailies? Is it always the same one? And, do you have to leave black bars or letterbox in some cases? I´m a little confuse about that.

    3) Currently, I got a copy of ShotPutPro 5 for testing, and seems to work fine. Do you think I can still use that version, or would it be important to get the current one? And regarding the transcoding, so far I only tested succesfully importing the footage with DavinciResolve, and making ProRes there, and so far it seems to work Ok.
    Would you say that that could be a decent/acceptable professional workflow? I don´t have to much budget for software at the moment, but I would not like to mess up something for that either… I also have the adobe suite available, if that could help the workflow better in any way…

    Sorry for the long post

    Thank you so much for your time in advance!

    Cheers

    Agus

    Agus
  • Hi Werner,

    How are you going? Thanks for reaching out!

    That’s interesting that you aren’t getting those speeds. How are you testing your GPU Setup? Can you be certain that Resolve is using your eGPU? If you go Apple → About This Mac → System Report → Graphics/Displays you should see your eGPU listed there. You’ll also see the Node Pro listed under the ‘Thunderbolt’ Section in System Report. This is how I’d determine if it’s connected to your laptop correctly.

    My install procedure was to using this script: https://github.com/learex/macOS-eGPU/tree/master#macos-egpush
    Make sure your SIP is disabled then run this, I found it to be fairly foolproof. It checks that everything is all good, installs CUDA and the Nvidia Drivers. They also have quite good troubleshooting steps should you encounter any issues.

    If your eGPU is in fact installed correctly then I’d say the lack of speeds similar to my tests would be due to GPU Processing Mode within Resolve. It may also differ depending what codec you are transcoding from and to.

    Hopefully that helps to get you going!

    Kind Regards
    Brad

    Bradley Andrew

LEAVE A COMMENT