端の知識の備忘録

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

ZotacのRTX4090を買ったのでゲーム性能と機械学習性能を確かめてみた

概要

2年ぶりに訪れたコンシューマ向け新世代GPUの発売シーズン。その第一弾であるNVIDIAのRTX4090が先日2022/10/12に解禁された。

前回のRTX30xx、RX6000シリーズの発売時には、初日の争奪戦で破れちょっとした後にRTX3080を買い、その後VRAM容量を求めてRX6900XTに買い替えた。

しかし、RadeonだとCUDAが使えないので機械学習用途に利用するのに非常な困難がある。本ブログでも紹介したTensorflow-DirectMLは素晴らしいプロジェクトではあるものの、未だ実用に耐えうるほどのものではない。

KaggleやGoogle Colabはタダor安価にP100くらいのGPUやTPUを貸してくれるものの、ローカルほど環境設定の自由度がなく痒いところに手が届かないこともしばしば。例えば、最近Kaggleノートブックにてpng画像をTensorFlowのdecode_pngで扱うとき、Cleanup called...というエラーメッセージが画像1枚1枚の読み出し時に表示される現象(ここで報告されているもの)に悩まされており、これがどうやっても解決できないのが辛かった。

ということで、お値段30万というのにはビビりながらも今回も初物グラボ争奪戦に参じることとし、Amazonであまり気味だったZotac RTX4090 Trinity OC (ZT-D40900J-10P)を入手することができたのであった。

Amazon | ZOTAC GAMING GeForce RTX 4090 Trinity OC グラフィックスボード ZT-D40900J-10P VD8258 | ZOTAC | グラフィックボード 通販

まだあまり検証が十分ではないものの、簡単なレビューと3D Mark系、FF14ベンチマークと簡単なCNNのトレーニング時間の計測を行ってみたので、その結果をまとめてみる。なお、DLSSのような(あくまでベンチを取る上で)しゃらくさい機能が関係するベンチは取っていない。

まとめ

  • わかっていたことだがRTX4090はクソでかい。リファレンスのRX6900XTでもちょっとでかいと思っていたが、それより2回りくらいでかい。
    • 電源は流用しているので12VHPWRとPCIe8ピンx4の変換ケーブルも使うこととなり、高さも思った以上に嵩む。ケースはミドルタワーのCM690 IIIだがかなりの存在感というか圧迫感がある。
    • サポートステイは多分必須と思えるほど重い
  • RTX4090のゲーム性能は既報通り圧巻。
    • 私のPCではRyzen7 5800X3Dとの組み合わせだがFF14ベンチ、3DMark共に見たことないような高い数字が出た
    • 更に、カードがでかいだけあって、最安値に近いZotacの安価グレードのTrinity OCでも十分冷えるFF14を30分くらいプレイしても50℃未満、ベンチ中でも最大65℃程度しかいかない。
  • RTX4090の機械学習性能もなかなかのもの。CPU, DiskIOは違う条件での比較だが、KaggleのP100と比べて同バッチサイズで2.5~4倍のCNN(EfficientnetB0)学習速度上昇が見られた。
    • 更に、混合精度を使うことで実測値で1.5倍ほどの学習速度の上昇が見込めるようである。
    • (2022/10/17追記) ai-benchmarkというパッケージをRTX4090で走らせてみた記事も書きましたので興味があればどうぞ。

hashicco.hatenablog.com

写真、ベンチの詳細は次の項から。

外観

RX6900XTとの比較。どちらもハイエンドなはずだが、RTX4090は明らかに常軌を逸したサイズである。

重ねると2回りくらい大きく感じる。

CM690IIIに組み込んだ写真(ホコリがすごいのはご愛嬌。掃除前に撮影してしまったのだが撮り直しが面倒くさい……)。比較するとRX6900XTは意外とコンパクトだったのだと感じる。

まず目に余るのは異常な長さだが、幅も3.5スロになったせいもあり下のPCIe x16が使えなくなったり、高さも12VHPWRの変換込みでかなり嵩張る。こんな30万のグラボを買う人間にとっては今更であろうが、PCケースのサイズは要確認である。

また、この製品で今のところ一番不満だったのは、高電力使用の警告シールを剥がしたとき、後に糊の跡がついたことである。こないだAsrockのマザボDRAMスロットでも似たような話があった気がする。

とりあえず界面活性剤入のディスプレイクリーナをつけたティッシュで少しずつ拭き取って行くことで消し去ることに成功したが、30万もする製品なのにこれはいかがなものかと思った。

また、12VHPWRの電源コネクタ近くの奥まった見にくいところにLEDコントロール用のUSBケーブルを指す場所がある。私はサイドパネルがシースルーなケースを使っていないのでここに何も指していないが、特に問題なく動いているので必要ない場合はつけなくても良いみたい。

ベンチの実行環境

  • OS: Windows10 Home
  • CPU: Ryzen5 5800X3D
  • MB: msi mpg B550 gaming plus
  • RAM: 3200MHz 16GBx4
  • システムディスク: XPG GAMMIX S70 2TB
  • Driver version: nvidiaは522.25、AMDはPro Driverの2022 Q3

ここで、GPUをRX6900XTとRTX4090の2パターンに切り替えて次のベンチを実行しました。

  • 3D Mark
  • VR Mark
  • PC Mark
  • FF14 暁月(最高品質、3440x1440)
  • 機械学習(TensorFlow, EfficientNet B0, 画像サイズ160x160x3のトレーニング)

ゲーム系ベンチ

3D Mark

  • Score
RTX 4090 RX6900XT
TimeSpy Extreme 13636 8464
TimeSpy 27006 17606
FireStrike Ultra 23742 13383
FireStrike Extreme 36905 25269
FireStrike 50754 41135
  • Graphics Score
RTX 4090 RX6900XT
TimeSpy Extreme 18987 9552
TimeSpy 35905 19687
FireStrike Ultra 24922 13587
FireStrike Extreme 46057 27511
FireStrike 83746 56660
  • Combined Score
RTX 4090 RX6900XT
TimeSpy Extreme - -
TimeSpy - -
FireStrike Ultra 14345 7011
FireStrike Extreme 17633 13962
FireStrike 17671 16943

TimeSpyでもFireStrikeでも高解像度のものでは1.5倍以上のスコア上昇を見せている。

また、TimeSpy Extreme時であってもRTX4090の温度は最高で66度までしか上がっておらず、でかいクーラーの性能を遺憾なく発揮している。

VR Mark

  • score
RTX 4090 RX6900XT
Cyan 7568 7569
Blue 11367 5831
Orange 16215 14864
  • Average Framerate
RTX 4090 RX6900XT
Cyan 164.98 165.00
Blue 247.81 127.12
Orange 353.48 324.03

なんかCyanはディスプレイのフレームレートでリミットがかかっているみたい?で、Orangeでは軽すぎてあまりGPUを十分に使えていない様子。

BlueではRX6900XTの倍近いスコアとフレームレートを叩き出しており、圧倒的な性能を見せている。

PC Mark

  • Total
    • RTX4090: 8147
    • RX6900XT: 8715

なんかRTX4090のほうが低くなってしまった……。理由はよくわからん。

FF14

RTX 4090 RX6900XT
Score 34671 21259
Avg. FPS 239.3 141.9
Min. FPS 93 81

5800x3d+6900XTの時点でもFF14の3440x1440解像度プレイには十二分だと思っていたが、更にそれを大きく上回る性能を見せた。さすが最新GeForceFF14に強い5800X3Dの組み合わせと言ったところか。

ちなみに、4090でのみ4k(3840x2160)のベンチを取ってみたが、スコア28195、平均フレームレート188.0、最低フレームレート93と十分すぎる結果となった。もう8Kモニタにでもしない限り、FF14のプレイに30万もする最上位GPUを買う必要はないだろう。

機械学習ベンチ

数値は160x160x3の画像70998枚を入力としたEfficientnetB0モデルの学習をTensorFlow2.10.0で行った際の1エポックあたりのトレーニング時間(秒)です。

CUDAは11.8、CuDNNは8.6をインストールし、特に問題なくTensorflowから認識されました。

2022-10-17 01:16:50.289042: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 21351 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:2b:00.0, compute capability: 8.9
RTX 4090 P100 ratio
Batch size 16 171 423 x2.47
32 96 275 x2.86
128 62 231 x3.72
128,
mixed precision
44 293 x6.65

KaggleノートブックでP100でトレーニングしたものが"P100"の方で示している時間で、ディスクIOの速度やCPUがだいぶRTX4090のほうが良いはずなので、必ずしもGPUの性能だけが反映されているわけではないのに注意してください。

とは言え、しっかりと3世代前のサーバー用GPUを圧倒する速さでトレーニングができており、これであればローカルでもコンペ用のモデル学習を行うことができるだろう。なぜかP100のほうでMixedPrecisionの時間が伸びてしまっているが、原因は調査中。

ちなみに学習中のGPU使用率は70%前後で、消費電力はGPU-ZのBoard Power Draw読みで150~180W程度、温度はHot Spotで55℃いかないくらい。全然常識的な数字。

気になるのは同じ24GBのVRAMを持つRTX3090(Ti)との比較であるが、残念ながら持っていないのでここでは紹介できない。流石に中古も視野に入れるとコスパ的にはRTX3090のほうが個人で買える機械学習GPUのベストチョイスになりそうですが、値は張るものの上記の通りきちんと新世代らしい性能を示しているので買っても損はない、と(半分自分に言い聞かせるようですが)思います。