10/03/2023
instalace q5go s podporou AI na Linux Mint
Každý, kdo hraní Go myslí vážně se dříve nebo později neobejde bez editoru SGF souborů. Dalším krokem je pak využívání AI k analýze hry. Obě možnosti a mnoho dalšího poskytuje program q5go.
Návod odpovídá instalaci na Linux Mint 21.1
instalace q5go
Pro q5go bohužel není k dispozici ani deb balíček tak ani flatpak. Program je nutné zkompilovat. Není to však nic složitého. Začneme tím, že do systému nainstalujeme qmake (pokud ho již nemáme):
$ sudo apt install qmake-qt5
Následně z gihubu stáhneme aktuální zdrojový kód. Stažený archiv rozbalíme například do adresáře q5go a následně v něm vytvoříme podadresář build. Dále se přesuneme do vytvořeného adresáře build a spustíme qmake:
$ cd ./q5go/build $ qmake ../src/q5go.pro
qmake bude pravděpodobně končit chybovou hláškou, že vám chybí některé qt5 knihovny. Mě chybělo qtbase5-dev, qtmultimedia5-dev a libqt5svg5-dev. Je však možné, že budou chybět i jiné. Všechny chybějící knihovny nainstalujte pomocí sudo apt install <knihovna>. Pro jednoduché určení jaký balíček odpovídá danému chybějícímu modulu slouží následující tabulka:
Qt module dev package --------------------------------------------------------------- bluetooth qtconnectivity5-dev concurrent qtbase5-dev connectivity qtmobility-dev contacts qtmobility-dev core qtbase5-dev dbus qtbase5-dev designer qttools5-dev designercomponents qttools5-dev feedback qtmobility-dev gallery qtmobility-dev gui qtbase5-dev help qttools5-dev location qtmobility-dev multimedia qtmultimedia5-dev multimediakit qtmobility-dev network qtbase5-dev networkauth libqt5networkauth5-dev nfc qtconnectivity5-dev opengl libqt5opengl5-dev organizer qtmobility-dev positioning qtpositioning5-dev printsupport qtbase5-dev publishsubscribe qtmobility-dev qml qtdeclarative5-dev quick qtdeclarative5-dev quickparticles qtdeclarative5-dev quicktest qtdeclarative5-dev quickwidgets qtdeclarative5-dev script qtscript5-dev scripttools qtscript5-dev sensors qtmobility-dev, libqt5sensors5-dev serialport libqt5serialport5-dev serviceframework qtmobility-dev sql qtbase5-dev svg libqt5svg5-dev systeminfo qtmobility-dev test qtbase5-dev uitools qttools5-dev versit qtmobility-dev webchannel ? webkit libqt5webkit5-dev websockets libqt5websockets5-dev widgets qtbase5-dev x11extras libqt5x11extras5-dev xml qtbase5-dev xmlpatterns libqt5xmlpatterns5-dev
Pokud již máte všechny potřebné knihovny je potřeba provést samotnou kompilaci a následnou instalaci do systému:
$ make $ sudo make install
Pokud vše proběhlo bez problému, máte nyní zkompilovaný a nainstalovaný q5go. Nyní ho stačí v příkazové řádce jednoduše spustit $ q5go. K tomu abychom mohli používat AI analýzu musíme ještě nainstalovat AI motor. q5go umí spolupracovat s Katago.
instalace katago
Nejdříve musíme stáhnout aktuální motor a neuronovou síť. Motorů je k dispozici hned několik. Který vybrat záleží na tom, jestli a jakou máte grafickou kartu (GPU). Přehled motorů je vyznačen v následující tabulce:
Motor Určení ------------------------------------------------------------------- OpenCl Obecné GPU, jak AMD, NVIDIA tak Intel. Nejdřív musí být v systému však OpenCL zprovozněno. CUDA Pouze pro moderní NVIDIE po instalaci cuda a cudnn. TensorRT Také jen pro moderní NVIDIE, rychlejší než CUDA. Eiden Bez GPU pro procesor. Výrazně pomalejší jak přes GPU. U novějších CPU možno použít EidenAVX2.
Já mám v počítači AMD GPU a poměrně silný CPU. Pro mě je tedy vhodný motor OpenCl nebo EidenAVX2. Vzhledem k tomu, že v základě není v Mintu OpenCl zprovozněn a je poměrně složité ho rozchodit a současně mé 12 jádrové CPU je dost silné, rozhodl jsem se pro EidenAVX2.
Následně je nutno stáhnout natrénovanou neuronovou síť. Na výběr jich je hromada. Já zvolil tu, která je označena jako nejsilnější důvěryhodná (Strongest confidently-rated network). Stáhne se archiv bin.gz.
Teď přichází na řadu trocha alchymie. Nejdřív rozbalte motor do vámi zvoleného adresáře, například ./Programy/Katago. Potom ho zkuste spustit:
$ cd ./Programy/Katago/ $ chmod +x katago $ ./katago version
Mě se spuštění nepovedlo. Motor hlásil chybějící knihovny. Bohužel knihovny, které Mint 21.1 nemá. Možností řešení tohoto problému je několik. Já jsem si zvolil použití fake adresáře s chybějícími knihovnami a spouštění motoru přes LD_LIBRARY_PATH. Jednoduše jsem si vytvořil adresář ./fakeLib/usr/lib/x86_64-linux-gnu/. Z repositáře Ubuntu si stáhl potřebné deb balíčky chybějících knihoven. V mém případě se jednalo o:
libzip5_1.5.1-0ubuntu1_amd64.deb libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
Z deb balíčků jsem pomocí správce archivů vybalil dané knihovny do .fakeLib/.. adresáře a znovu zkusil spustit motor:
$ LD_LIBRARY_PATH=/home//.fakeLib/usr/lib/x86_64-linux-gnu/ \ ./katago version
Nedoporučuju balíčky přímo instalovat do systému. Mohlo by to vyvolat kolize.
Nyní je potřeba spustit benchmark pro optimalizaci nastaveni motoru. Před spuštěním je nutno do složky ./Programy/Katago přesunout staženou neuronovou síť (bez rozbalení).
$LD_LIBRARY_PATH=/home//.fakeLib/usr/lib/x86_64-linux-gnu/ \ ./katago benchmark -model kata1.bin.gz
Po dokončení testu vám bude doporučeno množství vláken. V konfiguračním souboru default_gtp.cfg (který je v adresáři u motoru) najděte a upravte nastavení dle doporučené hodnoty:
numSearchThreads = 6
Nyní je AI motor zprovozněn a schází už jen propojení s q5go. Já jsem si pro zjednodušení vytvořil následující script:
./.local/bin/katago.sh #!/bin/bash cd /home//Programy/Katago LD_LIBRARY_PATH=/home//.fakeLib/usr/lib/x86_64-linux-gnu/ \ ./katago $1 $2 $3
Udělal jsem ho spustitelný:
$ chmod +x ./.local/bin/katago.sh
Nyní už jen stačí spustit q5go a otevřít Settings->Computer GO->New Zde následně vyplníme:
A je hotovo. Teď už stačí spustit “Analysis” v pravým panelu dole, nebo v menu Analysis->Connect analysis engine.