NVIDIA
NVIDIA
UNet Industrial for TensorFlow
Resource
NVIDIA
NVIDIA
UNet Industrial for TensorFlow

This model is a convolutional neural network for 2D image segmentation tuned to avoid overfitting.

The performance measurements in this document were conducted at the time of publication and may not reflect the performance achieved from NVIDIA's latest software release. For the most up-to-date performance measurements, go to NVIDIA Data Center Deep Learning Product Performance.

Benchmarking

The following sections shows how to run benchmarks measuring the model performance in training and inference modes.

Training performance benchmark

To benchmark the inference performance, you can run one of the scripts in the ./scripts/benchmarking/ directory called ./scripts/benchmarking/UNet_trainbench{_AMP}_{1, 4, 8}GPU.sh.

Each of the scripts requires three parameters:

  • path to the dataset as the first argument
  • class ID from DAGM used (between 1-10)

For example:

cd scripts/benchmarking/
./UNet_trainbench_1GPU.sh /data 1

Inference performance benchmark

To benchmark the training performance, you can run one of the scripts in the ./scripts/benchmarking/ directory called ./scripts/benchmarking/UNet_evalbench{_AMP}.sh.

Each of the scripts requires three parameters:

  • path to the dataset as the first argument
  • class ID from DAGM used (between 1-10)

For example:

cd scripts/benchmarking/
./UNet_evalbench_AMP.sh /data 1

Results

The following sections provide details on the achieved results in training accuracy, performance and inference performance.

Training accuracy results

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

Our results were obtained by running the ./scripts/UNet{_AMP}_{1, 8}GPU.sh training script in the tensorflow:20.06-tf1-py3 NGC container on NVIDIA DGX A100 (8x A100 40GB) GPUs.

GPUsBatch size / GPUAccuracy - TF32Accuracy - mixed precisionTime to train - TF32 [min]Time to train - mixed precision [min]Time to train speedup (TF32 to mixed precision)
1160.97170.97263.62.31.57
820.97330.96834.33.51.23
Training accuracy: NVIDIA DGX-1 (8x V100 16GB)

Our results were obtained by running the ./scripts/UNet{_AMP}_{1, 8}GPU.sh training script in the tensorflow:20.06-tf1-py3 NGC container on NVIDIA DGX-1 (8x V100 16GB) GPUs.

GPUsBatch size / GPUAccuracy - FP32Accuracy - mixed precisionTime to train - FP32 [min]Time to train - mixed precision [min]Time to train speedup (FP32 to mixed precision)
1160.96430.96531081.25
820.96370.96552.52.51.00

Training performance results

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

Our results were obtained by running the scripts ./scripts/benchmarking/UNet_trainbench{_AMP}_{1, 4, 8}GPU.sh training script in the TensorFlow 20.06-tf1-py3 NGC container on NVIDIA DGX A100 (8x A100 40GB) GPUs.

GPUsBatch size / GPUThroughput - TF32 [img/s]Throughput - mixed precision [img/s]Throughput speedup (TF32 - mixed precision)Strong scaling - TF32Strong scaling - mixed precision
116135.95255.261.88--
44420.2691.191.643.092.71
82655.05665.661.024.822.61
Training performance: NVIDIA DGX-1 (8x V100 16GB)

Our results were obtained by running the scripts ./scripts/benchmarking/UNet_trainbench{_AMP}_{1, 4, 8}GPU.sh training script in the TensorFlow 20.06-tf1-py3 NGC container on an NVIDIA DGX-1 (8 V100 16GB) GPUs.

GPUsBatch size / GPUThroughput - FP32 [img/s]Throughput - mixed precision [img/s]Throughput speedup (FP32 - mixed precision)Strong scaling - FP32Strong scaling - mixed precision
11686.95168.541.94--
44287.01459.071.603.302.72
82474.77444.130.945.462.64

To achieve these same results, follow the Quick Start Guide outlined above.

Inference performance results

Inference performance results

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

Our results were obtained by running the scripts ./scripts/benchmarking/UNet_evalbench{_AMP}.sh evaluation script in the 20.06-tf1-py3 NGC container on NVIDIA DGX A100 (1x A100 40GB) GPUs.

FP16

Batch sizeResolutionThroughput Avg [img/s]
1512x512x1247.83
8512x512x1761.41
16512x512x1823.46

TF32

Batch sizeResolutionThroughput Avg [img/s]
1512x512x1227.97
8512x512x1419.70
16512x512x1424.57

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

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

Our results were obtained by running the scripts ./scripts/benchmarking/UNet_evalbench{_AMP}.sh evaluation script in the 20.06-tf1-py3 NGC container on NVIDIA DGX-1 (1x V100 16GB) GPUs.

FP16

Batch sizeResolutionThroughput Avg [img/s]
1512x512x1157.91
8512x512x1438.00
16512x512x1469.27

FP32

Batch sizeResolutionThroughput Avg [img/s]
1512x512x1159.65
8512x512x1243.99
16512x512x1250.23

To achieve these same results, follow the Quick Start Guide outlined above.