たつをの ChangeLog : 2020-03-30

手持ちの MacBook でも GPU 使った Deep Learning がやりたい。

MacBook Pro (13-inch, 2017) の GPU は
"Intel Iris Plus Graphics 640 1536 MB"、
無印 MacBook (12-inch, 2017) のは
"Intel HD Graphics 615 1536 MB"。

MacBook Pro (13-inch,2017) GPU

どちらも NVIDIA ではないで CUDA とかダメ。
でも PlaimdML を使えば大丈夫とのことでやってみたら無事動きました。

以下、Python の環境づくりからスタートして、PlaimdML で GPU 設定して、 Keras でのベンチマークまでの流れ。

pyenv


% brew install pyenv

to "~/.zshrc":
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

参考:

Anaconda


pyenv install -l | grep anaconda
pyenv install anaconda3-[最新バージョン]
pyenv global anaconda3-[最新バージョン]

to "~/.zshrc":
export PATH="~/.pyenv/versions/anaconda3-[最新バージョン]/bin:$PATH"

conda create -n plaimd-test
conda activate plaimd-test
conda init zsh

参考:

PlaimdML インストール


% pip install plaidml-keras plaidbench

"plaidml-setup" で CPU, GPU を切り替える (MacBook Pro)。
% plaidml-setup

PlaidML Setup (0.7.0)

Thanks for using PlaidML!

[...]

Default Config Devices:
   llvm_cpu.0 : CPU (via LLVM)
   metal_intel(r)_iris(tm)_plus_graphics_640.0 : Intel(R) Iris(TM) Plus Graphics 640 (Metal)

Experimental Config Devices:
   llvm_cpu.0 : CPU (via LLVM)
   opencl_intel_iris(tm)_plus_graphics_640.0 : Intel Inc. Intel(R) Iris(TM) Plus Graphics 640 (OpenCL)
   metal_intel(r)_iris(tm)_plus_graphics_640.0 : Intel(R) Iris(TM) Plus Graphics 640 (Metal)

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

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

Multiple devices detected (You can override by setting PLAIDML_DEVICE_IDS).
Please choose a default device:

   1 : llvm_cpu.0
   2 : opencl_intel_iris(tm)_plus_graphics_640.0
   3 : metal_intel(r)_iris(tm)_plus_graphics_640.0

Default device? (1,2,3)[1]:

PlaimdML ベンチマーク


ベンチマーク実行。
% plaidbench keras mobilenet

結果のまとめ (MacBook Pro):
Inference Latency
GPU (metal_intel(r)_iris(tm)_plus_graphics_640.0)20.49 ms
CPU (llvm_cpu.0)120.75ms
[Exprimental] GPU (opencl_intel_iris(tm)_plus_graphics_640.0)19.63 ms

GPUはCPUよりも6倍はやい。

結果のまとめ (無印MacBook):
Inference Latency
GPU (metal_intel(r)_hd_graphics_615.0)30.02 ms
CPU (llvm_cpu.0)167.97 ms
[Exprimental] GPU (opencl_intel_hd_graphics_615.0)30.78 ms

GPUはCPUよりも5〜6倍はやい。

ベンチマーク以外のタスクだとどうなのか気になるところだけど、まあそのうちに。

参考:

さくらインターネットのレンタルサーバで screen をインストールして使う方法。
2020年3月の状況。
備忘録として。

雪と桜 2020/3/29 IPhone

OS調査:
% uname -a
FreeBSD wwwXXXX.sakura.ne.jp 9.1-RELEASE-p24 FreeBSD 9.1-RELEASE-p24 #0: Thu Feb  5 10:03:29 JST 2015     root@wwwXXXX.sakura.ne.jp:/usr/obj/usr/src/sys/SAKURAXXXX  amd64

パッケージ置場:
http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/9.1-RELEASE/

取得:
wget http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/9.1-RELEASE/packages/sysutils/screen-4.0.3_14.tbz

インストール: root じゃないゆえの警告など出るが無視。
pkg_add -P ~/opt screen-4.0.3_14.tbz

下記のパスにバイナリできる。
$HOME/opt/bin/screen

.zshrc などにパス追加。
PATH=$PATH:$HOME/opt/bin

.screenrc に最低限の設定。
# エスケープキャラクタがデフォルトの C-a だと emacs に干渉するので C-z に変更
escape ^Zz

昔のメモ(2005年):

仮想画面の生成・切替とアタッチ・デタッチが分かればとりあえず使える。

以上。

たつをの ChangeLog
Powered by chalow