Jump to content

iMac19,1(Headless) vs iMacPro1,1 Video Encoding Performance Test.


13 posts in this topic

Recommended Posts

I am not sure if this is the right place to post this or even allowed. If not, please remove the post.

 

So I have done the following tests to see which SMBIOS configuration yields the best result in terms of export time in FCPX with minimal editing or not at all.  

 

Tested Hardware: i7-9700K, RX 580

Video clip used: Sony Camping in Nature

 

Project Settings 1
Video: 1080p HD
Frame Rate: 23.98p
Rendering: Apple ProRes 422

 

Export Settings 1
Export Format: Video and Audio
Video Codec: H264
Resolution: 1920 x 1080

 

Export Settings 2
Export Format: Apple Devices
Video Codec: HEVC 8-bit
Resolution: 1920 x 1080

 

 Results

Spoiler

image.thumb.png.ac8d5fb424954a8abcc96599ec057671.png

 

 

Project Settings 2
Video: 4K
Frame Rate: 60p
Rendering: Apple ProRes 422

 

Export Settings 
Export Format: Video and Audio
Video Codec: H264
Resolution: 3840 x 2160

 

Result

Spoiler

image.thumb.png.1d6e2dfd937b98a17f279e42fb8d75ae.png

 

From the result above, iMac19,1 Headless setup yields the better result as the export time almost doubles with iMacPro1,1 configuration. However, I am also interested to know about other users experience and the result. Especially the newer AMD GPUs such as 5xxx/6xxx series that may have changed the outcome greatly if tested under SMBIOS iMacPro1,1 or MacPro7,1. 

  

Update

 

Some more interesting test. In my system, without adding any effects to the project timeline, iGPU(iMac19,1) exporting was much faster than RX 580(iMacPro1,1) exporting as seen in the previous test. However, after adding some effects, RX 580(iMacPro1,1) yields faster result.

Spoiler

image.png.f1ea6a24f72d9b24abdc5bc8b625da75.png

In case if anyone would like to test this out, I am attaching xml file from my project. 4K.fcpxmld.zip(Just need to relink the Sony Camping in Nature clip to the project)

Edited by FirstTimeCustomac
  • Like 1
Link to comment
Share on other sites

Your results are not very surprising and I have seen other similar reports and I will just summarize what I have concluded from my wandering on various forums:

 

the newer iGPU-less SMBIOS (MacPro and iMacPro) should be avoided whenever possible, at least for performance if not also for feature/compatibility. The corresponding Apple machines rely very heavily on the Apple T2 co processor for computing in the absence of a compatible iGPU. For a desktop, the MacOS SMBIOS rely heavily on the "offline" GPU as a co-processor even if the mac may also have a T2 chip. Also unlike general perception the intel video processor (IQSV) is a very potent and efficient video processor which for most use case is superior to the ones in the dGPUs from AMD or nVidia. I learned this the hard way when building my home NVR security server. AMD and nVidia, even the very powerful newer models (RTX3090) couldn't keep up with the iQSV from the UHD630 when dealing with 12 HEVC streams of various sizes. I believe this is also the reason why Apple avoids relying on the AMD GPU for video processing, prioritizing running on their T2 chip regardless of what dGPU the Mac has.

In your test, the iMacPro1,1 SMBIOS is forced to run encoding/decoding on the AMD GPU in the absence of the T2 chip...

 

If you have a compatible iGPU, there is really no reason to use an iGPU-less SMBIOS. Some people do it because of the unfortunate loss of DRM. There is however at least a partial workaround for this too if one runs on an iMac SMBIOS.

The loss or performance, power efficiency as you have observed but also the loss of features like SideCar and some of the continuity is the tradeoff for enabling DRM.

This was the reason why I stayed away from building a hack with an AMD CPU based machine or an iGPU-less intel machine. Why spend money on a new a crippled machine?

 

The dGPUs are better for 3D acceleration, ok for 2D acceleration, metal, OpenGL etc but their video processing acceleration is much less efficient and capable than intel iGPU's.

Edited by rafale77
  • Like 5
  • Thanks 1
Link to comment
Share on other sites

Thanks both for the info. Keeping iMac19,1 with iGPU headless mode following your advice. As you say, the only drawback is the partial loss of DRM but TV app works fine and DRM can be played in Chrome.

  • Like 1
Link to comment
Share on other sites

7 hours ago, rafale77 said:

Your results are not very surprising and I have seen other similar reports and I will just summarize what I have concluded from my wandering on various forums:

 

the newer iGPU-less SMBIOS (MacPro and iMacPro) should be avoided whenever possible, at least for performance if not also for feature/compatibility. The corresponding Apple machines rely very heavily on the Apple T2 co processor for computing in the absence of a compatible iGPU. For a desktop, the MacOS SMBIOS rely heavily on the "offline" GPU as a co-processor even if the mac may also have a T2 chip. Also unlike general perception the intel video processor (IQSV) is a very potent and efficient video processor which for most use case is superior to the ones in the dGPUs from AMD or nVidia. I learned this the hard way when building my home NVR security server. AMD and nVidia, even the very powerful newer models (RTX3090) couldn't keep up with the iQSV from the UHD630 when dealing with 12 HEVC streams of various sizes. I believe this is also the reason why Apple avoids relying on the AMD GPU for video processing, prioritizing running on their T2 chip regardless of what dGPU the Mac has.

In your test, the iMacPro1,1 SMBIOS is forced to run encoding/decoding on the AMD GPU in the absence of the T2 chip...

 

If you have a compatible iGPU, there is really no reason to use an iGPU-less SMBIOS. Some people do it because of the unfortunate loss of DRM. There is however at least a partial workaround for this too if one runs on an iMac SMBIOS.

The loss or performance, power efficiency as you have observed but also the loss of features like SideCar and some of the continuity is the tradeoff for enabling DRM.

This was the reason why I stayed away from building a hack with an AMD CPU based machine or an iGPU-less intel machine. Why spend money on a new a crippled machine?

 

The dGPUs are better for 3D acceleration, ok for 2D acceleration, metal, OpenGL etc but their video processing acceleration is much less efficient and capable than intel iGPU's.

 

Wow... thank you for such a complete answer. I’ve always wondered whether high-end dGPU with iGPU-less system would achieve higher performance than headless system in this regard. But without the T2 chip in our hack, I guess not.  Thank you for your insight.

  • Like 1
Link to comment
Share on other sites

On 7/7/2022 at 9:17 PM, FirstTimeCustomac said:

Project Settings 2
Video: 4K
Frame Rate: 60p
Rendering: Apple ProRes 422

53 seconds with iMacPro1,1 / RX5600 6GB / no IGPU / i9 12900KF using Final Cut Pro under Ventura Beta 3

  • Like 2
Link to comment
Share on other sites

4 hours ago, FirstTimeCustomac said:

Oh! That's as twice as as faster than the result I had under headless mode.  Thank you for posting your result.

Depends on the video card. With Polaris video cards, it is better to use the iMac profile. With Navi and higher video cards, it makes sense to use the MaсPro/iMacPro profile.

In your case, the iMac19.x profile is the best option.

Edited by AslashA
  • Like 3
Link to comment
Share on other sites

20 hours ago, AslashA said:

Depends on the video card. With Polaris video cards, it is better to use the iMac profile. With Navi and higher video cards, it makes sense to use the MaсPro/iMacPro profile.

In your case, the iMac19.x profile is the best option.

Hi thank you for your response. So the Navi(VCE) much faster than the UHD-630(IQSV) encoding? or could it be the difference in CPU as well?

Link to comment
Share on other sites

It's a difficult question to answer because it is very multifaceted: H.264 Vs HEVC, encoding Vs. decoding, size of video, power efficiency and quality expected all need to be considered.

Most tests I am reading for encoding are comparing quality at a fixed bitrate for streaming:

https://docs.google.com/spreadsheets/d/1zxwKK3rcxGohl1qmp3y6DcMVx_jXvU1KFI1e7efJH2M/edit#gid=0

And AMD is worst in general even on the very latest Navi2 encoders but it isn't that straightforward.

https://codecalamity.com/hardware-encoding-4k-hdr10-videos/

 

You have a very specific use case and it seems you value speed most. Not sure how much quality and power you are willing to sacrifice.

If you want to dig deeper into the details of in-working of the decoding, you will find out that where the frames are stored (dGPU VRAM Vs System shared RAM) also make a difference when you are looking for speed as one needs to read/write and send the data over the PCIe bus. In general, the intel iGPU is more efficient because it doesn't need to transact. It is better quality for low bit rate and about the same at higher bit rate but it has lower capacity... meaning there are situations when intel won't be as fast and won't be able to handle as many frames/simultaneous streams as AMD.

 

On the hack, I ran quite a bit of testing on my polaris dGPU decoder. As an example, Sidecar which uses HEVC encoding runs a lot smoother on intel than on AMD and consuming 10x less power. I saw a lot of artifacting and sometimes so bad that it would drop to h264 encoding on AMD which lead to need for higher bitrate and running into wireless bandwidth problems and blobbing. You can find a lot of similar reports even with navi cards on various forums though maybe I am the only one who also am looking at power consumption.

 

I would like to see the data for @AslashA recommendation. I don't have any experience with Navi card myself but am just going off of reports I am reading on SideCar and other platforms (Linux mostly) and I can't come to the same conclusion.

 

  • Like 2
Link to comment
Share on other sites

In general, this is an interesting topic. I also didn't fully figure out which profile to choose. On Applelife, for example, they say that it is better to turn off the built-in video card and choose an imacpro/macpro profile because the discrete video card copes with all the tasks as well.

  • Like 1
Link to comment
Share on other sites

Thank you @AslashA, You can also read through commentaries from @vit9696 here and there that he is also not a supporter of running everything on the dGPU all the time due to efficiency either through permanent board spoofing or by using iGPU less SMBIOS. I have noticed on my iMac SMBIOS that both of my dGPU and iGPU are in use under various circumstances. We learn new things everyday and that's the fun part of doing this. I think the initial recommendation was to address the DRM issues and avoid all the complexities of trying to fix it. There is also the natural perception that the more powerful dGPUs should do a better job at encoding/decoding videos. I thought the same too but learned that it is very far from the truth as the video acceleration relies on a specific portion of the silicon and codec which is not all that different  from generation to generation of GPUs and are especially not better on the dGPUs. AMD's latest NAVI24 (AMD RX6300/6400/6500) famously don't even have that capability.

Edited by rafale77
  • Like 2
Link to comment
Share on other sites

You made me go do a search. I am getting this impression from various posts on github. This is one example but there are many more if you research issues.

Edit: another one here...

Running a Hack without an iGPU, (i.e on iGPU-less SMBIOS whether it is on AMD CPU or Rocket-Lake/Alder-Lake) loses MacOS functionalities (Sidecar/Facetime etc) and runs "crippled" in terms of performance in the area of video decoding/encoding.

Edited by rafale77
  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...