😇

AMD GPUでの機械学習環境構築について

2 min read

kstm Advent Calendar 2021

この記事は、kstm Advent Calendar 2021の12/18の記事です。ひとつ前にB2の方のレベルの高いセキュリティの話が来た後にこんな内容の薄い記事が来て申し訳ないです。こんな記事よりももっと面白い先輩方や同期、後輩の記事が載っているので是非読んでいってみてください。

AMD GPUで機械学習を使う

AMD GPUと言えば、今はライバルであるNvidia GPUと比べて利点が少ないです。少し前は、Fluid Motionを使うと24フレーム・30フレームの動画ファイルやYouTube動画をFPSが高いように見せるという機能(使ったことないし、今では廃止されたようですが...)や、FreeSync対応モニターはG-SYNC対応モニターと比べて価格が安い(今ではFreeSync対応モニターでG-SYNCを利用できるようになりましたが...)などの利点がありました。えーっと...。でもNvidia GPUより映像が美しいらしいです...。あとは、中古で買おうとしたときに初期費用が安くなることがあるかも知れません。そんなAMD GPUですが、深層学習を導入しようとしたときにすこしハマったことがあるのと、ちょっとアドベントカレンダーに参加してみたい気持ちもあってここで記事を書こうと思いました。AMD GPUが余ってる方ですとか、いろんなハードウェアで機械学習(のトレーニング)をしてみたいという方向けの環境構築の内容になっています。

方法

ざっと調べた感じ、以下のような方法がありました。

  1. TensorFlow with DirectML
  2. PyTorch for AMD ROCm Platform
  3. PlaidML

ここではTensorFlow with DirectMLとPyTorch for AMD ROCm Platformについて説明します。

TensorFlow with DirectMLの場合

DirectMLとは機械学習のための低レベルのAPIでDirectX 12 互換のすべてのハードウェアでサポートされています。要するにDirectX 12を使用できるすべてのハードウェアがTensorFlowを使ってWindows上で機械学習できるようになります。ただし、TensorFlow自体のバージョンが少し古いものでした。

DirectML with TensorFlowをインストールする

Enable TensorFlow with DirectML on Windowsの通りなのですが、一応ここでも説明します。

要件

WindowsでTensorFlow with DirectMLを有効にするための要件です。

  • Windows 10 バージョン 1709 (ビルド 16299 以降)
  • 最新のGPUドライバー
  • Python 3.5、3.6、または3.7環境とpip

WSLの場合はもっと要件が厳しいです: Enable TensorFlow with DirectML in WSL

インストール

公式ではMinicondaで仮想環境を作ることが推奨されていますが、環境ができればpip install tensorflow-directmlを実行するだけです。

PyTorch for AMD ROCm Platformの場合

公式のインストール手順はここです。pipで指定のバージョンをインストールするだけですが、2021/12/18時点ではROCm 4.2でのみ利用できて、ROCm 4.2は古いので対応しているOSが古かったです。(https://github.com/RadeonOpenCompute/ROCm/tree/roc-4.2.x#rocm-installation-updates)。

まとめ

現時点ではAMD GPUで深層学習は出来なくはないですが、ソフトウェアやOSが古いものしか利用できなかったのであまりお勧めできません。もし余裕があれば、PlaidMLも試してこの記事に追記したいと思います。

Discussion

ログインするとコメントできます