2025年9月24日

圍棋人機對奕(完)﹍安裝 KataGo TensorRT 版的訣竅 + 如何在 KaTrain 執行

圍棋人機對奕(完)﹍安裝 KataGo TensorRT 版的訣竅 + 如何在 KaTrain 執行

Wayne Fu 0 A+
katago-cuda-tensorrt-katrain.jpg-KaTrain 安裝 KataGo TensorRT 版上一篇見識了「KaTrain」強大的分析功能,使用一段時間後變得比較貪心,希望分析結果的時間能加快一些,想到我的顯卡 RTX4060 雖然不算高檔,但應該還是比 CPU 運算能力強很多。所以研究了一下如何讓 KaTrain 改用 KataGo GPU 版,沒想到速度提昇相當有感,也慶幸終於可以讓這塊顯卡發揮功效了,因為平常真的找不到比較長的時間玩 3A 遊戲大作,沒什麼機會讓 GPU 活動筋骨,這下當初市價萬元的顯卡總算沒白買~ 身為工程師的一個毛病是,找到 solution 後還會想著能不能再優化,聽說 KataGo 還有 TensorRT 版,能夠榨出更多 Nvidia 顯卡效能。雖然 KaTrain 跑 GPU 版我已經很滿意了,但還是很好奇,TensorRT 版究竟能快到什麼境界。先說結論,給我的感受大概類似當初 Windows 硬碟一分鐘開機,改用 SSD 後 10 秒進系統畫面那般震撼! 不過也先別高興太早,想當初我只求 KaTrain CPU 版能正常操作,是因為有預感優化 GPU 會很折騰,果不其然現在動手研究後真的到處碰壁,不然也不會有這篇心得了。以下會詳細說明 KataGo TensorRT 版安裝過程所有需要注意的地方,同時最重要的是,如何讓預設沒有 TensorRT 版的 KaTrain,也能正常執行 KataGo TensorRT 版,發揮 GPU 最高效能。
圍棋人機對奕系列文章:
(圖片出處: unsplash.com)

一、KataGo 四種運算方式

根據 KataGo 官網說明「OpenCL vs CUDA vs TensorRT vs Eigen」,提供了四種運算方式: 1. CPU 純粹使用 CPU 進行運算,從安裝檔名辨識可分為兩種:
  • eigen:適合比較舊的 CPU 型號,不支援 AVX2 指令集,例如 Intel 第三代及較舊的 CPU
  • eigen + avx2:適合比較新的 CPU 型號,支援 AVX2 指令集,例如 Intel 第四代之後的 CPU
2. OpenCL 安裝檔名有 opencl 的版本,可以讓支援「OpenCL」的顯示卡以 GPU 進行運算。 不過官網文件表示,不同顯卡的 OpenCL 運算能力是有差距的,第一次執行時程式需要進行調校,一般來說需要 5~30 秒,但比較舊的硬體配備可能要幾分鐘甚至更久。 同時比較舊的顯卡,或是 AMD 顯卡,或是 Intel 內建顯卡,跑 OpenCL 可能會有問題,請查閱官網文件「Issues with specific GPUs or GPU drivers」。 3. CUDACUDA」是 Nvidia 顯示卡專有的運算架構,所以安裝檔名有 cuda 的版本,只能在 Nvidia 顯卡執行。 不過官網說明有特別指出,OpenCL 版在很多顯卡運算能力都勝過 CUDA 版,而比較新的、支援 FP16 的 GPU,則不一定那一版的運算效果比較好。 根據這樣的描述,CUDA 版看起來是比較雞肋的,因為直接用 OpenCL 版會比較簡單,或是選擇更好的 TensorRT 版。 4. TensorRTTensorRT」也是 Nvidia 顯示卡專有的運算框架,安裝檔名有 trt 的版本,只能在 Nvidia 顯卡執行。 TensorRT 版針對神經網路的運算更為優化,比任何其他版本都快很多。若要使用 TensorRT 版,也同時需要安裝 Nvidia 的 CUDA 工具包。

二、安裝 CUDA + TensorRT

1. 失敗的情形 安裝 KataGo TensorRT 版並不容易,一開始找了幾篇安裝教學,花了大量時間下載,因為所有檔案大小將近 5G。小心地按著教學步驟,雖然最後 TensorRT 看起來有執行,但 KataGo 都會報錯無法執行。 交叉測試直到成功的過程就不贅述了,直接總結失敗原因:
  • 除了教學文章的必要動作不可省略,還有其他因素會導致失敗
  • 我以為類似 Java、NodeJS,找最新版本安裝比較好
  • 結果後來發現 CUDA、TensorRT 都要找到非常精確的版本下載才不會出錯
  • 只要對應的版本號不同,KataGo 可能就無法啟動
了解原因之後,安裝 KataGo TensorRT 版的第一要務會是,了解自己的 Nvidia 顯卡,可以安裝的 CUDA 版本為何。 2. 安裝要點 從「KataGo 官網下載頁面」我找到這段訊息:
Cuda 12.8.* and/or TensorRT 10.9.0.* should hopefully be suitable for the most recently released NVIDIA GPUs as of April 2025, the RTX 5000 family. It's recommended that you install and run these with the matching versions of CUDA and TensorRT rather trying to run with different versions.
意思就是說,「Cuda 12.8 及 TensorRT 10.9 適合 2025 年 4 月最新的 RTX 5000 系列顯卡」,所以我的 RTX 4060 可能不適合這些最新版本。「請安裝與 KataGo 完全吻合的版本,不要嘗試安裝不同的版本」,看到這句話算是驗證了我的失敗原因。 3. 查詢顯卡資訊 所以首先需要查出,與自己 Nvidia 顯示卡相容的 CUDA 版本為何,只要確認安裝過顯卡驅動程式,在 Windows 可開啟「命令提示字元」視窗,執行以下指令查詢 Nvidia 顯卡資訊: nvidia-smi katago-cuda-tensorrt-katrain-1.jpg-KaTrain 安裝 KataGo TensorRT 版 執行後出現類似上圖的資訊,可看到我的 RTX4060 顯卡驅動程式,紅框處標示了相容的 CUDA 版本為「12.4」,代表我需要使用的 CUDA 版本號必須等於或小於這個數字。 4. 下載 KataGo 正確版本 進入KataGo 官網下載頁面: 可看到目前最新版是 1.16,找到對應的「Assets」區塊,顯示這個版本號有 38 個檔案,分別對應不同作業系統、不同運算方式的版本號。但因為檔案太多了,必須點擊「Show all 38 assets」才能展開,看到所有檔案。 以我的 RTX4060 為例,必須找到 CUDA 12.4 以下的數字,及包含 TensorRT 的版本: katago-cuda-tensorrt-katrain-2.jpg-KaTrain 安裝 KataGo TensorRT 版 上圖可看到版本號眼花撩亂,但只有一個我能下載,其他都會導致 KataGo 無法執行: 這個版本號代表:
  • KataGo 1.16 版
  • Windows 系統 64 位元
  • 需要安裝 CUDA 12.1 版
  • 需要安裝 TensorRT 8.6.1 版
  • 紅框上方還有一個相似的版本號,多了 bs50,代表 board size 大棋盤尺寸,除非有這個需求,不然不需要下載這類版本
只要版本號正確,就成功了一半,接下來可參考這篇詳細的圖文教學「安裝Katago TRT版本步驟」,不過也可參考本篇的說明,因為本篇內容已進行優化,而那篇的說法少部份不完全正確,且提到要安裝 CUDNN,但經我實測不須安裝 CUDNN 也沒影響。 經查閱「KataGo 官網下載頁面」有相關內容:
  • CUDNN 是安裝 CUDA 板才需要下載
  • TensorRT 版沒有看到需要 CUDNN 的內容描述
  • 而且從我下載的檔案 katago-v1.16.0-trt8.6.1-cuda12.1-windows-x64.zip 就能看出,並沒有 cudnn 的字串
5. 安裝 CUDA Nvidia 的 CUDA 下載網址如下: 從該頁面可選擇要下載的 CUDA 版本,例如我需要的是 12.1.1 版。 點擊進入該頁面,選擇作業系統、64位元、Windows 版本、是否在本地安裝,即可下載檔案,這是我的 CUDA 版本連結: 下載完執行檔案,按照指示進行即可,也可自訂安裝選擇安裝路徑。 6. 安裝 TensorRT 安裝 Nvidia TensorRT 比較麻煩一點,下載過程會先要求註冊,須額外花點時間。 Nvidia 的 TensorRT 下載網址如下: 以我的顯卡為例,需要安裝 TensorRT 8.6.1 版,所以在此頁面選擇「TensorRT 8」,進入該版本下載頁面: 勾選「I Agree To the Terms of the NVIDIA TensorRT License Agreement」後,會顯示可下載版本。 頁面上可看到兩個 8.6 版:「TensorRT 8.6 GA」、「TensorRT 8.6 EA」,請一律選擇標示「GA」的版本,因為「EA」代表搶先體驗版,而「GA」是通用版。 展開「TensorRT 8.6 GA」後,符合我作業系統、CUDA 版本號的只有一個版本: TensorRT 8.6 GA for Windows 10 and CUDA 12.0 and 12.1 ZIP Package 這個檔案的連結如下: 下載完解壓縮 ZIP 檔,放到指定路徑,接下來設定環境變數,以 Windows 10 為例:
  • 開始 → 設定 → 系統 → 關於 → 進階系統設定 → 環境變數
  • 在「系統變數」找到「Path」 → 編輯
katago-cuda-tensorrt-katrain-3.jpg-KaTrain 安裝 KataGo TensorRT 版
  • 上方紅框可看到,前面安裝 CUDA 後,會自動產生兩筆 CUDA 路徑
  • 下方紅框這兩筆 TensorRT 則是需要自己手動填入的資料,可按「新增」來新增資料
  • 分別填入兩個路徑:你的 TensorRT 資料夾下的 libbin 這兩個資料夾
至此完成 Nvidia 顯卡的 CUDA 及 TensorRT 兩個運算框架安裝。

三、安裝 KataGo TensorRT 版

1. 解壓縮 KataGo 檔案 前面「二、安裝 CUDA + TensorRT」→「4. 下載 KataGo 正確版本」,已經找到適合我 RTX4060 的 KataGo 版本 katago-v1.16.0-trt8.6.1-cuda12.1-windows-x64.zip,將你的版本檔案解壓縮後,放在自訂路徑即可。 2. 下載權重檔 如果沒安裝過任一版 KataGo,那麼還需要下載配合適當版本的權重檔案,下載頁面網址: 如果跟我一樣是安裝最新版 KataGo,就可以使用這個網頁開頭推薦的檔案,例如找到「Strongest confidently-rated network」,這是最強、可信賴的權重檔案,目前的檔案連結為: 下載後可將檔名改為簡單易記的格式,例如 weight_b28.gz,放在 KataGo 同目錄下即可。 3. 產生設定檔 接下來讓 KataGo 自動檢測硬體環境並自動產生設定檔,Windows 可開啟「命令提示字元」視窗,進入你的 KataGo 目錄,假設是在 D:\KataGo 之下,執行以下指令: katago genconfig -model weight_b28.gz -output WFU_TensorRT.cfg
  • weight_b28.gz 請改為你的權重檔案名稱
  • WFU_TensorRT.cfg 請改為你的設定檔名稱
畫面上會詢問一些問題,第一個問題詢問使用的規則,建議使用中國規則數子法,原因可參照「AI 引擎模擬對戰實測」 →「一、GoGui 初始測試結果」→「2. 規則不同導致勝負顛倒」。 其他所有問題可全部按 Enter 使用預設值即可。 katago-cuda-tensorrt-katrain-4.jpg-KaTrain 安裝 KataGo TensorRT 版 過程需要花上好幾分鐘進行測試,如果順利成功的話,會出現類似上圖畫面:
  • 最上方紅框有 (recommended) 字樣的這一行,是 KataGo 根據硬體設備推薦 numSearchThreads 使用的數量,我的 RTX4060 推薦數量為 16,請紀錄自己畫面顯示的數字,之後會用到。
  • 第一個紅色底線顯示,設定檔已寫入我自訂檔名 WFU_TensorRT.cfg,代表設定成功
  • 第二個紅色底線,代表將來執行 KataGo 使用的參數,也請紀錄起來,之後會用到。
執行 KataGo 的啟動參數說明一下: gtp -model 權重檔案名稱 -config 設定檔名稱 上面的截圖可看到權重名稱及設定檔名都加上了引號,如果檔名含完整路徑的話,加上引號比較不會出錯。如果是同路徑,則不須使用完整路徑,那麼也就不需要加引號。

四、Sabaki 設定 KataGo

只要前面的流程跑到產生 KataGo 設定檔,都沒出問題的話,代表全部都安裝、設定成功了,那麼大部分的圍棋圖形界面軟體應該都能跑 KataGo TensorRT 版沒什麼問題,以下簡單舉例「Sabaki」如何加入 KataGo TensorRT 版引擎。 katago-cuda-tensorrt-katrain-5.jpg-KaTrain 安裝 KataGo TensorRT 版 上圖為新增引擎的畫面,我增加了 KataGo Tensor 這個引擎,選擇 KataGo Tensor 版的執行檔路徑後,紅框那一行填入前面提到的參數,請自行修改檔名: gtp -model 權重檔案名稱 -config 設定檔名稱 紅框下面一行參數為 GTP 指令,代表強制 AI 每手 5 秒鐘落子。 katago-cuda-tensorrt-katrain-6.jpg-KaTrain 安裝 KataGo TensorRT 版 來看看 KataGo Tensor 版的分析速度,真是快得嚇人,過沒 5 秒鐘已經分析了數千手,上圖紅框這三個建議選點,加起來已經計算分析超過一萬手。 只不過需要提醒一下,這麼強大的計算力需要付出一點代價,KataGo Tensor 版啟動時需要花費不少時間,以我的硬體配備,每次都需要等三十多秒的時間。

五、KaTrain 執行 TensorRT 版

1. KaTrain 的運作方式 katrain-best-go-software-4.jpg-KaTrain 安裝 KataGo TensorRT 版 Sabaki 安裝 KataGo Tensor 版實在輕鬆愉快,幾秒鐘就搞定,但 KataGo 專屬的界面 KaTrain 卻讓我不斷碰壁。借用系列文「KaTrain」的圖片說明,上圖可看到,讓 KaTrain 自動下載 KataGo 版本時,只會抓 Eigen、Eigen AVX2、OpenCL 這三種版本而已,不會抓 CUDA、Tensor 版。 仔細想想後來也能理解,KaTrain 設計的目的,就是讓使用者不必研究複雜的版本、參數、權重檔案等等,就能輕鬆操作 KataGo,所以在設計上根本不會特地為 CUDA、Tensor 這兩個版本考慮,或是進行優化,難怪我怎麼想都無法知道,要如何讓 Sabaki 輕鬆就能加入的下面這行參數,能夠在 KaTrain 執行: gtp -model 權重檔案名稱 -config 設定檔名稱 雖然在上圖的 KaTrain 設定畫面,有看到一行「KataGo 設定檔路徑」,但我們若將 Tensor 版設定檔路徑填進去,只會不斷報錯而已。這代表 KaTrain 的設定檔有自己的格式,除非我們將 Tensor 版設定檔格式,改成完全符合 KaTrain 的設定檔格式,才有可能解決問題。 2. 如何讓 KaTrain 跑 TensorRT 版 最後我在這篇文章找到了靈感「圍棋AI軟件katrain 和katago的整合安裝」,作者也是在 KaTrain 設定畫面填入了自設的設定檔路徑,跟我一樣不斷報錯,但他的作法是,在自訂的設定檔,新增會報錯的內容並修改參數。 雖然我有想過這麼做,但不確定到底有多少處要修改。現在有了成功案例後,自然知道該如何進行,把所有會報錯的項目逐一加上去。請參考以下步驟: A:找到原本的 KaTrain 設定檔,位置應該在「Katrain 路徑\_internal\katrain\KataGo\analysis_config.cfg」,用文書軟體開啟這個檔案。 B:用文書軟體編輯 TensorRT 版設定檔(前面的範例檔名是 WFU_TensorRT.cfg),最後面新增的內容如下: numAnalysisThreads = 16 nnMaxBatchSize = 96 nnRandomize = true
  • numAnalysisThreads 的參數請填入前面「三、安裝 KataGo TensorRT 版」→「3. 產生設定檔」,測試完畢後 KataGo 根據硬體設備推薦 numSearchThreads 使用的數量,我的 RTX4060 推薦的數字是 16
  • nnMaxBatchSize 與 nnRandomize 的數值,請在你的 analysis_config.cfg 中搜尋,看看這兩項的數值是什麼
編輯完後儲存,之後要進入 KaTrain 進行設定。 以上這些修改是針對我目前的版本 KaTrain 1.16,將來更新的版本如有問題,請按本篇的要領,在設定檔另外加入會報錯的內容即可 3. KaTrain 設定 katago-cuda-tensorrt-katrain-7.jpg-KaTrain 安裝 KataGo TensorRT 版 進入 KaTrain → 左上角選單圖示 → 一般和引擎設定,出現上圖設定畫面:
  • KataGo執行檔路徑:填入 TensorRT 版執行檔路徑
  • KataGo執行檔路徑:填入剛改好的 TensorRT 版設定檔路徑
  • KataGo執行檔路徑:填入權重檔案路徑
  • 因為改用 TensorRT 版,右下紅框運算步數從 500 改成 2500 或更多都不成問題
  • 按「更新設定」即可
katago-cuda-tensorrt-katrain-8.jpg-KaTrain 安裝 KataGo TensorRT 版 更新設定後,回到主畫面,右邊訊息欄會顯示類似「引擎更新重新載入」的字樣,同時下方燈號會變成「橘色」。點擊燈號的話會顯示上圖訊息,代表目前處理中。 第一次更換 TensorRT 版引擎系統會跑上幾分鐘,需要等一會才能使用 KaTrain。 katago-cuda-tensorrt-katrain-9.jpg-KaTrain 安裝 KataGo TensorRT 版 但即便將來重新啟動 KaTrain 後,載入 TensorRT 版引擎也是要花不少時間,以我的硬體配備每次都要等上三十多秒,跟 Sabaki 差不多。 比較奇怪的是,每次載入 TensorRT 版引擎過程,我的畫面都會如同上圖報錯(有 ERROR 訊息),但這並不影響 KaTrain 運行,因為最後都會顯示綠燈,而且 Sabaki 也會出現相同的 Error 訊息。總之按照以上流程後,KaTrain 執行 KataGo TensorRT 版是絕對沒問題的,盡情享受飆速分析吧!

六、總結

KataGo TensorRT 版的 AI 光速分析,嘗試過就回不去了,只不過我們每次打開圍棋軟體,不一定都是拿來分析勝率、最佳選點。假設只是要跟 AI 對奕,那麼啟動軟體要等上三十多秒,不是一件很有效率的事。 所以簡單做個總結:
  • 如果常常與 AI 對奕的話,其實使用 KataGo OpenCL 版就足夠了,啟動等待時間幾秒鐘是可以接受的,CP 值比較高,而且 AI 的實力仍是人類遠遠比不上的。
  • 等到偶爾需要覆盤、分析的時候,再將引擎切換為 KataGo TensorRT 版,短時間就能得到上萬次的超高品質分析結果。
  • 總之根據使用圍棋軟體的目的,再決定使用 OpenCL 版或 TensorRT 版,是比較合理的作法。
圍棋人機對奕系列文章:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

沒有留言:

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP