追記 2018/10/06
Leela Zeroのコンパイル手順が古くなっています。
GitHub - gcp/leela-zero at nextの記述に従ってください。
GPUEaterというGPUサーバーレンタルサービスがあります。
RX Vega 56などハイエンドのPCやワークステーションに搭載されるGPUマシンをお手頃な値段で時間貸ししてくれます。RX Vega 56の場合、1時間$0.4794(≒53円)。
ここではAMDのGPUマシンを借りて、Leela Zero、Lizzieをインストールし、VNCで接続して遊ぶ手順を公開します。
手順
GPUEaterでアカウントを作る。
省略^^:
インスタンスを生成する。
省略^^:
ここでの手順はAMD GPU用なので、インスタンスはa1.rx580, a1.vega56, a1.vegafeのいずれかを選んでください。
ImageはデフォルトのAMD-ROCm 1.8 192+TensorFlow1.8 Ubuntu 16.04 x64ではなく、Ubuntu 16.04 x64を選択してください。ROCmのOpenCLではLeela Zeroが正常動作しませんでした。(a1.vega56インスタンスで確認。)
追記(2018/08/07)
今日、Leela Zero nextブランチ488de43コミットで確認したところ、AMD-ROCm 1.8 192+TensorFlow1.8 Ubuntu 16.04 x64イメージで動きました。なのでこのイメージを使えば以下の「OpenCLのインストール」は必要ありません。
488de43コミットはhalf float auto detectionもサポートしています。ROCm OpenCLドライバはVegaのhalf floatがサポートされているので、amdproドライバと比較してLeela Zeroのパフォーマンスが1.5倍(netbench比較)になりました。
追追記(2018/08/08)
動くのは特定ウェイト(62b5417b64c46976795d10a6741801f15f857e5029681a42d02c9852097df4b9)のようで、best-networkでは動かないことを確認しました。イメージは変わっていないので、ROCmドライバにバグがあって、地雷を踏むウェイトとそうじゃないウェイトがあるようです。
SSHで接続してインストール作業をする。
SSH接続手順は省略^^;
OpenCLのインストール
以下のスクリプトを走らせてください。
# OpenCLのインストール apt update # AMDのサイトから直接ダウンロードできなかったのでDropboxに落としたものをダウンロード wget https://www.dropbox.com/s/r1totpsb5e5z1lb/amdgpu-pro-18.20-606296.tar.xz apt install xz-utils tar -Jxvf amdgpu-pro-18.20-606296.tar.xz cd amdgpu-pro-18.20-606296 dpkg --add-architecture i386 ./amdgpu-install --opencl=pal #実行途中でインストールの意思を聞かれるのでYを入力 reboot
最後にrebootするのでSSHが一旦切れます。再度SSHで接続してください。
OpenCLがインストールされたか確認したい場合、以下を実行してください。
apt install -y clinfo && clinfo
Leela Zeroのインストール
以下のスクリプトを実行してください。ウェイトはELF OpenGo移植ウェイトを選びました。
git clone -b next http://github.com/gcp/leela-zero.git cd leela-zero/src apt install -y g++ libboost-dev libboost-program-options-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev make cd .. wget http://zero.sjeng.org/networks/62b5417b64c46976795d10a6741801f15f857e5029681a42d02c9852097df4b9.gz
Leela Zeroが動くか確認したい場合、以下を実行してください。
src/leelaz -g --weights 62b5417b64c46976795d10a6741801f15f857e5029681a42d02c9852097df4b9.gz
a1.vega56dでのnetbenchの結果は以下の通りでした。
1600 evaluations in 4.59 seconds -> 348 n/s
VNC関連のインストール
以下のスクリプトを実行してください。
apt install -y --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal apt install -y vnc4server
(軽量なデスクトップにしてインストール時間を短くしたかったのですが、それだと以下に出てくるxstartupがうまく設定できなかったのでUbuntu 1604のデフォルトデスクトップUnityを使いました。Unityは開発中止になっているので、せめてGnomeのほうがよかったかもしれません。軽量なデスクトップでいいものがあれば設定方法含めて教えてください。)
VNCの初期設定のために以下を実行してください。(これはサーバー起動コマンドです。)
vncserver :1
一旦サーバーは停止させます。
vncserver -kill :1
.vnc/xstartupというファイルが生成されますので、中身を以下に変えてください。
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup #[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources #xsetroot -solid grey #vncconfig -iconic & #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & gnome-session & gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal &
xstartupの中身を変えたら、再度VNCサーバーを起動します。
vncserver :1
Lizzieのインストール
以下のスクリプトを実行してください。
apt install -y default-jre wget https://github.com/featurecat/lizzie/releases/download/0.5/Lizzie.0.5.Mac-Linux.zip unzip Lizzie.0.5.Mac-Linux.zip cd lizzie # config.txtの設定 mv ~/leela-zero/src/leelaz . mv ~/leela-zero/62b5417b64c46976795d10a6741801f15f857e5029681a42d02c9852097df4b9.gz network.gz
以上でインストール作業終了です。