囲碁AI・PhoenixGoの対局方法(GPU版)


今回は囲碁AI・PhoenixGoのGPU版の対局方法を紹介していきます。
テンセントのwechat翻訳チームが開発したもので、囲碁AI世界戦優勝の実績を有している。
オープンソース化された囲碁AIの中で一番強いと思われるので、ぜひ挑戦してみてください。
※関連記事:CPU版の使い方→こちら、世界戦の記事→こちらこちら

【導入手順】
①GPU搭載済みのPCであるか否か
GPU搭載されたPCは高価なものが多いため、現状のこれが最大の壁となっています。


②PhoenixGoのGPU版をダウンロード
こちらから「PhoenixGo-win-x64-gpu-v1.zip」をダウンロードします。
デスクトップ上にファイルを作り、解凍したものを入れてください。


③CUDA Toolkit 9.0をダウンロード

まずはこちらのページに入ります。
「Select Target Platform」を上記のように選択します。(これはwindows10の設定です)
その後に「Base Installer」の右にある「Download(1.4GB)」をクリックしてダウンロード。ダウンロードしたものをクリックしてインストールします。
※基本的に全部「はい」で大丈夫ですが、PCによっては設定する必要があるかもしれません。


④cuDNN Downloadのダウンロードと導入
次に、こちらに入ってダウンロードするのですが、ID登録する必要があります。
ページ右上の「Join」から頑張って登録してください!(英語ばかりなので苦戦するかも)
登録してログインした後、改めてこちらに入って「DOWNLOAD cuDNN」をクリック。


チェック項目を入れてから「Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0」を
選択してダウンロードしてください。

ダウンロードしたものに「include」「bin」「lib」があり、それを所定の場所に入れます。
“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0”←場所のパスはこれ。
ただ、これだと恐らく分からないと思うので、どの場所を開くと辿りつくか説明します。


まず、適当なファイルを開いた後、左側の「PC」を押して上記の画面にします。
その後に「Windows(C:)」→「Program Files」→「NVIDIA GPU Computing Toolkit」→
「CUDA」→「v9.0」の中にダウンロードした中にある「include」「bin」「lib」を上書き。


⑤sabakiの対局設定
こちらから最新のものを入れていきます。
64bitでwindowsの場合は「sabaki-v□.□□.□-win-x64-setup.exe」です。
その後、入れたものをクリックして実行します。


「sabaki」を実行をすると上図の画面が現れるはずです。
まずは上の方にある「Engines」→「Manage Engines」をクリック。

左下の「Add」を押して項目を追加します。
「(Unnamed Engine)」は名前なので「PhoenixGo_GPU」などにします。

その下に「Path」と表記されている左にファイルマークがあるのでクリックします。
PhoenixGoのファイルの中にある「start」をクリックした後、右下の「開く」を押します。

また、上の方の「Engines」→「Toggle GTP Console」を押してログを見れるようにします。
動作確認をする際に必要なので、表示された形でお願いします。


⑥最後は願いを込めて動作テスト
左上の「File」→「New」を押した後、下の方に対局設定が現れます。
BlackとWhiteの両端に「>」のような部分を押してPhoenixGo_GPUを選択すれば設定完了。
後は細かい設定をして「OK」を押して動作テストをします。


始めに起動する際、少し固まったような症状が出ますが少し待つと上記のログが出てきます。
その後に着手し始めたら設定完了です。
※もし、左側のログがしばらく経っても出ない場合、CUDAなどの導入が誤っています。

「編集後記」
今回はCUDAやcuDNNとか謎のワードが多かったと思いますが、手順を踏めば問題ないです。
また、様々な機器で動作検証していないため、PCの環境次第で細かい設定が必要かも。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. キクヤン より:

    いつもお世話になっております。
    ここの囲碁AIの記事を読んでいて、決心してGPU付マシーンを買いました。
    dellで11万ほどしましたが、検討機能の速さに満足しています。
    phoenixのGPU版も先ほど入れたら一発で動きました。
    ここの記事のおかげです。
    ありがとうございます。
    ただこれをどう使いこなして、強くなるのかが最大の問題です。

    • okao より:

      これからは囲碁AIを活用する時代なので、良い買い物だと思います。まずは自分の棋譜を検討するところから始めてみてはどうでしょうか。身近に強い人がいなくても手を教われるのは心強いはずです。
      また、GPUが良いと様々なことがスムーズにできるので囲碁以外の用途を考えると面白そうです。例えば、オンラインゲームなど。

  2. YT より:

    こちらの囲碁AI(phoenixのGPU版)は、LeelaZero(ELF版)と比較してどうなのでしょうか。(実力の差や勝敗等)
    対局条件や設定などを統一した結果などをお教え頂ければ幸いです。

    ちなみに、当方の環境では、下記設定にてLeelaZero(ELF版)のほうが勝率は良いようです。

    sabaki上の設定は以下です。

    ・互先、コミ6目半
    ・LeelaZero(ELF版) → -t 4 -g -p 20000 –noponder -w elf.txt
                 time_settings 0 10 1;
    ・PhoenixGo(GPU版) → C:\Users\gspdy02\Desktop\PhoenixGo-win-x64-gpu-v1\start.bat(start.batのパス指定のみ)

    ハード環境は、Tesla V100、CUDA及びcuDNNインストール済みです。

    その他、必要な情報や設定があればご教示お願いします。
    以上、よろしくお願いいたします。

    • okao より:

      ELFとPhoenixgoを対戦させたら18-2でPhoenixgoが圧倒していました。設定はほとんど同じですが、ELF側の-pを1600でやっていたため極端な結果になったのかもしれません。数値を上げて検証してみます。(i7-7700、GTX1050のパソコン)ただ、試行回数が少なすぎるので一時的な偏りなのでしょうね。

      • YT より:

        ご回答ありがとうございます。
        設定値によって、勝率が変動することは十分考えられるかもしれませんね。okao様のご指摘通り、偏ってる気はしますね。。
        当方も、設定値や試行回数は手探り状態でやっています。(どの程度の数値、試行回数が妥当なのかすら不明。基本的にプレイアウト数が多い・思考時間が長いほど強いと思われるが・・)

        ちなみに、LeelaZero関係のレーティングを表にしたものもあるようです。どの程度信頼できるかは不明ですが、自分なりに試した限りでは概ね合っている気がします。表の数値を信じるなら、「ELF」対「Phoenixgo」は「66-78%: +0.5」となるので、ELFからみて勝率6割~8割となれば妥当だと思います。
        サイトは以下URL
        https://www.reddit.com/r/cbaduk/comments/7jx8tv/the_ranking_of_lzero/

        また、参考になる情報があればお伝えしようと思います。

        • okao より:

          URLありがとうございました!綺麗なまとまったグラフで非常に参考になりました。純粋な強さを図るには、やはり試行回数を増やすために考慮時間をある程度設けないといけないようですね。ただ、一手30秒でさえ打ち終えるのに長時間がかかるので検証するのも大変そうですorz

  3. 山本宏 より:

    okao様、初めまして
    いつも囲碁ファンに大変興味深い話題を提供していただき、感謝しています。

    PhoenixGoのGPU版につきましては、私も拙い英語力で、なんとか動かすに至っていましたが、okao様の方法を見て、これでよかったんだなと安心いたしました。

    ちなみに、Phoenixはもうひとつ、別の動かし方があって、ELF-OPEN碁と同様に、PhoenixGo_v1.txtをリーラ上で動かすやり方もあって、今のところ、こちらの方が、
    start.bat型よりも設定の仕方が自由度が高いように思います。両者ともに棋力は、ほとんど変わらないようです。

    ところで、
    PhoenixのGPU版では、どんなinitial commands が使えるんでしょうか?
    私がやってみるにも、時間設定、playout数をいろいろと変えて設定しても、すべて5秒程度で打ち返してきます。つまり、設定の仕方がおかしいのか、そういう仕様なのかよくわかりません。環境は以下の通りです。

     Core i7-8700K (3.70GHz ‐ 4.70GHz / 6コア・12スレッド / 12MB)
     水冷クーラー   メモリ:32GB

    • okao より:

      ELFOpenGoと同様の方法だと設定できますが、Start.bat型の場合は設定してもあまり意味がないようですね。PhoenixGo_v1.txtの方とどれくらい実力差があるか検証してみようと思います。

  4. 山本宏 より:

    前の補足です
    グラフィックは
    NVIDIA(R) GeForce(R) GTX 1080Tiです。

  5. yoshi より:

    はじめまして。
    いつも、okao様の記事を楽しく拝読し、勉強させてもらっております。

    さて、先日GPU版をインストールしましたが、うまく動きませんでした。
    原因はどこにあるのかご教示願いたくメールいたしました。
    (ちなみにCPU版では動きました)。

    GPU版を手順のとおり、CUDAとcuDNNをインストールし、sabakiで動かそうとしましたが、反応ありません。
    PhoenixGo-win-x64-gpu-v1は記載のとおり、デスクトップにフォルダを作って、解凍したファイルをその中に入れました。
    原因を探ろうとして、手探りでその中のstart.batというのをクリックしてみると、
    「mcts_main.exe システムエラー」というウィンドウが出て、
    「nvcuda.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」と表示されます。
    このあたりで止まってしまっているのでしょうか。
    再インストールしても残念ながら同じメッセージが出てしまいます。

    CPはDELLのノートパソコンで、
    windows10
    Inter(R)Core(TM)i7-8550U CPU@1.80GHz
    RAM 8.0GB
    GPU0 Intel(R)UHD Graphics 620
    GPU1 Radeon(TM) 530
    です。

    どうぞよろしくお願いいたします。

    • okao より:

      GPUですが、自分が動作確認しているのはGTX1050以上のものです。スペックがこれ以下、または異なるものの場合は動作しない可能性があります。
      また、nvcuda.dllを個別にダウンロードして不足分を補強する方法はありますが、オススメしません。

      • yoshi より:

        さっそくのご返答ありがとうございました。
        GPUのスペック不足あるいはRadeonに対応していない可能性があるということで納得しました。今後ハイスペックなCPの購入を検討したいと思います。