By Sonal Doomra, Hugo Affaticati, Reza Soroushmehr, and Jon Shelley
Azure is pleased to showcase results from our MLPerf Training v2.1 submission. For this submission, we benchmarked our NC A100 v4-series and NDm A100 v4-series offerings, which are our flagship virtual machine (VM) types for mid-end and high-end AI training workloads, respectively. NC A100 v4-series features up to four NVIDIA A100 PCIe Tensor Core GPUs with 80GB memory each, 96 3rd generation AMD EPYC Milan processor cores and 880 GiB of system memory. NDm A100 v4 VMs are powered by eight NVIDIA A100 SXM 80GB Tensor Core GPUs with NVIDIA (NVLink 3.0 technology) and 96 physical 2nd generation AMD EPYC™ 7V12 CPU cores. In addition, with support for NVIDIA Quantum InfiniBand networking with in-network computing, the NDm A100 v4 VM series enable customers to scale out and meet the computational demands of multi-node distributed training workloads at scale.
In this document we share the highlights of MLPerf™ Training v2.1 results along with how to run these benchmarks on Azure. These MLPerf™ benchmark results demonstrate Azure’s commitment to providing our customers with the latest GPU offerings, being in line with on-premises performance and its commitment to enabling our customers to run AI at scale in the cloud.
MLPerfTM from MLCommons®
MLCommons® is an open engineering consortium of AI leaders from academia, research labs, and industry where the mission is to “build fair and useful benchmarks” that provide unbiased evaluations of training and inference performance for hardware, software, and services—all conducted under prescribed conditions. MLPerf™ Training benchmarks consist of real-world compute-intensive AI workloads to best simulate customer’s needs. MLPerf™ tests are transparent and objective, so technology decision makers can rely on the results to make informed buying decisions.
Highlights from MLPerfTM training v2.1 benchmark results
Azure is the only cloud provider that demonstrated distributed training at scale with up to 128 NVIDIA A100 Tensor Core GPUs.
Azure achieved a 5.3% reduction in training time from the previous round (MLPerf Training v2.0) on an eight NVIDIA GPU system for the Mask R-CNN benchmark.
Azure training times are at par with the on-premises submitters across all the benchmarks.
Mask R-CNN uses pre-trained ResNet50 as a backbone. To download and verify the RN50 weights use:
Make sure DATASET_DIR is writable.
To speed up loading of coco annotations during training, the annotations can be pickled since unpickling is faster than loading a json. Repeat the command below for all the annotations files in the json format to convert it to the pickle format.
cd $PATH_DIR/training_results_v2.1/Azure/benchmarks/maskrcnn/implementations/NC96ads_A100_v4 docker build -t mlperftrainingv21/maskrcnn:latest . docker run --gpus all -v $DATASET_DIR:/data -it mlperftrainingv21/maskrcnn:latest cd /data mkdir /data/pkl_coco cd /workspace/object_detection/maskrcnn/dataset_scripts python pickle_coco_annotations.py --root /data --ann_file /data/coco2017/annotations/<FILENAME>.json --pickle_output_file /data/pkl_coco/<FILENAME>.json.pickled
Exit the container to run the benchmarks.
Run the Mask R-CNN benchmark
The steps to run the benchmark consist of building the docker container, sourcing the configuration file, and starting the benchmark. The path and run commands differ depending on the virtual machines you are testing.
For NC A100 v4-series:
cd $PATH_DIR/training_results_v2.1/Azure/benchmarks/maskrcnn/implementations/NC96ads_A100_v4 source ./config_DGXA100_NC.sh CONT= mlperftrainingv21/maskrcnn:latest DATADIR=$PATH_DIR/mlperf/data/maskrcnn_data/ ./run_with_docker.sh