見出し画像

自作PC GPUの選び方

ディープラーニング・画像解析向け自作PC指南書 5

 ディープラーニングの要ともいえるGPUの選び方について解説する。最も重要なのはメモリ容量で、これが不足すると学習が上手くいかなくなる場合がある。またGPUは大変高額であるため、より一層の慎重な検討が必要だ。今回は、GPUの性能で注目すべきポイント、必要とするメモリ量の見積もり方、候補となるGPU、他パーツで注意すべきことを解説する。

GPUの性能で注目するポイントは?

 GPUでまず注目すべき性能は「コア数」と「メモリ容量」である。CPUと同様、「コア数」とは、1つのGPUに何個のGPUコアを備えているのかを示している。多いほど並列処理数が増加するので実行速度が向上する。CPUでは高々30個程度であるが、GPUになると5000個を超えるものも存在する。ディープラーニングでは膨大な数の並列計算を必要とされるため、これがGPUはディープラーニングの要といわれる理由である。「メモリ容量」とはニューラルネットワークのパラメータ、画像データ、計算結果を一時的に保存しておける容量のことである。膨大な計算をするディープラーニングではこの「メモリ容量」が律速になりやすく、容量が少ないと複雑なニューラルネットワークや大きな画像を大量に扱う場合、メモリ不足(out of memory exception)となってしまう。そのため、GPUの性能の中で最も考慮すべきポイントである。

必要なメモリ容量の計算

 では必要なメモリ量をどうやって計算すればよいのだろうか?ディープラーニングで必要とされるメモリ容量は以下の式で求められる。

画像2

バッチサイズとはモデルに一度に入力するデータの数のことである。パラメータは重み (weight)やバイアス (bias)のこと。後半で2倍しているのは入力データの計算のためのパラメータ・ニューロンだけではなく、誤差逆伝播の計算のために、パラメータ・ニューロンと同じ数の計算結果を記憶しておく必要があるため。最後に4倍しているのは、データがすべてfloat型であり、float型は4 byte (32bit)であるから。実際の計算はこちらに詳しく書いてある。VGG-16のニューラルネットワークを使って224×224サイズの画像をバッチサイズ=8で学習するには、約2GBのメモリが必要になる。バッチサイズが2倍の16ならば約4GB、4倍の32ならば約8GBとなる。バッチサイズは学習結果に影響を及ぼすハイパーパラメータなのでいろいろな値を試す必要がある。GPUのメモリ量を計算する際には余裕を持って大きめの値にしておきたい。

結局どれを買えばいい?

 下記に2020年6月時点での候補をリストアップした。

画像2

本格的にディープラーニングをおこなうのであれば、メモリは11GBは欲しい。RTX2080i以上が候補となる。TITAN RTX、RTX2080iのコスパの良さが目立つが、TITAN RTXはPCケース内に排熱する内排気なのでケースファンなどを増設して冷却機能を強化する必要がある。どのGPUにすべきかは使用ケースによるが、TITAN RTXあるいはRTX2080iをまずは1台購入し、必要とあればGPUを増設するというのも手だ。また、実際にどれくらいのメモリ量が必要とされるのかをGoogle Colabの無料環境で検討しておくこともオススメする。Google ColabはGPUを12GBまで無料で利用することができるため、実際に利用してみてメモリが足りるかを検討することができる。

他パーツで注意すべきポイント

 GPUを決めたことによって影響を受けるパーツは、「PCケース」・「電源」・「マザーボード」である。「PCケース」については、GPUの大きさ・数および外排気か内排気かという点を考慮する。高性能なGPUは巨大なため、多くのスペースを必要とする。GPUを複数台積む場合はなおさらである。また、GPUの発熱も考慮しなければならない。小さなPCケースだと熱がこもりやすいため注意が必要だ。GPUには熱をPCケースの外に直接排熱する(外排気)ものとPCケース内に排熱する(内排気)ものとがある。内排気の場合、PCケース内にファンを増設するなどの冷却対策が必要である。「電源」については、GPUの消費電力と補助電源のコネクタ数(PCI Expressコネクタ: 6+2pin)を考慮する。将来的にGPUの増設を考えているならば余裕を持っておきたい。「マザーボード」に関しては、GPUとの接続に必要なバスインターフェース(PCI Express 3.0 x16)の数とNV Link対応の有無である。GPUが2台までなら通常のマザーボードで対応できるが、3台以上のGPUを乗せられるマザーボードは少ないので注意が必要だ。NV Linkとは全く同じGPUコアを持つGPUを1枚のように使うために用意された機能である。ただし、単純に性能が2倍になるわけではなく、効果的かは疑問が残る(リンク)。

参考サイト


この記事が気に入ったらサポートをしてみませんか?