LoginSignup
6
4

More than 1 year has passed since last update.

NZXT H1 と RTX A4000 でディープラーニング(とゲーム)用自作PC組みました

Last updated at Posted at 2021-07-27

はじめに

 ディープラーニングとゲーム用に新しいPCが欲しかったのですが、どうしてもNZXT H1で組みたかったので、予算と要望(ディープラーニングとゲームができる)に合うGPUを探した結果RTX A4000で組んだという記事です。
 なお、私は自作PC初心者ですので暖かい目で見守ってください。

 以下の人向けになります。

  • NZXT H1を組むならどんなGPUがいいか知りたい
  • RTX A4000のディープラーニング性能はどんなものか知りたい
  • RTX A4000のゲーム性能はどんなものか知りたい

 以下の内容は含まれません。

  • NZXT H1の組み立て過程
    こちらが非常に参考になりました。

PC構成

名前 価格[円]
OS Windows 10 Pro 余ったライセンス使用
ケース NZXT H1 39,800
電源 ケースに付属 -
簡易水冷CPUクーラー ケースに付属 -
CPU Ryzen 5 5600X 35,976
GPU NVIDIA RTX A4000 128,040
マザーボード ASUS ROG STRIX B550-I GAMING 22,977
メモリ Crucial 32GB DDR4-3200 UDIMM 23,069
SSD Corsair M.2 SSD MP600 1TB 18,458
HDD TOSHIBA MQ04ABD200 2TB 6,111
合計 274,431

ケース: NZXT H1

IMG_20210727_184439.jpg
 確定枠です。発火の恐れがあり販売が見合わせられておりましたが、問題が解決され最近販売が再開したので組んでみました。コンパクトでカッコいいですよ!PS5と同じようなサイズ感。
 以下のような特徴があります。

  • Mini ITXケース
  • 電源、簡易水冷CPUクーラー、PCIe 3.0 ライザーカード付き
  • 縦長のコンパクトなデザイン
  • 組み立てがシンプルで初心者にもおすすめ
  • マザーボードI/Oが下向きになっており、ケーブルを底面にコンパクトにまとめられる(抜き差しは面倒)
  • GPUサイズ:
    長さ~265mmまでは幅145mmまで
    長さ265~305mmは幅128mmまで
    厚みは2.5スロットまで
  • SATA接続SSD/HDDは2.5インチを2台まで
  • ケース上部のType-Cポートを使用するにはUSB 3.2 Gen 2の内部コネクタを備えたマザボを選ぶ必要あり

GPU: NVIDIA RTX A4000

IMG_20210727_184904.jpg
 正面パネルを外すと画像のようになります。
 最近はGeForce RTX 30シリーズが続々登場して、かなりGPUの選択肢がありますよね。ゲーム用途ならGeForce一択だと思いますが、ディープラーニング用途を考えると、今年順次発売したRTX Aシリーズ(旧Quadroシリーズ)も選択肢に入ってきます。
 以下にGPUの簡単な比較を行っています。10万円台では3080が最もCUDAコア数が多いですが、NZXT H1に入るかどうかかなり微妙なところです。日本では、3070, 3070 Tiが少し高めな上、高騰もしているので、少し背伸びすればA4000が買えるくらいになっています。それでいてA4000はメモリが16GBあるのでディープラーニング用途での使い勝手は良いのではないでしょうか。また、最大消費電力の観点ではA4000が飛びぬけてエコです。
 20万円台では3090のCUDAコア数、メモリが多いですが、確実にNZXT H1に入らないため、A4000以上の性能が欲しければA5000を選択することになるでしょう。

型番 RTX A4000 RTX 2080 Ti RTX 3070 Ti RTX 3080 RTX A5000 RTX 3090
CUDAコア数 6144 4352 6144 8704 8192 10496
メモリ 16GB 11GB 8GB 10GB 24GB 24GB
最大消費電力 140W 250W 290W 320W 230W 350W
価格帯[円]※1 13万 掲載なし 10万 15万 28万 25万
H1に入るか △※2 ×

※1 RTX A4000, RTX A5000はオリオスペックで販売されている価格、それ以外は2021/7/26時点の価格.comの価格を参考。RTX 2080 Tiのみ出品がなく掲載なしだった。
※2 数値だけ見るとギリギリNZXT H1に入りそうなグラフィックボードはある(実際に試したわけではない)が、多くのものは入らないと思われる。

マザーボード: ASUS ROG STRIX B550-I GAMING

 第3世代Ryzen対応で、USB 3.2 Gen 2の内部コネクタ付きのMini ITXマザーボードです。PCIe 4.0のM.2ソケットがあります。Wifi, Bluetoothも使えます。BluetoothはWifiアンテナをつなげないと使えませんでした(Reddit参考)。
 また、ASUS製で、BIOSの設定からGPUのPCIe 4.0を3.0にダウングレードできることもポイントです。NZXT公式Twitterによると、NZXT H1のライザーケーブルは3.0のため、ダウングレードしないと動作が不安定になることがあるそうです。また、こちらのブログによると、ASRock製はPCIeのダウングレード手順が煩雑なようです。

メモリ

 Mini ITXのため、メモリスロットが2つしかありません。16GBを2本挿した後に増設したくなったとき大変なので、32GBを1本にしました。

SSD: Corsair M.2 SSD MP600 1TB

 せっかくなのでPCIe 4.0対応のSSDを選びました。4.0対応でもっと安いものがありましたが、取り寄せが数か月後でした。

ディープラーニング性能

 kerasでMNISTデータセットを15epoch学習する時間を計測します。CPU: Ryzen 5 5600X, GPU: RTX A4000, GPU: Tesla T4(Colaboratory)で比較を行った結果を示します。
 Tesla T4はColaboratoryで割り当てられるGPUの中で最新だそうなので、それより早いというのはかなり良いのではないでしょうか。

Ryzen 5 5600X RTX A4000 Tesla T4
学習時間(15epoch) 455.0[s] 36.3[s] 59.7[s]

 ローカルで実行するにあたり以下のバージョンをインストールし、動作しました。Tensorflowのインストールはこちらが大変参考になります。

  • Python: 3.8.0
  • Tensorflow: 2.5.0
  • CUDA: 11.3.1
  • cuDNN: 8.2.1

 動かしたコードは以下になります。ほぼこちらからのコピペです。

import time

import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, MaxPooling2D, Conv2D
from tensorflow.keras.callbacks import TensorBoard


(X_train,y_train), (X_test, y_test) = mnist.load_data()

X_train = X_train.reshape(60000,28,28,1).astype('float32')
X_test = X_test.reshape(10000,28,28,1).astype('float32')

X_train /= 255
X_test /= 255

n_classes = 10
y_train = keras.utils.to_categorical(y_train, n_classes)
y_test = keras.utils.to_categorical(y_test, n_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), activation='relu', input_shape=(28,28,1)) )
model.add(Conv2D(64, kernel_size=(3,3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.5))
model.add(Flatten())          
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(n_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

start = time.time()

model.fit(X_train, y_train, batch_size=128, epochs=15, verbose=1, validation_data=(X_test,y_test))

elapsed_time = time.time() - start
print ("elapsed_time:{0}".format(elapsed_time) + "[sec]")

RTX A4000で学習中はこんな感じです。
スクリーンショット 2021-07-27 211013.png

ゲーム性能

 FF15ベンチマークを行いました。高品質、1920×1080で実行したところ9392でとても快適でした。また、80~90fpsくらいでした。
 こちらのベンチマーク結果と比較すると、大体3060から3070の間の性能でしょうか。当たり前ですが値段の割にゲーム性能は高くないです。しかし、ほとんどのゲームで60fps以上出るでしょう。
スクリーンショット 2021-07-27 212353.png

おわりに

 お金に余裕があったらRTX A5000買いたかったなぁ。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4