2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Radeonを用いてPlaidMLを利用するためにAnaconda3の仮想環境を構築する

Last updated at Posted at 2019-12-01

はじめに

公式のgithubのドキュメントを参考にAnaconda3の仮想環境にPlaidMLを構築していたら、一部はまった部分があるので共有しておく。

構築環境

  • Macbook pro 15インチ
  • macOS Catalina 10.15.1
  • Radeon pro 555x
  • Anacond3 2019.10

手順

公式ドキュメントを参考に進める.

  • Anacondaの仮想環境を作る.--name以降は好きな名前で良いが便宜上plaidmlとしておく.また、pythonのバージョンはopencvを使うので3.5としてある.
conda create --name plaidml python=3.5
  • 作成した仮想環境を活性化する.
conda activate plaidml
  • plaidml-kerasとplaidbenchをインストールする。condaではインストールできないので、ここではpip3を用いている。
pip3 install plaidml-keras plaidbench
  • 環境変数を定義する(公式ドキュメントにはない作業).
export PLAIDML_NATIVE_PATH=/Library/Python/3.7/lib/libplaidml.dylib
export RUNFILES_DIR=/Library/Python/3.7/share/plaidml

※人によってはlibplaidml.dylibとplaidmlが上記のパスにない恐れがあるため、次の作業でエラーがでたらfindなどを利用してパスを探し環境変数を上書きする.

  • 以下のコマンドを実行し、アクセラレータを選択する.(上記の環境変数を設定しなければここでエラーが出る)
plaidml-setup
  • 以下のように表示されたらyを押して進める.
PlaidML Setup (0.6.4)

Thanks for using PlaidML!

Some Notes:
  * Bugs and other issues: https://github.com/plaidml/plaidml
  * Questions: https://stackoverflow.com/questions/tagged/plaidml
  * Say hello: https://groups.google.com/forum/#!forum/plaidml-dev
  * PlaidML is licensed under the Apache License 2.0
 

Default Config Devices:
   metal_intel(r)_uhd_graphics_630.0 : Intel(R) UHD Graphics 630 (Metal)
   metal_amd_radeon_pro_555x.0 : AMD Radeon Pro 555X (Metal)

Experimental Config Devices:
   llvm_cpu.0 : CPU (LLVM)
   opencl_intel_uhd_graphics_630.0 : Intel Inc. Intel(R) UHD Graphics 630 (OpenCL)
   opencl_cpu.0 : Intel CPU (OpenCL)
   opencl_amd_radeon_pro_555x_compute_engine.0 : AMD AMD Radeon Pro 555X Compute Engine (OpenCL)
   metal_intel(r)_uhd_graphics_630.0 : Intel(R) UHD Graphics 630 (Metal)
   metal_amd_radeon_pro_555x.0 : AMD Radeon Pro 555X (Metal)

Using experimental devices can cause poor performance, crashes, and other nastiness.

Enable experimental device support? (y,n)[n]:

  • Radeonを使いたいので4を押してenter.(人によっては4ではない可能性があるので要確認)
Multiple devices detected (You can override by setting PLAIDML_DEVICE_IDS).
Please choose a default device:

   1 : llvm_cpu.0
   2 : opencl_intel_uhd_graphics_630.0
   3 : opencl_cpu.0
   4 : opencl_amd_radeon_pro_555x_compute_engine.0
   5 : metal_intel(r)_uhd_graphics_630.0
   6 : metal_amd_radeon_pro_555x.0

Default device? (1,2,3,4,5,6)[1]:
  • yを押してセーブする.
Tile code:
  function (B[X,Z], C[Z,Y]) -> (A) { A[x,y : X,Y] = +(B[x,z] * C[z,y]); }
Whew. That worked.

Save settings to /Users/hondatakumi/.plaidml? (y,n)[y]

ベンチマーク

  • Radeonが使われているかテストするために以下のコマンドを実行する.
plaidbench keras mobilenet

※初回のみベンチマーク用のデータセットのダウンロードが行われる。ダウンロード後は以下のように表示される.

  • ベンチマークの結果が表示される.
Running 1024 examples with mobilenet, batch size 1, on backend plaid
INFO:plaidml:Opening device "opencl_amd_radeon_pro_555x_compute_engine.0"
Compiling network... Warming up... Running...
Example finished, elapsed: 0.500s (compile), 14.828s (execution)

-----------------------------------------------------------------------------------------
Network Name         Inference Latency         Time / FPS          
-----------------------------------------------------------------------------------------
mobilenet            14.48 ms                  8.76 ms / 114.19 fps
Correctness: FAIL, max_error: 80.5865478515625, max_abs_error: 0.48130014538764954, fail_ratio: 0.929

あとがき

なぜかlossやerrorががやたら高いがRadeonはちゃんと使われているっぽい.アクセラレータを選択する場面で4ではない数字を選べばRadeon以外でもベンチマークを実行できます.

追記(12/2)

  • アクセラレータを選択する際に6を押して使用するアクセラレータをmetal_amd_radeon_pro_555x.0にしてベンチマークを実行した結果
Running 1024 examples with mobilenet, batch size 1, on backend plaid
INFO:plaidml:Opening device "metal_amd_radeon_pro_555x.0"
Compiling network... Warming up... Running...
Example finished, elapsed: 1.922s (compile), 8.305s (execution)

-----------------------------------------------------------------------------------------
Network Name         Inference Latency         Time / FPS          
-----------------------------------------------------------------------------------------
mobilenet            8.11 ms                   0.00 ms / 1000000000.00 fps
Correctness: PASS, max_error: 1.675534622336272e-05, max_abs_error: 7.674098014831543e-07, fail_ratio: 0.0

compile以外の時間とロス・エラーも下がってるのでmetal_amd_radeon_pro_555x.0を選択するのが吉ですね。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?