NVIDIA Deep Learning Examples
NVIDIA Deep Learning Examples
EfficientDet For TensorFlow2
Resource
NVIDIA Deep Learning Examples
NVIDIA Deep Learning Examples
EfficientDet For TensorFlow2

A convolution-based neural network for the task of object detection.

Benchmarking

Benchmarking can be performed for both training and inference. Both the scripts run the EfficientDet model. You can specify whether benchmarking is performed in AMP, TF32, or FP32 by specifying it as an argument to the benchmarking scripts.

Training performance benchmark

Training benchmarking can be performed by running the script:

NGPU=<number of GPUs> bash scripts/D0/training-benchmark-{AMP, TF32, FP32}-{V100-32G, A100-80G}.sh

To train on 1 DGXA100-80G run script:

bash scripts/D0/training-benchmark-{AMP, TF32}-1xA100-80G.sh

Inference performance benchmark

Inference benchmarking can be performed by running the script:

AMP=<enable mixed precision training? TRUE/FALSE> BS=<inference batchsize> bash scripts/D0/inference-benchmark.sh

Results

The following sections provide details on how we achieved our performance and accuracy in training and inference.

Training Accuracy Results

Training accuracy: NVIDIA DGX A100 (8x A100 80GB)

Our results were obtained by running the scripts/D0/convergence-{AMP, TF32}-8xA100-80G.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX A100 (8x A100 80GB) GPUs while evaluating every 10 epochs after 200 epochs of training until the 300th epoch is completed.

GPUsImage sizePrecisionLocal Batch sizeBBOX mAPTime to trainTime to train - speedup (TF32 to mixed precision)
8512 x 512TF3210434.538.5 hrs-
8512 x 512FP1620034.274.6 hrs1.84x
Training accuracy: NVIDIA DGX-1 (8x V100 32GB)

Our results were obtained by running the scripts/D0/convergence-{AMP, FP32}-8xV100-32G.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX-1 with 8x V100 32GB GPUs with no intermediate evaluation.

GPUsImage sizePrecisionLocal Batch sizeBBOX mAPTime to trainTime to train - speedup (FP32 to mixed precision)
8512 x 512FP324034.4216.9 hrs-
8512 x 512FP166434.4514.3 hrs1.18x
Training accuracy: NVIDIA DGX-1 (32x V100 32GB)

Our results were obtained by running the scripts/D0/convergence-{AMP, FP32}-32xV100-32G.sub training script in the 22.03-tf2 NGC container on NVIDIA DGX-1 with 32x V100 32GB GPUs with no intermediate evaluation.

GPUsImage sizePrecisionLocal Batch sizeBBOX mAPTime to trainTime to train - speedup (FP32 to mixed precision)
32512 x 512FP324034.145.6 hrs-
32512 x 512FP166434.024.19 hrs1.33x
Training loss curves

Loss Curve

Here, the loss is simply the weighted sum of losses on the classification head and the bounding box head.

Training Stability Test

The following tables compare mAP scores across five different training runs with different seeds. The runs showcase consistent convergence on all five seeds with very little deviation.

ConfigSeed 1Seed 2Seed 3Seed 4Seed 5MeanStandard Deviation
8 GPUs, final AP BBox34.3834.5634.334.3434.434.390.1

Training Performance Results

Training performance: NVIDIA DGX A100 (8x A100 80GB)

Our results were obtained by running the scripts/D0/training-benchmark-{AMP, TP32}-A100-80G.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX A100 (8x A100 80GB) GPUs. Performance numbers in images per second were averaged over an entire training epoch. The number of GPUs used to benchmark can be set as NGPU=<4/8>. For 1-gpu benchmarking run script scripts/D0/training-benchmark-{AMP, TP32}-1xA100-80G.sh

GPUsThroughput - TF32 (BS=104)Throughput - mixed precision (BS=200)Throughput speedup (TF32 - mixed precision)Weak scaling - TF32Weak scaling - mixed precision
11623972.4511
8126627112.147.816.82
Training performance: NVIDIA DGX-1 (8x V100 32GB)

Our results were obtained by running the scripts/D0/training-benchmark-{AMP, FP32}-V100-32G.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX-1 with (8x V100 32GB) GPUs. Performance numbers in images per second were averaged over an entire training epoch. The number of GPUs used to benchmark can be set as NGPU=<1/4/8>.

GPUsThroughput - FP32 (BS=40)Throughput - mixed precision (BS=64)Throughput speedup (FP32 - mixed precision)Weak scaling - FP32Weak scaling - mixed precision
11132322.0511
86457771.25.73.34

To achieve similar results, follow the steps in the Quick Start Guide. Note: The dataloader is a performance bottleneck for this model. So the training throughputs could be higher if the bottleneck is optimized further.

Inference performance results

Inference performance: NVIDIA DGX A100 (1x A100 80GB)

Our results were obtained by running the scripts/inference-benchmark.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX A100 (1x A100 80GB) GPU. The image resolution is 512 x 512.

FP16 Inference Latency

Batch sizeThroughput AvgLatency Avg (ms)Latency 90% (ms)Latency 95% (ms)Latency 99% (ms)
13826.3126.2726.2926.31
24049.7549.6849.7149.74
48050.1250.0650.0850.11
815352.1652.0952.1252.15
1627657.8357.7757.7957.81
3246568.7568.6968.7268.74
6470690.6390.5690.5990.62
128791161.65160.94161.08161.14
256858298.33296.1296.62297.76

TF32 Inference Latency

Batch sizeThroughput AvgLatency Avg (ms)Latency 90% (ms)Latency 95% (ms)Latency 99% (ms)
13826.092626.0326.07
24049.9449.8449.8849.91
47850.9850.9150.9450.96
814455.2155.1655.1955.21
1625063.7663.6963.7263.75
3239481.0680.978181.04
64563113.54113.44113.47113.51
128623205.33205.06205.16205.28

To achieve similar results, follow the steps in the Quick Start Guide.

Inference performance: NVIDIA DGX-1 (1x V100 32GB)

Our results were obtained by running the scripts/inference-benchmark.sh training script in the 22.03-tf2 NGC container on NVIDIA DGX-1 with 1x V100 32GB GPUs. The image resolution is 512 x 512.

FP16 Inference Latency

Batch sizeThroughput AvgLatency Avg (ms)Latency 90% (ms)Latency 95% (ms)Latency 99% (ms)
13527.8427.6727.7427.82
24049.8149.4249.6249.77
48149.3549.349.3249.34
814654.5154.4454.4754.5
1624565.0765.0165.0465.06
3236687.2487.187.1687.22
64477134.09133.98134.02134.07
128497257.39257.09257.19257.34

FP32 Inference Latency

Batch sizeThroughput AvgLatency Avg (ms)Latency 90% (ms)Latency 95% (ms)Latency 99% (ms)
13627.2127.0227.1127.19
23951.0450.8150.9151.01
47851.2351.1951.2151.22
813559.0658.9859.0259.06
1621474.7374.6474.6874.71
32305104.76104.67104.72104.76
64374171.08170.92170.98171.05
128385332.11331.81331.92332.06

To achieve these same results, follow the steps in the Quick Start Guide.

NVIDIA uses cookies to improve your experience on our web site. We and our third-party partners also use cookies and other tools to collect and record information you provide as well as information about your interactions with our websites for performance improvement, analytics, and to assist in marketing efforts. By clicking "Accept All", you consent to our use of cookies and other tools as described in our Cookie Policy. You can manage your cookie settings by clicking on "Manage Settings." By continuing to use this site or by clicking one of the buttons below, you agree to our Terms of Service (which contains important waivers). Please see our Privacy Policy for more information on our privacy practices.