Dpsv5 Virtual Machines Powered by Ampere Altra Processors
Ampere® Altra® processors are designed from the ground up to deliver exceptional performance for Cloud Native applications such as video encoding. With an innovative architecture that delivers high performance, linear scalability, and amazing energy efficiency, Ampere Altra allows workloads to run in a predictable manner with minimal variance under increasing loads. This enables industry leading performance/watt and a smaller carbon footprint for real world workloads like video encoding.
Microsoft offers a comprehensive line of Azure Virtual Machines featuring the Ampere® Altra® Cloud Native processor that can run a diverse and broad set of scale-out workloads such as web servers, open-source databases, in-memory applications, big data analytics, gaming, media, and more. The Dpsv5 VMs powered by Ampere® Altra® processors are general-purpose VMs that provide 2 GB of memory per vCPU and a combination of vCPUs, memory, and local storage to cost-effectively run workloads that do not require larger amounts of RAM per vCPU. The Epsv5 VMs are memory-optimized VMs that provide 4 GB of memory per vCPU, which can benefit memory-intensive workloads including open-source databases, in-memory caching applications, gaming, and data analytics engines.
We use libx264 which implements the H.264/MPEG-4 AVC standard that is the most widely used today. “vbench: a Benchmark for Video Transcoding in the Cloud, a benchmark for the emerging video-as-a-service workload”, available at http://arcade.cs.columbia.edu/vbench, is used to evaluate x264 performance. According to the paper, the fifteen input videos in vBench were algorithmically selected to represent a large commercial corpus of millions of videos based on resolution, framerate, and complexity.
The Microsoft Azure Dpsv5 VMs powered by Ampere Altra processors offer great performance in a variety of video encoding workloads, including the configurations used in vbench. We use vbench’s "Upload" and "Video on Demand" configurations to evaluate performance. The Upload configuration uses single pass transcoding without degrading the input video quality. This represents the initial upload encoding to a video service, requiring speed and quality. The Video on Demand (VoD) configuration uses a two-pass transcoding that requires speed and improved compression without degrading video quality. The VoD first pass collects statistics which are used in the second pass to allocate more bits when encoding complex vs. simple frames.
The Dpsv5 VMs outperform the legacy x86 VMs in raw performance. In the vbench Upload configuration, the D16ps v5 VM has 5% better performance than the Intel® Xeon® Ice Lake-based D16s v5 VM and 4% compared to AMD EPYC™ Milan-based d16as v5 VM. For the vbench Video on Demand configuration, the D16ps v5 VM has the best performance - 3% better than the D16s v5 VM and 2% better than the D16as v5 VM.
Comparing price-performance, the Dpsv5 VMs outperform the high-end x86 VMs even further. In the vbench Upload configuration, the D16ps v5 VM has a 31% better price-performance ratio over the D16s v5 VM and 16% better than the D16as v5 VM. For the vbench Video on Demand configuration, the D16ps v5 VM had the best price-performance with 29% better price-performance than The D16s v5 and 14% better than D16as v5.
Standard D16s v5 | Standard D16s v5 | Standard D16s v5 | |
---|---|---|---|
Number of vCPUs | 16 | 16 | 16 |
Hourly cost | $0.768 | $0.688 | $0.616 |
Operating System | Ubuntu 20.04.4 LTS | Ubuntu 20.04.4 LTS | Ubuntu 20.04.4 LTS |
Kernel version | 5.13.0-1021-azure | 5.13.0-1017-azure | 5.13.0-1027-azure |
Memory | 64 | 64 | 64 |
Disk | Premium SSD 30GB | Premium SSD 30GB | Premium SSD 30GB |
gcc version | 9.4 | 9.4 | 9.4 |
ffmpeg version | N-106462-g55e509b094 | N-106462-g55e509b094 | N-106462-g55e509b094 |
x264 version | Version: 0.164.3094 | Version: 0.164.3094 | Version: 0.164.3094 |
We used the vbench configurations specified in “vbench: a Benchmark for Video Transcoding in the Cloud, a benchmark for the emerging video-as-a-service workload”, Andrea Lottarini, Alex Ramirez, Joel Coburn, Martha A. Kim Parthasarathy Ranganathan, Daniel Stodolsky, and Mark Wachsler (2018).
For each vCPU available in the VM, we ran the following commands using numactl to pin the process to a specific core.
# command line for vbench Upload configuration numactl -m 0 -C $CORE ffmpeg -i $INPUT -c:v libx264 -threads 1 -y -loglevel quiet -crf 18 $OUTPUT # command line for vbench VoD configuration - note the bitrate below is set per input file as described in the vbench paper # Pass #1 numactl -m 0 -C $CORE ffmpeg -i $INPUT -c:v libx264 -threads 1 -y -loglevel quiet -passlogfile ffmpeg2pass -pass 1 -f null -an -sn -b:v $BITRATE -preset medium /dev/null # Pass #2 numactl -m 0 -C $CORE ffmpeg -i $INPUT -c:v libx264 -threads 1 -y -loglevel quiet -passlogfile ffmpeg2pass -pass 2 -b:v $BITRATE -preset medium ${OUTPUT}.
Video encoding is a popular workload in the cloud and given the myriad formats, target devices, and resolutions available today, it is a compute-intensive task. H.264 continues to be the most popular video codec on the market. In our tests, the Microsoft Azure Dpsv5 VMs powered by the Ampere® Altra® Cloud Native processors delivered better performance and price-performance compared to legacy x86 VMs – up to 5% higher performance and 31% higher price-performance using the popular vbench benchmark.
For more information about Azure virtual machines with Ampere Altra Arm-based processors, visit the Azure blog for further details.
All data and information contained herein is for informational purposes only and Ampere reserves the right to change it without notice. This document may contain technical inaccuracies, omissions and typographical errors, and Ampere is under no obligation to update or correct this information. Ampere makes no representations or warranties of any kind, including but not limited to express or implied guarantees of noninfringement, merchantability, or fitness for a particular purpose, and assumes no liability of any kind. All information is provided “AS IS.” This document is not an offer or a binding commitment by Ampere. Use of the products contemplated herein requires the subsequent negotiation and execution of a definitive agreement or is subject to Ampere’s Terms and Conditions for the Sale of Goods.
System configurations, components, software versions, and testing environments that differ from those used in Ampere’s tests may result in different measurements than those obtained by Ampere.
Price performance was calculated using Microsoft's Virtual Machines Pricing, in September of 2022. Refer to individual tests for more information.
©2022 Ampere Computing. All Rights Reserved. Ampere, Ampere Computing, Altra and the ‘A’ logo are all registered trademarks or trademarks of Ampere Computing. Arm is a registered trademark of Arm Limited (or its subsidiaries). All other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com