• [^] # Re: Choix GPU

    Posté par . En réponse au journal Introduction pratique aux grands modèles de langage / LLM. Évalué à 4.

    Retour d'expérience : installation d'une interface Web-UI Stable Diffusion sur un "ancien" PC équipé d'une carte graphique RX580 AMD et d'un système Debian Bookworm. (C'est pas du LLM, mais c'est du réseau de neurones)

    Je ne souhaitais pas installer ROCm depuis les dépôts AMD (parce qu'il ne supporte pas debian) mais préférais utiliser ceux développés par https://salsa.debian.org/rocm-team. Et que cette carte ne soit pas officiellement prise en charge d'après ce que j'ai lu. La version de Bookworm est ROCm 5.2.3-3. J'ai effectué tous mes tests dans une image Docker provenant de https://hub.docker.com/r/rocm/dev-ubuntu-22.04/tags ayant une version similaire de ROCm. Les commandes "rocminfo" et "rocm-smi" fournissent bien les informations relatives à ma carte. Ubuntu parce que c'est "la" distribution pour AMD.

    Premier objectif : faire fonctionner PyTorch avec la carte graphique. Le test consiste à exécuter "torch.cuda.is_available()", qui doit renvoyer True. J'ai tenté d'utiliser les releases officielles (nightly, variantes de version) de PyTorch disponibles à l'adresse suivante : https://download.pytorch.org/whl/rocm5.2, sans succès. Après recherche, j'ai découvert deux dépôts GitHub concernant ma carte GFX803 : https://github.com/xuhuisheng/rocm-gfx803 et https://github.com/tsl0922/pytorch-gfx803. Il semblerait que PyTorch puisse fonctionner... Place aux sessions de compilation de PyTorch ! Grâce à la version v1.13.1, la compilation aboutit et le test renvoie True. Tous les tests unitaires n'aboutissent pas, mais c'est déjà pas mal.

    Le problème survient lorsque Stable Diffusion Web UI recommande PyTorch 2. Malgré divers essais, aucune compilation n'aboutit pour les différentes versions 2. J'ai finalement appris que seule la version v1.13.1 était compatible avec ROCM5.2 via https://pytorch.org/get-started/previous-versions/.

    Il convient de noter que stable-diffusion est nommé dans les releases de https://github.com/tsl0922/pytorch-gfx803/releases/tag/pytorch-1.13.1.

    Après avoir travaillé sur les versions de Stable Diffusion Web UI et celles des modules Python nécessaires pour assurer leur compatibilité (jouer sur les versions en up et downgrade), j'ai enfin réussi à générer une image.

    Merci à l'équipe Salsa de Debian pour son travail sur ROCm intégré nativement à Debian, ainsi qu'aux développeurs qui partagent leurs travaux en ligne. Dommage que cette carte datant de 2018, dotée de capacités permettant de traiter les réseaux de neurones, ne bénéficie pas d'un meilleur soutien de la part du fabricant. Quant à PyTorch, il m'a fallu beaucoup de temps pour trouver des informations afin de procéder à une compilation spécifique pour ma carte et être certain que cela fonctionnerait correctement.