Maximizing HEVC/VP9/AV1 Video Encoding On Intel Xeon Cascade Lake With SVT + Clear Linux
Continuing on from yesterday's Linux OS comparison/benchmarks on Intel 2nd Gen Xeon Scalable Cascade Lake CPUs, here are some follow-up tests focusing on the video encode performance for this dual Xeon Platinum 8280 server when focusing on Intel's high-performance "Streaming Video Technology" (SVT) encoders for VP9, AV1, and H.265/HEVC.
Since we spotted the SVT open-source projects earlier this year prior to Intel formally announcing these Linux/Windows video encoders, we've had a fun time benchmarking them. In the short time the SVT-VP9 and SVT-AV1 encoders in particular have been around we've spotted many performance improvements in their development code that now allow for video encoding to achieve 1080p @ 60 FPS AV1 encoding on powerful enough Xeon processors. As we've shown in past comparisons, these SVT encoders can generally far exceed the other reference/open-source encoder alternatives.
With the 2 x Xeon Platinum 8280 Gigabyte Server that I've been running plenty of tests on as our initial Cascade Lake test system, SVT continues performing very well. As some follow-up weekend tests, I ran the SVT benchmarks compared to various alternatives. These Platinum 8280 benchmarks were done both on Ubuntu 18.04.2 LTS and then paired under Intel's own performance-optimized Clear Linux distribution for seeking the performance benefits of switching to SVT on Ubuntu for greater performance and then really maxing out the performance by using Intel's complete optimized software stack from top to bottom.
All benchmarks were facilitated via the Phoronix Test Suite.
The out-of-the-box vpxenc performance from libvpx was less than 30 FPS in the stock configuration (including specifying of the number of threads, etc) for both Ubuntu and Clear Linux.
When feeding the same content for VP9 encoding through SVT-VP9 with the default settings, Clear Linux was running at 272 FPS but when using Clear Linux it topped at over 400 FPS! That was using an SVT-VP9 static snapshot from February but when using the latest SVT-VP9 Git, the performance was similar to the February Git state.
x265 with multi-threading could achieve more than 60 FPS for H.265 encoding on this dual Xeon Platinum 8280 server.
But in the case of SVT-HEVC, the performance on Ubuntu was 253 FPS for the same content or 365 FPS for Clear Linux. Yes, it's quite surprising seeing ~40%+ better performance on top of the gains made by SVT itself when switching from Ubuntu to Intel's own highly-optimized Clear Linux.
The SVT-AV1 performance state meanwhile isn't comparable at all to any other CPU-based AV1 encoder we've seen. The dual Xeon Platinum 8280s could encode 1080p AV1 content at above 60 FPS with Ubuntu 18.04.2 LTS but when switching to Clear Linux was a 24% better performance than Ubuntu with the same Git state.
If running the SVT-AV1 Git state from February, both operating systems on this server were running under 30 FPS encode speeds... In the past two months, the SVT-AV1 encode performance has doubled and Intel is said not to be done yet optimizing the SVT encoders.
It's also worth noting that the SVT video encode tests were run pretty much "stock" and not tuned in order to be more easily comparable to the other encoders. But Intel does also publish an encoder user guide for those wanting to maximize their CPU video encoding potential especially in the case of handling multiple streams concurrently.
As far as the 20~40%+ performance improvements out of Clear Linux over Ubuntu, it's due to a variety of Clear's optimizations/tuning. Among those optimizations are the default compiler flags, which some like to attribute to Clear's advantages, which sometimes does explain the performance difference but not in the case of these video encode benchmarks. For clearing that up I ran a separate run on Ubuntu after rebuilding the test profiles using the "-O3 -march=native" flags for even being more aggressive than what Clear Linux uses by default for its compiler flags.
The compiler flags in the case of these video encode tests didn't account for Clear's massive wins compared to Ubuntu.
Intel's SVT open-source encoders remain extremely promising. Given the advancing rate of optimizations, I continue to run daily Git benchmarks of the SVT encoders over on LinuxBenchmarking.com for those interested as part of the Phoronix Test Suite / Phoromatic benchmark trackers.
Beyond just SVT, Intel's open-source software optimization work at large remains quite exciting and for ensuring their latest processors can achieve peak performance... It's unfortunate though more Linux distributions don't make use of the patches and other tweaking for providing an optimal and modern x86_64 Linux experience. More Cascade Lake tests coming in the week ahead, this was just for some fun weekend benchmarking.
Since we spotted the SVT open-source projects earlier this year prior to Intel formally announcing these Linux/Windows video encoders, we've had a fun time benchmarking them. In the short time the SVT-VP9 and SVT-AV1 encoders in particular have been around we've spotted many performance improvements in their development code that now allow for video encoding to achieve 1080p @ 60 FPS AV1 encoding on powerful enough Xeon processors. As we've shown in past comparisons, these SVT encoders can generally far exceed the other reference/open-source encoder alternatives.
With the 2 x Xeon Platinum 8280 Gigabyte Server that I've been running plenty of tests on as our initial Cascade Lake test system, SVT continues performing very well. As some follow-up weekend tests, I ran the SVT benchmarks compared to various alternatives. These Platinum 8280 benchmarks were done both on Ubuntu 18.04.2 LTS and then paired under Intel's own performance-optimized Clear Linux distribution for seeking the performance benefits of switching to SVT on Ubuntu for greater performance and then really maxing out the performance by using Intel's complete optimized software stack from top to bottom.
All benchmarks were facilitated via the Phoronix Test Suite.
The out-of-the-box vpxenc performance from libvpx was less than 30 FPS in the stock configuration (including specifying of the number of threads, etc) for both Ubuntu and Clear Linux.
When feeding the same content for VP9 encoding through SVT-VP9 with the default settings, Clear Linux was running at 272 FPS but when using Clear Linux it topped at over 400 FPS! That was using an SVT-VP9 static snapshot from February but when using the latest SVT-VP9 Git, the performance was similar to the February Git state.
x265 with multi-threading could achieve more than 60 FPS for H.265 encoding on this dual Xeon Platinum 8280 server.
But in the case of SVT-HEVC, the performance on Ubuntu was 253 FPS for the same content or 365 FPS for Clear Linux. Yes, it's quite surprising seeing ~40%+ better performance on top of the gains made by SVT itself when switching from Ubuntu to Intel's own highly-optimized Clear Linux.
The SVT-AV1 performance state meanwhile isn't comparable at all to any other CPU-based AV1 encoder we've seen. The dual Xeon Platinum 8280s could encode 1080p AV1 content at above 60 FPS with Ubuntu 18.04.2 LTS but when switching to Clear Linux was a 24% better performance than Ubuntu with the same Git state.
If running the SVT-AV1 Git state from February, both operating systems on this server were running under 30 FPS encode speeds... In the past two months, the SVT-AV1 encode performance has doubled and Intel is said not to be done yet optimizing the SVT encoders.
It's also worth noting that the SVT video encode tests were run pretty much "stock" and not tuned in order to be more easily comparable to the other encoders. But Intel does also publish an encoder user guide for those wanting to maximize their CPU video encoding potential especially in the case of handling multiple streams concurrently.
As far as the 20~40%+ performance improvements out of Clear Linux over Ubuntu, it's due to a variety of Clear's optimizations/tuning. Among those optimizations are the default compiler flags, which some like to attribute to Clear's advantages, which sometimes does explain the performance difference but not in the case of these video encode benchmarks. For clearing that up I ran a separate run on Ubuntu after rebuilding the test profiles using the "-O3 -march=native" flags for even being more aggressive than what Clear Linux uses by default for its compiler flags.
The compiler flags in the case of these video encode tests didn't account for Clear's massive wins compared to Ubuntu.
Intel's SVT open-source encoders remain extremely promising. Given the advancing rate of optimizations, I continue to run daily Git benchmarks of the SVT encoders over on LinuxBenchmarking.com for those interested as part of the Phoronix Test Suite / Phoromatic benchmark trackers.
Beyond just SVT, Intel's open-source software optimization work at large remains quite exciting and for ensuring their latest processors can achieve peak performance... It's unfortunate though more Linux distributions don't make use of the patches and other tweaking for providing an optimal and modern x86_64 Linux experience. More Cascade Lake tests coming in the week ahead, this was just for some fun weekend benchmarking.
25 Comments