THE長文日記

長文とか短文とかのクレームは一切受け付けません

NVIDIAのGPUの代わりにAMDのGPUで学習を走らせて比較してみた

nVIDIA一社による支配は邪悪であるという観点から、どうすればAMDGPUで対抗できるか色々策を探した。


まずAMDRadeon RX570を積んだマシンを組み上げたが、さあここから先が大変。

もうnVIDIAのドライバのインストールもたいがい地獄だが、AMDのドライバは、AMDが配ってるクローズドソースのプロプラ版とオープンソースのやつと、さらにROCmと、いろいろありすぎてわからん。


そしてROCmでうごくHIP版TensorFlowがまあ動かない。動いたかなーと思ったらクラッシュする。絶望的。チップをもっと新しく高級なやつにしないとダメなのか、設定が悪いのかわからなくて本当に絶望的な感じだったのだが、そこにきて日本ギライのkeras作者、フランシス・ショレー君のご推薦するPlaidMLというのがさっそうと登場した。


no title

https://github.com/plaidml/plaidml


どうせ最近kerasしか使ってないのでkerasがうごきゃいいんだよそれで。

ところがPlaidMLはなんかまだ中途半端な対応しかしてないらしく、RNNに対応してないとか、そのままの状態だとcifar10も学習できないとか色々難があるのだが、まあまだアルファクオリティとのことなのでそこは目をつぶる。


それでもとりあえずMNISTのCNNは動いたので、なんかちょっと直せばCIFAR10もいけると思われる(カラー画像のとり扱いがたぶん違うだけだろう)。※12/30追記:おれのkerasのバージョンが悪いだけでCIFAR10も問題なく動作した。RNN意外はちゃんと使えそう。イエイ! ただしConv2d_transposeはまだ未実装なのでganはまだ学習できない。実装しよう!


さて、気になる結果だが、TITAN XpやGeForce1080Tiと比較するのはフェアじゃない上に会社の計算機が軒並み使われているので、VR用としてWindowsがインストールされているため、そのまま放置されていたかわいそうなGeForce980Ti搭載機があったので比較する。


ちなみにRX570は3万円くらいでツクモで購入した。980Tiは9万円から11万円ということを参考までに。


結果、

MNISTのCNNを12エポック回すと、GeForce980Tiは109秒かかり、Radeon RX570は120秒かかった。


1割程度のパフォーマンスダウンなら、価格差を考えるとぜんぜん戦える!!!



希望の光が、今、見えた気がするぞ!

きっと最新のVega世代にすればもっといける気がする!



そしてPlaidMLはOpenCL対応なので、仮にこの先AMDが邪悪になってもほかのプラットフォームを使うことができる。



希望の光が今見えた!!

PlaidML、頑張ってくれー!

おれも協力していきたい