Voici comment installer KataGo sur une Debian vierge avec pour objectif final de le mettre sur une clef USB de 32G.
Faites une installation sur une disque externe USB complet, sans gestionnaire de volume logique et sans créer une partition pour /home
Une fois ceci fait vous travaillez sur la Debian que vous venez d'installer, lancer les commandes :
sudo apt update sudo apt install gcc software-properties-common git cmake libssl-dev pkg-config qtbase5-dev qt5-qmake qtbase5-dev-tools qtmultimedia5-dev libqt5svg5-dev
La documentation officielle : https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
La page des chargements : https://developer.nvidia.com/cuda-downloads
Lancer les commandes :
wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda-repo-debian12-12-6-local_12.6.0-560.28.03-1_amd64.deb sudo dpkg -i cuda-repo-debian12-12-6-local_12.6.0-560.28.03-1_amd64.deb sudo cp /var/cuda-repo-debian12-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo add-apt-repository contrib sudo apt-get update sudo apt-get install cuda-toolkit sudo apt-get install nvidia-open
Ce qui suit permet d'installer facilement la version 9 mais KataGo veut la version 8. Je laisse l'information ici, elle servira peut-être dans le futur. Mais vous n'avez pas à l'utiliser maintenant.
wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.de sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update sudo apt-get -y install cudnn9-cuda-12
Pour installer la version 8, il faut faire cette procédure manuellement car il faut un compte NVIDIA.
La version à charger : https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-local-repo-debian11-8.9.7.29_1.0-1_amd64.deb
Lancer les commandes :
sudo dpkg -i cudnn-local-repo-debian11-8.9.7.29_1.0-1_amd64.deb sudo dpkg -i /var/cudnn-local-repo-debian11-8.9.7.29/libcudnn8_8.9.7.29-1+cuda12.2_amd64.deb sudo dpkg -i /var/cudnn-local-repo-debian11-8.9.7.29/libcudnn8-dev_8.9.7.29-1+cuda12.2_amd64.deb
Ceci est facultatif.
Il faut charger le bon fichier '.deb' à partir de https://developer.nvidia.com/tensorrt Normalement c'est « TensorRT 10.3 GA for Ubuntu 22.04 and CUDA 12.0 to 12.5 DEB local repo Package »
Installer le paquet :
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5_1.0-1_amd64.deb
Suivre la manipulation indiquée pour copier la clef de vérification afin de permettre les mises à jour.
Installer les paquets qui sont dedans :
dpkg -i \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-bin_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-dispatch-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-dispatch10_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-headers-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-headers-plugin-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-lean-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-lean10_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-plugin-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-plugin10_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-samples_10.3.0.26-1+cuda12.5_all.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-vc-plugin-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer-vc-plugin10_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvinfer10_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvonnxparsers-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/libnvonnxparsers10_10.3.0.26-1+cuda12.5_amd64.deb dpkg -i --ignore-depends=python3 \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/python3-libnvinfer-dispatch_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/python3-libnvinfer-lean_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/python3-libnvinfer_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/python3-libnvinfer-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/tensorrt-dev_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/tensorrt-libs_10.3.0.26-1+cuda12.5_amd64.deb \ /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/tensorrt_10.3.0.26-1+cuda12.5_amd64.deb
Vous devez redémarrer la machine.
Et vous lancez nvidia-smi pour vérifier que c'est ok.
Le plus simple est de faire les commandes suivantes :
git clone https://github.com/lightvector/KataGo.git cd KataGo/cpp # Remplacer OPENCL par TENSORRT si vous voulez l'utiliser et qu'il a été installé. cmake . -DUSE_BACKEND=OPENCL -DBUILD_DISTRIBUTED=1 make -j 4
Charge un modèle du site :
https://katagotraining.org/networks/
et le copier sous le nom KataGo/cpp/default_model.bin.gz
Créer une configuration de KataGo adaptée à votre carte graphique en lançant les commandes :
cd KataGo/cpp ./katago genconfig cp gtp.cfg default_gtp.cfg
L'interface la plus simple à installer est q5Go. Il suffit de lancer les commandes suivantes :
git clone https://github.com/bernds/q5Go.git cd q5Go qmake src/q5go.pro PREFIX=$HOME make ./q5go
Vous configurez le program contre lequel jouer
en indiquant le chemin vers KataGo :
/home/.../KataGo/cpp/katago
avec comme paramètre gtp
On suppose que tout ce qui précède a été fait sur un disque dur USB externe que l'on veut copier sur une clef USB plus petite. On va donc tasser les 3 partitions tout au début du disque externe dans la zone qui sera copiée sur la clef USB.
On doit avoir fait le ménage sinon cela ne tient pas sur une clef de 32Go. Si vous avez installé TensorRT il faut une clef de 64Go.
apt clean apt autoremove rm ~/Téléchargements/*
On suppose que le disque s'appelle /dev/sdx dans la réalité cela sera probablement une lettre du début de l'alphabet à la place de x.
Démarrer un Linux autre que celui du disque dur externe et lancer lsblk pour lister les supports de stockage. Ce qui suit peut détruire le contenu du disque externe, c'est peut être une bonne idée d'en faire une copie complète.
Votre disque disque externe devrait avoir 3 partitions. Avec mon disque de 1To cela donne :
sdx 8:48 0 931.5G 0 disk ├─sdx1 8:49 0 512M 0 part ├─sdx2 8:50 0 930.1G 0 part /media/exco/45efb7fb-e428-463f-b245-4bfa802ef29c └─sdx3 8:51 0 977M 0 part
L'une des partitions de votre disque externe devrait normalement avoir été montée automatiquement par votre système. Il faut la démonter avec le nom indiqué, avec l'exemple ci-dessus : umount /media/exco/45efb7fb-e428-463f-b245-4bfa802ef29c Attention : votre système peut la remonter automatiquement à tous moment, vérifier régulièrement qu'elle n'est pas montée.
On lance la commande gparted /dev/sdx :
Vérifer que le système de fichier est bien démonté et copier sur la clef USB que l'on supposera s'appeler /dev/sdy avec :
dd bs=64K conv=noerror,sync status=progress if=/dev/sdx of=/dev/sdy
La copie se terminera par une erreur car la clef USB est trop petite, c'est normal.
Par contre la table de partition de la clef USB n'est pas bonne car elle indique la mauvaise taille. Pour réparer cela il faut lancer : sgdisk -v -e /dev/sdy
Normalement vous pouvez démarrer une machine sur la clef USB et lancer q5go
Dans ce cas il faut convertir la partitionnement GTP en partitionnement MBR et réinstaller GRUB.
Sur votre système normal :
sudo sgdisk -v --gpttombr 1:2:3 /dev/sdy
Il faut ensuite réinstaller le système de démarrage.
sudo mount --bind /proc /media/..../CLEF-USB/proc sudo mount --bind /dev /media/..../CLEF-USB/dev sudo chroot /media/..../CLEF-USB apt install grub-pc # éventuellement forcer l'installation update-grub grub-install /dev/sdy
La clef USB permet alors de faire démarrer une très vieille machine.