GeForceでは最強のRTX 3090と、NVIDIA RTX A6000とは価格差はかなりありますが(2021年7月12日現在、¥329,220 vs ¥589,850, お値引前の消費税抜き当サイト価格)、性能差はどの程度なのか、8GPU並列までの性能を、tf_cnn_benchmarksを使って比較してみました。

modelは、resnet50, inception3, vgg16, nasnet, resnet152, inception4です。

fp16とfp32の学習速度を計測しました。

rtx3090のbatch sizeはmodel毎に、images/secが最大になるものを選びました。

a6000のbatch sizeはrtx3090と同じsizeと、その2倍、4倍などimages/secが向上したものを掲載しており、括弧内はrtx3090の何倍になっているかを示しています。括弧内の数字が1より大きい程、a6000が速いことを示します。

結論から言いますと、vgg16の8gpuの他は、a6000はrtx3090とそれほど変わらない結果になりました。

tf_cnn_benchmarksと似たような学習が目的で、resnet50, inception3, nasnet, resnet152, inception4に近いネットワークを使うのでしたら、rtx3090は非常にコストパフォーマンスが高いと言えるのではないでしょうか。

使用したハードウェアは HPCDIY-ERMGPU8R4S
  CPU: AMD EPYC Rome 7352 DP/UP 24C/48T 2.3G 128M 155W
 メモリ: 32GB x 16 = 512GB
  SSD: Samsung PM983 7.68TB NVMePCIe3x4 V4TLC 2.5"7mm(1.3 DWPD) x 1
になります。

使用したソフトウェアは、tf_cnn_benchmarks、使用したtensorflowは、nvcr.io/nvidia/tensorflow:20.12-tf1-py3 になります。

gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 resnet50 512 1205.02 2371.21 4635.48 8756.00
a6000 fp16 resnet50 512 1242.82(1.031) 2438.71(1.028) 4793.78(1.034) 9425.05(1.076)
a6000 fp16 resnet50 1024 1253.40(1.040) 2508.13(1.058) 4944.17(1.067) 9686.33(1.106)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 inception3 256 806.46 1573.15 2979.08 5598.28
a6000 fp16 inception3 256 911.90(1.131) 1799.25(1.144) 3465.63(1.163) 6522.25(1.165)
a6000 fp16 inception3 512 899.23(1.115) 1758.40(1.118) 3477.81(1.167) 6849.92(1.224)
a6000 fp16 inception3 1024 858.57(1.065) 1648.26(1.048) 3249.41(1.091) 6652.44(1.188)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 vgg16 512 440.25 838.75 1356.53 2171.86
a6000 fp16 vgg16 512 540.55(1.228) 1053.56(1.256) 2040.88(1.504) 3926.31(1.808)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 nasnet 256 442.83 833.64 1576.29 2943.63
a6000 fp16 nasnet 256 411.98(0.930) 788.20(0.945) 1531.37(0.972) 2822.33(0.959)
a6000 fp16 nasnet 512 409.85(0.926) 761.09(0.913) 1582.06(1.004) 3068.16(1.042)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 resnet152 256 486.5 943.83 1741.87 3157.88
a6000 fp16 resnet152 256 543.78(1.118) 1054.73(1.117) 2035.65(1.169) 3868.09(1.225)
a6000 fp16 resnet152 512 559.22(1.149) 1099.23(1.165) 2052.58(1.178) 4169.76(1.320)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp16 inception4 256 399.16 786.27 1524.64 2975.4
a6000 fp16 inception4 256 469.59(1.176) 883.94(1.124) 1776.91(1.165) 3393.76(1.141)
a6000 fp16 inception4 512 473.03(1.185) 930.52(1.183) 1844.26(1.210) 3602.49(1.211)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 resnet50 256 549.28 1078.3 2095.68 3973.04
a6000 fp32 resnet50 256 520.85(0.948) 1036.15(0.961) 2042.98(0.975) 3980.10(1.002)
a6000 fp32 resnet50 512 517.09(0.941) 1029.55(0.955) 2049.59(0.978) 4043.83(1.018)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 inception3 128 361.84 715.59 1362.6 2572.47
a6000 fp32 inception3 128 378.27(1.045) 742.52(1.038) 1461.00(1.072) 2749.77(1.069)
a6000 fp32 inception3 256 390.65(1.080) 774.44(1.082) 1503.87(1.104) 2913.61(1.133)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 vgg16 256 325.21 615.41 947.14 1330.58
a6000 fp32 vgg16 256 323.93(0.996) 638.49(1.038) 1223.70(1.292) 2232.47(1.678)
a6000 fp32 vgg16 512 304.09(0.935) 605.69(0.984) 1192.28(1.259) 2290.20(1.721)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 nasnet 256 413.63 782.42 1493.11 2787.66
a6000 fp32 nasnet 256 382.46(0.925) 740.62(0.947) 1439.74(0.964) 2672.53(0.959)
a6000 fp32 nasnet 512 384.38(0.929) 731.87(0.935) 1477.58(0.990) 2870.50(1.030)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 resnet152 128 222.55 428.55 796.43 1447.99
a6000 fp32 resnet152 128 218.29(0.981) 430.75(1.005) 836.49(1.050) 1574.48(1.087)
a6000 fp32 resnet152 256 227.44(1.022) 450.95(1.052) 885.69(1.112) 1721.80(1.189)
gpu 演算精度 model batch size images/sec(1gpu) images/sec(2gpu) images/sec(4gpu) images/sec(8gpu)
rtx3090 fp32 inception4 128 176.45 344.66 664.47 1289.53
a6000 fp32 inception4 128 186.24(1.055) 364.38(1.057) 719.10(1.082) 1382.76(1.072)
a6000 fp32 inception4 256 186.57(1.057) 353.50(1.026) 730.18(1.099) 1428.19(1.108)