概要
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)を入手することができたのであった。
まだあまり検証が十分ではないものの、簡単なレビューと3D Mark系、FF14のベンチマークと簡単なCNNのトレーニング時間の計測を行ってみたので、その結果をまとめてみる。なお、DLSSのような(あくまでベンチを取る上で)しゃらくさい機能が関係するベンチは取っていない。
まとめ
- わかっていたことだがRTX4090はクソでかい。リファレンスのRX6900XTでもちょっとでかいと思っていたが、それより2回りくらいでかい。
- 電源は流用しているので12VHPWRとPCIe8ピンx4の変換ケーブルも使うこととなり、高さも思った以上に嵩む。ケースはミドルタワーのCM690 IIIだがかなりの存在感というか圧迫感がある。
- サポートステイは多分必須と思えるほど重い
- RTX4090のゲーム性能は既報通り圧巻。
- RTX4090の機械学習性能もなかなかのもの。CPU, DiskIOは違う条件での比較だが、KaggleのP100と比べて同バッチサイズで2.5~4倍のCNN(EfficientnetB0)学習速度上昇が見られた。
- 更に、混合精度を使うことで実測値で1.5倍ほどの学習速度の上昇が見込めるようである。
- (2022/10/17追記)
ai-benchmark
というパッケージをRTX4090で走らせてみた記事も書きましたので興味があればどうぞ。
写真、ベンチの詳細は次の項から。
外観
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解像度プレイには十二分だと思っていたが、更にそれを大きく上回る性能を見せた。さすが最新GeForceとFF14に強い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のベストチョイスになりそうですが、値は張るものの上記の通りきちんと新世代らしい性能を示しているので買っても損はない、と(半分自分に言い聞かせるようですが)思います。