背景
- 最終的には自前で OpenCL なりで BERT, GPT-3 など学習できるようにしたいが, まずは動作確認を兼ねて既存で動くものがほしい
- クロスプラットホームで動かしたい
を試します.
環境
- Linux Ubuntu 18.04 HWE(kernel 5.4)
- AMD GPU(amdgpu-pro driver)
- Radeon VII あたり.
- Navi では動かない. https://plaidml.github.io/plaidml/ の対応リストに Navi は無い.
- miniconda
PlaidML setup and keras-transformer run
とくに難しいことはありません.
conda で環境を作り, pip install するだけです.
を参考に必要なパッケージを pip で入れましょう.
あとは環境変数に KERAS_BACKEND=keras.backend.plaidml
を指定して実行するか,
実行 python スクリプトで明示的に指定します.
experimental.json が見つからない場合
たぶん python と pip が別の python 環境を使っていて, 関連するライブラリが見つかっていない(ファイルパス問題)と思われます.
python -m pip install plaidml-keras
と, python -m pip
でパッケージインストールするのがよいでしょう.
Issues
RX5700(Navi) + amdgpu-pro OpenCL では, plaidml-setup でデバイスを認識してくれませんでした.
あんまり新しすぎるのはだめなのかも?
(Radeon VII は認識しました)
No multi GPUs
PlaidML は複数 GPU サポートしていません.
大規模学習したいときはやはり自前でライブラリを書くことになるでしょう.
TODO
- PlaidML は MLIR ベースになるのが予定されています. いずれは MLIR -> SPIR-V -> OpenCL(or Vulkan) 実行とかもできるのでしょうか