Journal OpenCL : avoir l'accélération GPU avec l'AMD libre

Posté par  . Licence CC By‑SA.
Étiquettes :
11
25
avr.
2020

Bonjour Nal,

Pour des raisons qui m'échappent encore, il n'est pas possible sous Fedora 31 (en attendant peut-être sous la 32 ?) d'avoir l'accélération OpenCL et les drivers libres intégrés à Fedora, sauf manipulations dangereuses (copier à la main des bibliothèques, installer des pilotes qui peuvent péter votre installation etc..). Il existe un support pour RHEL/CentOS mais les utilisateurs Fedora en sont privés…
Pour moi il était hors de question de prendre le risque, je m'étais ravisé mais c'était sans compter un utilisateur qui s'est basé sur les rpm (système de package commun à RHEL/CentOS/Fedora) fournis par AMD.
Voici le lien de son post dont je ne fais que retranscrire (en adaptant 2 ou 3 petits trucs) :
https://ask.fedoraproject.org/t/setting-up-folding-home-to-use-opencl-with-the-amdgpu-drivers/6132

Bon voilà ma transcription/adaptation :
1 - Télécharger les packages fournis par AMD sur son site (la version 20.10 est la dernière).

2 - on va créer un repo local pour notre installation. Un petit :

cd /var/local
sudo tar xf ~/Téléchargements/amdgpu-pro-*-rhel-8.1.tar.xz
sudo mv amdgpu-pro-*-rhel-8.1 amdgpu
sudo curl -LO https://hobbes1069.fedorapeople.org/amdgpu/amdgpu.repo

3 - faites un petit sudo dnf update pour bien charger le repo local que l'on vient de créer
4 - Installez les paquets qui vous concernent. Je n'ai eu besoin que de ceux-ci (à vérifier dans quel ordre ils peuvent s'installer :

$ rpm -qa | grep amdgpu
opencl-orca-amdgpu-pro-icd-20.10-1048554.el8.x86_64
amdgpu-pro-core-20.10-1048554.el8.noarch
libdrm-amdgpu-2.4.100-1048554.el8.x86_64
libdrm-amdgpu-common-1.0.0-1048554.el8.noarch

5 - Plusieurs remarques : il y a deux versions de pilotes OpenCL ; "orca" sont pour les anciennes générations de cartes AMD (avant la série Vega, comme moi ici), donc un sudo dnf install opencl-orca-amdgpu-pro-icd suffit, sinon, si vous avez une plus récente, un sudo dnf install opencl-amdgpu-pro-icd ; il se peut que dnf se plaint d'avoir échoué installer une dépendance (pour mon cas il s'agissait de amdgpu-core), car le rpm est fait pour rhel et non pour fedora. Ignorez le message et le paquet que vous êtes en train d'installer s'installera malgré tout (ne me demandez pas pourquoi).

6 - maintenant on va vérifier avec clinfo voir si cela a marché (installez-le au préalable) :
$ clinfo -l
Platform #0: AMD Accelerated Parallel Processing
`-- Device #0: Ellesmere
Platform #1: Clover
`-- Device #0: Radeon RX 580 Series (POLARIS10, DRM 3.36.0, 5.5.17-200.fc31.x86_64, LLVM 9.0.0)
Platform #2: Portable Computing Language
`-- Device #0: pthread-AMD Ryzen 7 1700 Eight-Core Processor

Il doit avoir apparu la ligne Platform #0: AMD Accelerated Parallel Processing (peu importe le numéro de la plateforme) qui confirme que l'installation a marché.

7 - maintenant, on peut tester sous un logiciel comme darktable, la case "Activer OpenCL" n'est plus grisée :
Darktable1
Darktable2
Darktable3

A noter que malgré la présence de Clover (implémentation des drivers OpenCL de Gallium) dans la liste de clinfo l'accélération n'est pas fonctionnelle et n'est pas détectée par les logiciels tant que vous n'installez pas ces pilotes. Vous gardez malgré tout les pilotes libres sans rien n'avoir cassé et sans avoir bidouillé salement. Si jamais vous avez des soucis de stabilité depuis, il suffit de désinstaller les rpm que vous avez installez pour que ça rentre dans l'ordre.

  • # OpenCL Radeon

    Posté par  . Évalué à 3.

    Sur Fedora (25 à 28) avec un gpu polaris10, il me semble que (anciennement avec une RX 480 puis une vega 56) le paquet mesa-libOpenCL suffit.

    Depuis j’ai une 5700 xt sous navi10 et Clover ne support plus les nouveau GPU amd. J’ai donc installé ROCm avec les dépôts CentOS comme expliqué dans mon gist.

    • [^] # Re: OpenCL Radeon

      Posté par  . Évalué à 1. Dernière modification le 26 avril 2020 à 09:12.

      J'ai déjà installé la "clique" ROCm sans trop savoir (ils sont dispo dans les dépôts officiels Fedora), mais ça ne marche pas non plus. Apparemment, AMD a crée deux versions de pilotes OpenCL, le "classique" et ROCm qui semble s'orienter vers les nouvelles et futures architectures.

      • [^] # Re: OpenCL Radeon

        Posté par  . Évalué à 2.

        ROCm est un ensemble de paquets dont le module OpenCL n'est qu'une petite partie.
        Fedora a bien quelques paquets ROCm (pas à jour) dans ses dépôts mais pas celui d'OpenCL.

        Il est indiqué dans le wiki d'AMD qu'il faut installer "rocm-dkms" ou "rock-dkms", mais ceux-ci mon planté ma Fedora à l'époque (et empêche l'utilisation de secureboot).
        Ils ne sont pas nécessaires puisque le noyau Linux dans Fedora a déjà amdpgu et amdkfd.
        Il suffit d’installer le module OpenCL de ROCm "rocm-opencl" puis ROCt Thunk Interface "hsakmt-roc" qui est nécessaire.

        Sur ma RX 5700 xt, "clpeak" me donne un peu plus de perf (~10 points de plus) que le module OpenCL PAL du package admpgu-pro.

        Je trouve dommage qu'aucune distro (sauf arch et gentoo) n'ait inclus l’ensemble des paquets ROCm alors qu'ils sont pourtant opensource.

        • [^] # Re: OpenCL Radeon

          Posté par  . Évalué à 2.

          Je ne suis pas allé plus loin justement parce que je me doute bien qu'installer des paquets "dkms" risquent de mettre le boxon (conflit avec les pilotes kernel déjà intégré), le but était d'avoir quelque chose de fonctionnel pour OpenCL sans rien casser ni prendre de risque.
          Tout n'est pas clair entre OpenCL et ROCm, sur quels fichiers installer etc…
          Bref, c'est un peu le flou. Et le journal est là pour ça aussi, si quelqu'un peut éclaircir certains points.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.