端の知識の備忘録

技術メモになりきれない、なにものか達の供養先

RTX4090の機械学習性能を確かめるため`ai-benchmark`をやってみた

概要

タイトル通り、先日購入したRTX4090の機械学習性能を測定するために、ai-benchmarkなるものを取ってみた。

測定したマシンや買ったRTX4090の詳細等は過去記事参照のこと。

hashicco.hatenablog.com

まとめ

スコアは次の通り。

  • Device Inference Score: 22918
  • Device Training Score: 27077
  • Device AI Score: 49995

公式HP(https://ai-benchmark.com/ranking_deeplearning.html)に載っているランキングでは最高スコアなのがV100で、

Inference 17761, Training 18030, AI 35791

なので、RTX4090はV100を超える性能ということになる。

一方、昨日の記事で疑問であったRTX3090との比較であるが、RedditにRTX3090のスコアを貼ってくれてる人がいたのでそこから転載すると、

Inference 22459, Training 22354, AI: 44813

とのことだったので、確かにRTX4090がRTX3090に勝っているもののそんなに大きな差ではなく、このベンチの結果から言うならば価格差ほどの性能を示しているとは言えない。VRAM量も同じだし。結果、2022/10現在のコスパ最強コンシューマ向け機械学習GPUは未だにRTX3090ということになるでしょう。

とは言え、だいぶ古いパッケージなので今のGPUに対しては結果がサチってしまっているだけかもしれないので参考程度に捉えてください。

ai-benchmarkについて

私も別にこのソフトに詳しいわけではないのだが、ちょい古めのCNN系・RNN/LSTM系のモデルの学習・推論を19種類行い、その速度から機械学習性能を出してくれるパッケージ。PyPIの登録を見ると2019/12が最後の更新となっており、Transformer系のテストもないので最近のモデルの実行性能を反映できる訳では無いが参考程度にはなるだろう。

インストールはTensorFlowがインストール済みであればpip install ai-benchmarkだけでOK。

ベンチマーク方法はPythonのREPLでも開いて次のコードを実行するだけ。お手軽なのでやってみたという記事でした。

from ai_benchmark import AIBenchmark
benchmark = AIBenchmark()
results = benchmark.run()

結果全文

>>> from ai_benchmark import AIBenchmark
>>> benchmark = AIBenchmark()

>>   AI-Benchmark-v.0.1.2
>>   Let the AI Games begin..

>>> results = benchmark.run()
*  TF Version: 2.10.0
*  Platform: Windows-10-10.0.19044-SP0
*  CPU: N/A
*  CPU RAM: 64 GB
*  GPU/0: NVIDIA GeForce RTX 4090
*  GPU RAM: 20.9 GB
*  CUDA Version: 11.8
*  CUDA Build: V11.8.89

The benchmark is running...
The tests might take up to 20 minutes
Please don't interrupt the script

1/19. MobileNet-V2

1.1 - inference | batch=50, size=224x224: 29.7 ± 1.2 ms
1.2 - training  | batch=50, size=224x224: 72.5 ± 13.5 ms

2/19. Inception-V3

2.1 - inference | batch=20, size=346x346: 42.5 ± 3.0 ms
2.2 - training  | batch=20, size=346x346: 72.0 ± 3.4 ms

3/19. Inception-V4

3.1 - inference | batch=10, size=346x346: 39.8 ± 1.8 ms
3.2 - training  | batch=10, size=346x346: 78.8 ± 2.3 ms

4/19. Inception-ResNet-V2

4.1 - inference | batch=10, size=346x346: 51.5 ± 0.7 ms
4.2 - training  | batch=8, size=346x346: 97.0 ± 1.8 ms

5/19. ResNet-V2-50

5.1 - inference | batch=10, size=346x346: 17.8 ± 2.9 ms
5.2 - training  | batch=10, size=346x346: 40.5 ± 0.5 ms

6/19. ResNet-V2-152

6.1 - inference | batch=10, size=256x256: 38.0 ± 0.7 ms
6.2 - training  | batch=10, size=256x256: 74.1 ± 0.8 ms

7/19. VGG-16

7.1 - inference | batch=20, size=224x224: 24.7 ± 1.8 ms
7.2 - training  | batch=2, size=224x224: 20.1 ± 1.2 ms

8/19. SRCNN 9-5-5

8.1 - inference | batch=10, size=512x512: 36.4 ± 9.9 ms
8.2 - inference | batch=1, size=1536x1536: 23.9 ± 1.9 ms
8.3 - training  | batch=10, size=512x512: 96.6 ± 15.8 ms

9/19. VGG-19 Super-Res

9.1 - inference | batch=10, size=256x256: 53.7 ± 10.0 ms
9.2 - inference | batch=1, size=1024x1024: 50.2 ± 1.6 ms
9.3 - training  | batch=10, size=224x224: 93.8 ± 1.6 ms

10/19. ResNet-SRGAN

10.1 - inference | batch=10, size=512x512: 58.5 ± 11.1 ms
10.2 - inference | batch=1, size=1536x1536: 42.9 ± 2.8 ms
10.3 - training  | batch=5, size=512x512: 84.9 ± 17.5 ms

11/19. ResNet-DPED

11.1 - inference | batch=10, size=256x256: 55.7 ± 7.3 ms
11.2 - inference | batch=1, size=1024x1024: 75.0 ± 1.3 ms
11.3 - training  | batch=15, size=128x128: 90.0 ± 24.4 ms

12/19. U-Net

12.1 - inference | batch=4, size=512x512: 75.0 ± 1.2 ms
12.2 - inference | batch=1, size=1024x1024: 73.8 ± 1.2 ms
12.3 - training  | batch=4, size=256x256: 74.3 ± 0.8 ms

13/19. Nvidia-SPADE

13.1 - inference | batch=5, size=128x128: 33.4 ± 0.5 ms
13.2 - training  | batch=1, size=128x128: 65.2 ± 0.6 ms

14/19. ICNet

14.1 - inference | batch=5, size=1024x1536: 66.7 ± 12.7 ms
14.2 - training  | batch=10, size=1024x1536: 200 ± 14 ms

15/19. PSPNet

15.1 - inference | batch=5, size=720x720: 101.9 ± 0.7 ms
15.2 - training  | batch=1, size=512x512: 48.5 ± 0.6 ms

16/19. DeepLab

16.1 - inference | batch=2, size=512x512: 32.7 ± 0.7 ms
16.2 - training  | batch=1, size=384x384: 54.6 ± 0.8 ms

17/19. Pixel-RNN

17.1 - inference | batch=50, size=64x64: 899 ± 119 ms
17.2 - training  | batch=10, size=64x64: 5123 ± 247 ms

18/19. LSTM-Sentiment

18.1 - inference | batch=100, size=1024x300: 789 ± 7 ms
18.2 - training  | batch=10, size=1024x300: 2433 ± 120 ms

19/19. GNMT-Translation

19.1 - inference | batch=1, size=1x20: 265 ± 30 ms

Device Inference Score: 22918
Device Training Score: 27077
Device AI Score: 49995

For more information and results, please visit http://ai-benchmark.com/alpha