以前、このような事がありました。
こうなった(未経験のR触り始めた)経緯:
— こぎつねまる@C95の次は…? (@kz_lil_fox) 2018年11月28日
(某フォーラムにて)
「AMDはクソ!TF移植したと言ってもkerasみたいな高級インターフェース無いじゃん!」
私「ご冗談を。kerasなんてただのラッパーなんだからTF動けば動くでしょ?」
「んなわけない、kerasOnRにドキュメントが無いじゃん!」
私(Rか…)
現在、RStudioのページにはGPUを利用する項目としてはNvidia環境のものしか記述されていないため、AMD環境で利用できないと思うのは当然だと思います。
とは言え、Python環境でのTensorFlow(Keras)をラッピングして利用するRStudio/tensorflowでROCm版Tensorflowが利用できないとはとても思えないため、ちょっと調査しました。
TL,DR;
RStudioで利用するKerasはシステムのPythonを利用してTensorflowをインストールする仮想環境を作成し、その上にKerasをラッピングしているため、Rstudio/Tensorflowにてコンパイル済みWheelをインストールすればAMDGPU環境でもKerasをGPUから利用することが出来ます。
Rstudio環境にTensorflowをインストールする
RStudioでTensorFlowをインストール場合、Tensorflowライブラリーの関数install_tensorflow()を利用します。
通常は関数内の引数から数値をパースしてインストールするパッケージを決定していますが、コンパイル済みWheelパッケージを
引数に与える事もできます
library(tensorflow)
install_tensorflow(version = "https://files.pythonhosted.org/packages/27/5a/bb674108c94a2e5ac2ad0c2aa6cbec6de9ae248c3d1858424b3eea38eddf/tensorflow_rocm-1.12.0-cp27-cp27mu-manylinux1_x86_64.whl")
その後、Kerasを実行するとAMD環境にて、RStudio/Kerasを利用することが出来ます。
はまりどころ、その他注意点
RStudioが利用するPython仮想マシンは、引数を与えない限りシステム環境のPythonを(RStudio向けの仮想環境を作ったうえで)利用します。
システムのPythonバージョンに気を付けてWheelを選択してください。
また、今回はインストールまでで動作の検証は不十分である点、ご理解ください。
ハックしてみた
なお、install_tensorflow()関数をハックすることでWheelを直接渡さずともインストールする改造をされた方もおりました。
とりあえず、こんな感じで実装しました。インストールできること以外何も確認していませんがvenvとcondaどちらでもインストールできると思います。https://t.co/MrMMCGno6v
— StarCraft (@Star_Craft) 2018年11月30日
続きは…?
以下Rで何かやってみようかと思います