創作內容

0 GP

算棋 on Docker (Part 2)

作者:needgem│2017-05-20 15:01:34│巴幣:0│人氣:409
號外兩則:
1. elmo 的作者的官方導入文件:
    https://mk-takizawa.github.io/elmo/howtouse_elmo.html
2. 敝人的 Dockerfile 成品:
    https://bitbucket.org/needgem/docker

接下來才開始繼續說明.
之前提到如何把 ShogiGUI 放進 Docker, 接著就需要抽換 Engine.

把在容器 linux 底下無法使用的 gpsfish 拿掉的話比較簡單.
首先在解壓縮的時候跳過 gpsfish 目錄,
接著一個 sed 拿掉 settings.xml 的 gpsfish engine block 就好了.
(實際上是去掉 <EngineList> 和 </EngineList> 之間所有的文字)

接著要如何去拿想要的 Engine 呢?
通常的手段如下:
對於有公開原始程式碼的引擎, 使用 git clone 將最新版程式碼提取下來.
接著就 make 編譯 (但是這邊的 linux 機器沒有 AVX2 所以只能編到 sse 4.2 版本)
接下來就需要找到相關的評估參數檔案跟棋譜檔案.

既然 elmo 作者都已經寫出 Windows 導入方式,
這邊詳細的導入方式也僅以 YaneuraOu 和 elmo 作為範例.

YaneuraOu 和 elmo 的引入碼解說

# 首先, 要先把目錄設在預定的根目錄.
WORKDIR /home/shogi

# 接著, 第一步是拿下原始程式碼
RUN git clone https://github.com/yaneurao/YaneuraOu.git && \
    # 得到原始碼以後要編譯相對應的執行檔
    cd YaneuraOu/source ; make sse42 ; cd ../exe && \
    # 把編譯出來的檔案移動到執行檔目錄, 為養成習慣感覺良好.
    mv ../source/YaneuraOu-by-gcc YaneuraOu-2017-early ; cd eval && \
    # 這邊的範例是提取真 YaneuraOu 的評價參數檔和棋譜檔
    # 下載解壓縮以後就把原壓縮檔刪除以節省空間.
    # 詳細請參考 YaneuraOu 網頁
    gdown "https://drive.google.com/uc?id=0ByIGrGAuSfHHVVh0bEhxRHNpcGc" -O ShinYane.zip && \
    unzip ShinYane.zip ; rm ShinYane.zip ; cd ../book && \
    gdown "https://drive.google.com/uc?id=0ByIGrGAuSfHHcXRrc2FmdHVmRzA" -O yaneb3.zip && \
    unzip yaneb3.zip ; rm yaneb3.zip

如此一來就完成初步部署.
接下來是 elmo 的部署.

# 一樣簡單的設好根目錄, 下載必要檔案解壓縮砍除壓縮檔,
# 但是直接把之前編譯好的 YaneuraOu 執行檔拷貝過去就好了.
WORKDIR /home/shogi
RUN gdown "https://drive.google.com/uc?id=0B0XpI3oPiCmFalVGclpIZjBmdGs" -O elmo.shogi.zip && \
    unzip elmo.shogi.zip && rm elmo.shogi.zip && \
    cp YaneuraOu/exe/YaneuraOu-2017-early elmo.shogi/YaneuraOu-2017-early

最後最重要的, 還是要自己做出 <Engine> 和 </Engine> 之間的設定碼.
這個需要靠外部的 shell script 導入 docker 容器內完成.
詳情請參考已公開的 docker/ShogiGUI 資料夾中的腳本資訊.
主要就是看 gpsfish 的設定資訊加上自己在實體程式中導入獲得的設定資訊修改而成.
最後就把相對應的 xml 碼區塊擺進 <Engine> 和 </Engine> 之間就大功告成.

所以在最後的 ShogiGUI 目錄中除了 Dockerfile 還需要一個 shell script 來輔助設定.
但是不代表自動設定的部份完成以後就不需要調整設定.
目前在 Bitbucket 上的版本, 自行設定完以後, 開啟 YaneuraOu 以後還需要調整的部份有:

1. CPU 執行緒數, 因為 YaneuraOu 的預設僅為 4,
    不像 Apery/技巧等等其他引擎會自動找尋電腦上的 CPU 執行緒數,
    所以需要照自己狀況調整.

2. 記憶體容量: 請參考自身記憶體可用容量決定, 這個不會寫死.

3. ConsiderationMode: 因為這邊不自己下只會看所以常常要自己設成 True.

4. elmo 作者提到的部份也可以斟酌修改.

至於拿到 Dockerfile 以後的使用方式, 就是

1. 編譯起來: 需要極大的網路流量! (目前估計要 5GB - 10GB 跑不掉)
    cd docker/ShogiGUI
    docker build -t shogigui .

2. 執行的話因為需要 X11, 還加上需要分享棋譜存放目錄, 所以大概類似這樣
    docker run -it --rm -e DISPLAY=$DISPLAY \
              -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
              -v /somepath/Kifu:/home/shogi/Kifu:rw shogigui

3. 接著就會看到 ShogiGUI 的畫面.

注意: 本程式可能僅供 Linux/Mac 使用, 需要 Docker,
          Mac 的 X11 可能需要透過 Xquartz 達成, 但本人無法測試.
          Linux 僅在 ubuntu 上實測過, 希望其他的 linux with X11 也能適用.

          Windows 的用戶則不建議使用此 dockerfile
          主因: ShogiGUI 為 Windows 原生程式, 而且 Windows 上可執行的引擎,
                   遠超過有開放原始程式碼的引擎, 所以並不適合再用 docker 來包裝它.
                   Windows 要導入 elmo 請參考文件前面提到的 elmo 作者的文件.

---

因為覺得這些都是使用網路上的自由資源 (不該叫免費資源)
寫寫幾個字就能弄得出來, 可能沒有啥技術程度,
藏私沒有用, 也請不要拿來賣... 因為懂門道的話, 大家都會寫, 不值錢.

至於要加入其他的引擎不過是照章運作而已,
目前已公開的版本已經包括:
技巧(Gikou), Apery, YaneuraOu, silent majority (俗稱魔女)
和後三者相對應的引入 elmo 評價參數及棋譜版本.

不過這樣寫完可能就沒有 Part 3 的必要性了, 系列就此結束.
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3582348
Some rights reserved. 姓名標示-非商業性 2.5 台灣

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★needgem 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:算棋 on Docker... 後一篇:201706 - 東京一...

追蹤私訊切換新版閱覽

作品資料夾

Lobster0627全體巴友
大家可以多多來我的YT頻道看看哦(*´∀`)~♥https://www.youtube.com/@lobstersandwich看更多我要大聲說昨天16:27


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】