性能検証
ベンチマーク結果 ~NVIDIA RTX 2080Ti~
2019.05.16

NTTPC GPUエンジニア

今回は、Turingアーキテクチャを実装したコンシューマ向けGPU「NVIDIA GeForce RTX 2080ti」のベンチマークテストを行ってみたいと思います。比較対象として、前世代のPascalアーキテクチャである「GTX 1080ti」、「Titan Xp」を選定しました。また、データセンター向けGPUの「NVIDIA V100 GPU」とも比較してみます。
世代差によって性能差がどの程度開くのかを確認してみましょう。
各GPUカードのカタログスペックは下記の通りです。
表1 仕様比較(PCIe)
アーキテクチャ | CUDAコア数 | GPUメモリ | ピークFP32性能 | ベースクロック | |
---|---|---|---|---|---|
RTX2080ti | Turing | 4352 | 11GB GDDR6 | 14.2TFLOPS | 1350MHz |
GTX1080ti | Pascal | 3584 | 11GB GDDR5X | 11.3TFLOPS | 1480MHz |
Titan Xp | Pascal | 3840 | 12GB GDDR5X | 12TFLOPS | 1481MHz |
V100 | Volta | 5120 | 32GB HBM2 | 15.7TFLOPS | - |
使用ベンチマークソフト
tensorflowのベンチマークを使用、各モデルのトレーニングにかかる時間を比較します。
https://github.com/tensorflow/tensorflow
*masterbranchは原則最新版TensorFlowでしか動作しないため、使用TensorFlowに合わせたbranchをcloneする必要があります。*
ベンチマークパラメータ
ResNet-50 ResNet-152 batch_size=32,64 FP16,FP32 Optimizer sgd variable_update: parameter_server InceptionV3 batch_size=32,64 FP16,FP32 Optimizer sgd variable_update: parameter_server VGG16 batch_size=32,64 FP16,FP32 Optimizer sgd variable_update: replicated AlexNet batch_size=32,64 FP16,FP32 Optimizer sgd variable_update: replicated
ベンチマーク実行結果
下記コマンドを実行します。
$ python tf_cnn_benchmarks.py --device=gpu --num_gpus=1 --batch_size=32 --model=resnet50 --variable_update=parameter_server
1. RTX2080Ti vs GTX1080Ti vs TitanXp
やはりRTX2080tiが頭一つ抜けていますね。なお、resnet152はバッチサイズ64だと11GBではメモリが足らず、RTX2080TiとGTX1080Tiでは実行できませんでした。
GTX1080ti | Titan Xp | RTX2080ti | |
---|---|---|---|
resnet50(32) | 204.07 | 227.73 | 279.91 |
resnet50(64) | 211.71 | 238.71 | 296.4 |
resnet152(32) | 87.11 | 95.54 | 114.69 |
resnet152(64) | - | 101.18 | - |
inception3(32) | 133.21 | 145.68 | 185.6 |
inception3(64) | 137.5 | 151.78 | 197.52 |
alexnet(32) | 1468.43 | 1668.03 | 2005.16 |
alexnet(64) | 1950.62 | 2161.96 | 2685.52 |
vgg16(32) | 130.39 | 146.32 | 168.03 |
vgg16(64) | 136.35 | 152.71 | 174.34 |
trivial(32) | 10206.5 | 11757.38 | 10183.22 |
trivial(64) | 18746.76 | 19581.39 | 20204.42 |

2. 【参考】RTX2080Ti vs V100
参考に、データセンターGPU「V100」とも比較してみました。前回のベンチマークデータからソフトウェアバージョンを少し変えています。 全体的には「V100」のほうが上ですが、僅差や抜いているとこもあります。ここがアーキテクチャとCUDAの差でしょうか。
RTX 2080ti | V100 16GB | |
---|---|---|
resnet50(32) | 279.91 | 300.77 |
resnet50(64) | 296.4 | 342.51 |
resnet152(32) | 114.69 | 120.33 |
resnet152(64) | - | 138.14 |
inception3(32) | 185.6 | 198.42 |
inception3(64) | 197.52 | 223.87 |
alexnet(32) | 2005.16 | 2456.95 |
alexnet(64) | 2685.52 | 3206.91 |
vgg16(32) | 168.03 | 210.77 |
vgg16(64) | 174.34 | 213.72 |
trivial(32) | 10183.22 | 9786.77 |
trivial(64) | 20204.42 | 18535.43 |

GPUアーキテクチャ(Turing / Pascal)やCUDAバージョンの差でかなり差がでることがわかりました。最新のものを採用することでより良いパフォーマンスが出せることの裏付けになったと思います。
参考:検証環境
■ハードウェア
CPU
Intel(R) Xeon(R) CPU E5-2687W v3 @ 3.10GHz 2個
メモリ
256GB
ディスク
PLEXTOR PX-256M8PeG (nvme)
GPU
NVIDIA GEFORCE RTX 2080 Ti 11GB 1枚
NVIDIA GeForce GTX Titan Xp 12GB 1枚
NVIDIA GeForce GTX 1080 Ti 11GB 1枚
■アプリケーション
OS:Ubuntu18.04
Driver: 418.40
TensorFlow: 1.13
CUDA: 10.0
cuDNN: 7.5
python:3.6.7