2020年05月15日

Windows 10上に囲碁勉強環境を構築する - 「Lizzie」基本編

もともとはコンピュータ囲碁プログラム「Leela Zero」専用のGTP対応囲碁GUIとして開発された「Lizzie」ですが、インタフェースの使いやすさが非常に高く評価されて、さまざまなコンピュータ囲碁プログラムとの組み合わせて利用できるよう工夫されてきました。
現行のバージョンでは、「KataGo」が同梱されており、はじめから「Leela Zero」と「KataGo」の二つの思考エンジンを選択して使えるようになっています。

「Lizzie」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。
・現時点の最新バージョンは「0.7.2」。

とくに棋譜を分析するということにかけては優秀で、勝率の推移はもちろんのこと、複数の候補手とそれぞれの勝率、そのあとの読み筋などをグラフィカルにわかりやすく表示させることが可能で、hatakazuのようにコンピュータで囲碁の勉強をするひとにとってはたいへん役にたつツールです。
「Leela Zero」の思考エンジンを経由するかたちで、「ELF OpenGo」などのネットワークを使って棋譜を分析することもできるのも、「Lizzie」の魅力のひとつといえるでしょう。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Windows10 Home 64bit
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD + 1TB 5400rpm HDD
--

「Lizzie」をインストールするさいの動作要件ですが、ハードウェア的には特別な要請はなく、64bit版Windowsが動いているコンピュータならたいてい問題なく動かせるはずです。
ただし「Lizzie」はようするに、「Leela Zero」や「KataGo」などのコンピュータ囲碁プログラムの思考を人間にわかりやすい方法で表現するインタフェースなので、そのコンピュータ囲碁プログラムを動かすのに要求される条件を考慮する必要があります。
メインの「Leela Zero」でいえば、NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであればGPUバージョンを動かすことができますが、それ以外の場合はCPUバージョンしか使えません。
なのでそれに合わせて、NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであればGPUバージョン「Lizzie」を、それ以外の場合はCPUバージョン「Lizzie」をインストールすることになります。
「KataGo」のほうはCPUバージョンはなく、基本的にOpenCL対応GPU(CPU組込型ふくむ)以上のコンピュータでしか動きませんが、「Lizzie」のGPUバージョンかCPUバージョンかを問わず、パッケージにふくまれているのは「CUDA」環境をあてにするCUDAバージョンではなく、より幅広いハードウェアに対応するOpenCLバージョンのほうです。
ここではとりあえず「Lizzie」をインストールして標準の状態のまま、「Leela Zero」や「KataGo」を使って対局や棋譜分析をできるようにするところまでを、基本編として記述します。
GPUだのCPUだのCUDAだのOpenCLだのにまったく興味がなく、よくわからないという場合は、以下の手順にしたがってCPUバージョン「Lizzie」(=CPUバージョン「Leela Zero」+OpenCLバージョン「KataGo」)をインストールすることをおすすめします。
「Leela Zero」や「KataGo」にべつのネットワークファイルを読みこませたり、ほかのコンピュータ囲碁プログラムと連携させたりして、「Lizzie」をより便利に利用する設定方法については、あらためて応用編でまとめていきます。

*****「Java」ランタイムインストール*****
ソフトウェア的には、「Lizzie」は「Java」ランタイムをあてにしているので、「Java」ランタイムをあらかじめインストールしておく必要があります。
Windows 10上に囲碁勉強環境を構築する - 準備編」のなかに必要な手順が記述されていますが、「CUDA」とかはどうでもいいので、とにかく「Lizzie」をインストールして「Leela Zero」を動かせればいいというむきのために、以下に「Java」ランタイムのインストール方法だけ再掲しておきます。
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

1) 「Java」ランタイムのインストール
無料Javaソフトウェアをダウンロード」ページから、「無料Javaのダウンロード」 -> 「同意して無料ダウンロードを開始」とすすんで、Windows版Javaの推奨バージョン(Version 8 Update 251)インストールファイル「JavaSetup8u251.exe」をダウンロードします。
ダウンロードに問題がある場合は、「全オペレーティング・システム用のJavaのダウンロード」ページから、明示的に必要なファイル「jre-8u251-windows-x64.exe」を選択してダウンロードしてみてください。
ダウンロードしたインストールファイルをダブルクリックすると、セットアップがはじまって「Javaへようこそ」画面が開くので、(必要におうじて「宛先フォルダを変更する」にチェックをいれて)「インストール」ボタンをクリックします。
ファイルのダウンロードがはじまって、最終確認を求められるので、問題なければそのまま「インストール」ボタンを押してすすめます。
古いバージョンの「Java」ランタイムがインストールされていた場合、この段階で検出されるので、かならずアンインストールしておきましょう。
デフォルトのインストール先は「C:\Program Files (x86)\Java\jre1.8.0_251」で、インストール完了時点でパスはとおって、すでに使えるようになっているはずです。
インストール処理が終わったら、完了画面があらわれるので、「閉じる」ボタンをクリックして終了します。


2. 「Lizzie」インストールファイルのダウンロード
「Lizzie」の現行バージョンは「v0.7.2」で、「Lizzie」GitHubレポジトリの「Releases」ページから「Lizzie.0.7.2.Windows.x64.GPU.zip」をクリックして、GPUバージョンの64bit版Windows用インストールファイル「Lizzie.0.7.2.Windows.x64.GPU.zip」を取得します。
CPUバージョンを使う場合は、「Lizzie.0.7.2.Windows.x64.CPU.zip」のほうをクリックして、CPUバージョンの64bit版Windows用インストールファイル「Lizzie.0.7.2.Windows.x64.CPU.zip」を取得します。

3. 「Lizzie」のインストール
ダウンロードしたGPUバージョン「Lizzie.0.7.2.Windows.x64.GPU.zip」ファイルもしくはCPUバージョン「Lizzie.0.7.2.Windows.x64.CPU.zip」ファイルを右クリックして「すべて展開」を選ぶと、「Lizzie.0.7.2.Windows.x64.GPU」フォルダもしくは「Lizzie.0.7.2.Windows.x64.CPU」フォルダが生成し、そのなかに「lizzie」フォルダができているはずです。
この「lizzie」フォルダをそのまましかるべき場所、たとえば「C:\Users\username\lizzie」(「username」はお使いのユーザ名)などに設置すれば、インストール作業は終了です。

4. 「Lizzie」の設定
「lizzie」フォルダ直下には「Lizzie」囲碁GUI機能を提供する「Lizzie.jar」のほか、「Lizzie」の動作を制御する設定ファイル「config.txt」や、「Leela Zero」が利用する学習ずみネットワーク「lznetwork.gz」、「KataGo」のネットワーク「katanetwork.gz」などが置かれています。
「Lizzie」と連携して動く「Leela Zero」の囲碁思考エンジン本体である「leelaz.exe」は「leelazero」フォルダ内に、「KataGo」の囲碁思考エンジン本体である「katago.exe」は「katago」フォルダ内に、独立に格納されています。
動作要件どおり「Java」ランタイムがインストールされた環境であれば、「Lizzie.jar」をダブルクリックすることで、「Lizzie」が起動するはずです。
はじめて「Lizzie」を起動する場合は、連携する「Leela Zero」が「OpenCL」チューニングを設定する必要があるため、じゃっかん時間がかかります。
左下に「Leela Zero is loading...」というメッセージが表示された状態で、しばらく待たされますが、このメッセージが消えたら「Lizzie」は問題なく起動しています。
上部メニューバーに「ファイル」「表示」「対局」「設定」「エンジン0: lznetwork.gz」と表示されていますが、この「エンジン0: lznetwork.gz」部分をクリックすると「エンジン0: lznetwork.gz」「エンジン1: katanetwork.gz」の二つの選択肢が見え、「エンジン1: katanetwork.gz」をクリックすると「Leela Zero」の代わりに「KataGo」を用いた対局や棋譜分析ができるようになります。
「KataGo」を初めて起動するときもおなじように、画面が動き出すまでにかなり時間がかかります。
かつては設定ファイル「config.txt」を直接編集して「Lizzie」の動作を制御していましたが、現在ではほとんどの項目を「Lizzie」上でグラフィカルに設定できるようになっています。

5. 「Lizzie」の使いかた
デフォルトであらわれるのは、白黒両方を手動入力するかたちで、「Leela Zero」エンジンの思考内容を表示させていく画面です。
「x」キーを押すことで、入力できるコマンドの一覧表が表示されます。
「Leela Zero」との対局を開始するためには、「n」キーを押下します。
対局条件としては手番と置石のほか、コミも六目半に設定できるようになっていますが、日本ルールに対応できるのは「KataGo」のみですこし設定の変更も必要になります(「Lizzie」応用編であつかいます)。
「Leela Zero」に棋譜分析させるためには、「o」キーを押して、分析したいSGFファイルを読みこみます。
「s」キーで保存、「i」キーで棋譜情報編集(ここでコミも変更できる)、「m」キーで手順番号表示、「.」キーで地を数えて形勢判断します。
形勢判断は「KataGo」では標準の「katago形勢」を使います(画面下部ツールバーの「katago形勢」ボタンをクリックしても同じ)が、「Leela Zero」での形勢判断(画面下部ツールバーの「形勢」ボタンをクリックしても同じ)を機能させるためには、ここから「YAZenGtp.exe」および「Zen.dll」をダウンロードして「lizzie」フォルダに置いておく必要があります。
上下矢印キーで手順操作、左右矢印キーで分岐ツリーを移動、「home」キーで棋譜の最初へ、「end」キーで棋譜の最後へ飛びます。
棋譜分析では、考えられる候補手が勝率および思考深さ(「KataGo」では目数差も)とともに表示され、候補手のどれかにカーソルを重ねるとそのあとの読み筋が表示される仕組みになっています。
「space」キーで「Leela Zero」の思考開始/停止をコントロールできるほか、「enter」キーで「Leela Zero」に次の手を打たせてみることもできます。
そのあたりの操作も、画面上部メニューバーと画面下部ツールバーからマウスで操作できるようになっています。
「Leela Zero」や「KataGo」の挙動に問題がある場合は、画面上部メニューバー「表示」 -> 「パネル表示」 -> 「Gtpコンソール」にチェックをいれて通信内容を見てみると、解決のためのヒントがつかめるかもしれません。


posted by hatakazu at 20:10| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

Windows 10上に囲碁勉強環境を構築する - 準備編

コンピュータ囲碁プログラムの「GLOBIS-AQZ」が「GitHub」上でオープンソース化されたのを機に、Windows 10コンピュータの「CUDA」環境を一新し、できるだけの囲碁勉強環境をととのえていくことにしました。
使っているコンピュータの仕様は以下のとおりで、非力ながらいちおうNVIDIA製GPUが搭載されていて、GPUバージョンのコンピュータ囲碁プログラムを走らせることができます。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Windows10 Home 64bit
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD + 1TB 5400rpm HDD
--

とりあえずの目標は「GLOBIS-AQZ」を「Lizzie」から利用できる環境を構築することですが、それと整合するかぎりで、現在利用可能ななるべく多くの選択肢をとりこんでいきたいと思います。
まずは、「GLOBIZ-AQZ」などのコンピュータ囲碁プログラムや「Lizzie」などのGTP対応囲碁GUIをインストールするまえの、準備的な作業をすませておきましょう。
ここでやっておくことは、以下のとおりです。
最終的に利用するプログラムの選択によっては不要となる作業もありますが、「GLOBIS-AQZ」を「Lizzie」から利用できる環境を構築するには、この段階ですべての準備をすませておいたほうがめんどうがありません。

・「Java」ランタイムのインストール
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

・「Visual C++」ライブラリのインストール
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

・「CUDA 10.2」+「cuDNN 7.6.5」+「TensorRT 7.0.0」環境を構築する
「GLOBIS-AQZ」の動作要件は、以下のように記述されています。

2. Requirements

・OS : Windows 10, Linux (64-bit)
・GPU : Nvidia's GPU (Compute Capability >3.0)
・CUDA Toolkit 10.0 or 10.2
・TensorRT 7.0.0

It has been tested in the following environment.

・Ubuntu 18.04 / RTX2080Ti / CUDA10.0 / TensorRT7.0.0
・Windows 10 Pro (64bit) / RTX2080Ti / CUDA10.2 / TensorRT7.0.0


「CUDA 10.2」+「TensorRT 7.0.0」ということだと、必然的に「cuDNN 7.6.5」が求められるので、ここではこの組み合わせに限定してすすめていきます。
以下の3)~5)の手順どおりに「CUDA 10.2」+「cuDNN 7.6.5」+「TensorRT 7.0.0」環境を構築しておけば、「GLOBIS-AQZ」のほかにもFacebook「ELF OpenGo」や「KataGo」も、配布されているGPUバージョンの実行バイナリをそのまま走らせることができます。
しかし「PhoenixGo」だけは「CUDA 9.0」のみの対応、それにともなって「cuDNN 7.1」が必要となりますので、この環境では動かせません。
どうしても「PhoenixGo」を使いたいときは、このページの一番下のコラムにまとめた方法で、「CUDA 9.0」+「cuDNN 7.1.4」をインストールしてください。

1) 「Java」ランタイムのインストール
無料Javaソフトウェアをダウンロード」ページから、「無料Javaのダウンロード」 -> 「同意して無料ダウンロードを開始」とすすんで、Windows版Javaの推奨バージョン(Version 8 Update 251)インストールファイル「JavaSetup8u251.exe」をダウンロードします。
ダウンロードに問題がある場合は、「全オペレーティング・システム用のJavaのダウンロード」ページから、明示的に必要なファイル「jre-8u251-windows-x64.exe」を選択してダウンロードしてみてください。
ダウンロードしたインストールファイルをダブルクリックすると、セットアップがはじまって「Javaへようこそ」画面が開くので、(必要におうじて「宛先フォルダを変更する」にチェックをいれて)「インストール」ボタンをクリックします。
ファイルのダウンロードがはじまって、最終確認を求められるので、問題なければそのまま「インストール」ボタンを押してすすめます。
古いバージョンの「Java」ランタイムがインストールされていた場合、この段階で検出されるので、かならずアンインストールしておきましょう。
デフォルトのインストール先は「C:\Program Files (x86)\Java\jre1.8.0_251」で、インストール完了時点でパスはとおって、すでに使えるようになっているはずです。
インストール処理が終わったら、完了画面があらわれるので、「閉じる」ボタンをクリックして終了します。

2) 「Visual C++」ライブラリのインストール
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

Visual Studio 2019 for Windows および Macのダウンロード」ページから、「Visual Studio Community 2019」の「無料ダウンロード」ボタンを押して、インストールファイル「vs_community__1420685118.1583889769.exe」をダウンロードします。
ダウンロードしたファイルをダブルクリックしてインストーラを起動し、「C++によるデスクトップ開発」カテゴリの「Windows 10 SDK」コンポーネントにチェックをいれてから、インストールを実行します。
コンピュータを再起動するよう指示されるので、それにしたがって再起動すれば、作業は完了です。

あるいは、Windows 10上に囲碁勉強環境を構築するという今回の目的の範囲でいえば、「Visual Studio 2019」そのものをインストールする必要はありません。
おなじページのずっと下までいって「その他のツールとフレームワーク」をクリック、「Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ」の「x64」にチェックがはいっているのを確認してから、「ダウンロード」ボタンをクリックして「VC_redist.x64.exe」をダウンロードします。
ダウンロードしたファイルをダブルクリックするとインストールがはじまり、デフォルトのままなにも変更することなくインストール作業を終えれば、それだけでこのあと必要になる環境はすでにととのっています。


3) 「CUDA 10.2」インストール
NVIDIA DEVELOPER」サイトの「CUDA Toolkit 10.2 Download」ページで「Windows」「x86_64」「10」「exe (local)」を選択して、該当する「CUDA 10.2」インストールファイル「cuda_10.2.89_441.22_win10.exe」をダウンロードします。
ファイルのダウンロードが終わったら、ダブルクリックしてインストーラを起動して、あらかじめ推奨チェックがはいっているとおりにインストールを実行していけばだいじょうぶです。
インストーラは「CUDA 10.2」ライブラリを「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2」以下にインストールし、環境変数「CUDA_PATH」に「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2」を、環境変数「Path」に「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin」「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp」を自動的に追加しているはずです。

4) 「cuDNN 7.6.5」インストール
NVIDIA cuDNN」ページで「DOWNLOAD cuDNN」ボタンを押し、「cuDNN Download」ページへすすみます(必要におうじてアカウント作成のうえログインしてください)。
「I Agree To the Terms of the cuDNN Software License Agreement 」にチェックをいれ、「Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2」を選択、開いたタブのなかから「cuDNN Library for Windows 10」をクリックして「cudnn-10.2-windows10-x64-v7.6.5.32.zip」ファイルをダウンロードします。
ダウンロードしたファイルを展開すると、「cuda」フォルダが生成しますが、そのなかに「bin」「include」「lib」の三つのフォルダがあるはずです。
この三つのフォルダをそのまま、「CUDA 10.2」ライブラリをインストールしたフォルダ「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2」にコピーしてやります。
解凍してできた「cuda」フォルダのなかの「bin」「include」「lib」の三つのフォルダにふくまれていたファイルが、「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2」フォルダのなかの「bin」「include」「lib」の三つのフォルダのなかに、それぞれ移動されたことになります。
ここまでの作業が終わったら、環境変数「CUDNN_PATH」に「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2」を登録しておきます。

5) 「TensorRT 7.0.0」インストール
NVIDIA TensorRT」ページで「DOWNLOAD Now」ボタンを押して、「TensorRT Download」ページへすすみます(必要におうじてアカウント作成のうえログインしてください)。
「Available Versions」のリストから「TensorRT 7」をクリックして、「TensorRT 7.x Download」ページを開きます。
「I Agree To the Terms of the cuDNN Software License Agreement 」にチェックをいれ、「TensorRT 7.0」をクリックして開いた一覧表から「Windows10 and CUDA 10.2 zip package」を探してクリック、「TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.2.cudnn7.6.zip」ファイルをダウンロードします。
ダウンロードしたファイルを展開すると、「TensorRT-7.0.0.11」フォルダが生成します。
このフォルダをわかりやすい場所へ移動して、環境変数「Path」にそのフォルダのなかの「lib」フォルダへのフルパスを追加します。
たとえば解凍してできたフォルダを「C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-7.0.0」に移動したとすれば、環境変数「Path」に登録するのは、「C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-7.0.0\lib」になります。
要するに「C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-7.0.0\lib」へバスがとおっていればいいということなので、別法としては環境変数「Path」の設定などはせず、「lib」フォルダの中身をすべてパスのとおった場所(たとえば「CUDA 10.2」ライブラリをインストールしたときに「Path」登録されている「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin」フォルダなど)にコピーするだけでもO.K.です。

*****「CUDA 9.0」+「cuDNN 7.1.4」環境構築*****
「PhoenixGo」を動かすためには、バージョンの異なる「CUDA」環境が必要なので、ここの手順にしたがってじゃっかん古いライブラリをインストールしてください。

a) 「CUDA 9.0」インストール
NVIDIA DEVELOPER」サイトの「CUDA Toolkit Archive」から「CUDA Toolkit 9.0 Downloads」ページへすすみ、「Windows」「x86_64」「10」「exe (local)」用の「CUDA 9.0」インストールファイル「cuda_9.0.176_win10.exe」をダウンロードする。
ダウンロードしたファイルをダブルクリックしてインストーラを起動、あらかじめ推奨チェックがはいっているとおりにインストールを実行する。

b) 「cuDNN 7.1.4」インストール
NVIDIA cuDNN」ページで「DOWNLOAD cuDNN」ボタンを押し、「cuDNN Download」ページへすすむ(必要におうじてアカウント作成のうえログインする)。
「I Agree To the Terms of the cuDNN Software License Agreement 」にチェックをいれ、開いたタブの一番下にある「Archived cuDNN Releases」をクリックして「cuDNN Archive」ページへ飛ぶ。
「Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0」を選択、「cuDNN v7.1.4 Library for Windows 10」をクリックして「cudnn-9.0-windows10-x64-v7.1.zip」ファイルをダウンロードする。
ダウンロードしたファイルを展開、生成した「cuda」フォルダのなかの「bin」「include」「lib」の三フォルダを、「CUDA 9.0」インストールフォルダ「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0」にコピーする。



参考ウェブページ一覧表(順不同)
posted by hatakazu at 19:52| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。