2018年12月7日金曜日

PlaidML/ROCmは対応ハードに注意

私が普段使ってるDeep LearningのライブラリはKerasなのですが、 今のKerasではGPU処理にCUDAを用いているので、NVIDIAのGPUにしか対応していません。 他のライブラリでも差はあれど今のところは似たような傾向があります。

しかし最近はOpenCLというGPUを含む異種混在環境での標準規格が推進されており、 CUDAは廃れてこちらが主流になるのではないかと思っています。 既にOpenCLに対応したDeep Learning用のライブラリとしてPlaidMLが出てきており、 これを使えばIntel/AMDのGPUも使えるようになってきている。


そんな訳でそろそろ面白いんじゃないかと思って手を出してみたのですが…、甘かった。

私はAMD Radeon Vega 8 Graphicsを動かそうと試してみたのですが、認識しませんでした。 詳しい事はこちらに書きましたが、AMDに関しては購入前からCPU/GPUをきちんと選ばないと動かない事が多そうです。 NVIDIAに関しては純粋に価格帯が高めなので、まともな構成を組もうとすると10万円を軽く超える。 もう少し安く買えたらDeep Learnin専用ノートPCにしようと思ったのですが、まだまだパンピーには早かったようだ…。

PlaidML以外にもドライバ周りからDeep Learningまで総合的にサポートする基盤としてROCmというのもあります。 ただこれも現状では同様にAPUへの対応は弱いし、GPUへの対応も限定的です。 AMD Ryzen 5 2500U / AMD Radeon Vega 8 Graphicsはやはり非対応だったので、これも今回は使えませんでした。 どれも意外と採用条件が厳しいですね。


発展途上だし動かないものは仕方ないのですが、AMDGPU-Pro DriverのせいでOSを何回再インストールしたかわかりません。 AMDのドライバには懲りたので、私はもっと要件の厳しくないライブラリが欲しいです。 でもそれはドライバとの戦いであって、当分は解決されような気もします。 NVIDIAのGPUの価格帯が落ち着いてきたらDeep Learning用マシンを購入したいとは思っているのですが、ドライバ周りも含めて面倒そうな今にわざわざ買う必要はない気もして、ノートPCはひとまずCPUベースで行こうと思いました。 早く廉価なモデルでも気軽にGPGPUできる時代になって欲しいなあ。

4 件のコメント:

匿名 さんのコメント...

windows10 python3.7 でryzen5 2500u のgpuをplaidmlを問題なく使えてます。
設定がうまくいってないのではないでしょうか

marmooo さんのコメント...

WindowsはAMDのドライバがあり最初からGPUが認識さているので動きます。LinuxではAMDGPU-Pro Driverなどを利用する必要があるのですが、利用しても認識されないだけでなくOSが起動しなくなったりしますし、GPUが認識されない事によってPlaidMLも(たぶん)動きません。

kenz さんのコメント...

ROCmのハードウエア要件が厳しいにはわかりますが、PlaidMLはOpenCL1.2に対応していればなんでも動くので、タイトルの「PlaidMLは対応ハードに注意」はなんか違う気がします。

marmooo さんのコメント...

確かに「ハードがOpenCLの仕様に対応しているか」ですから「ハードの(OpenCLへの)対応状況に注意」のほうが良いかも知れません。