OpenCL, l'accélération pour les rendus (3D et vidéo notamment)

Open... Quoi ?

L'OpenCL est à AMD ce que CUDA est à Nvidia, la prise en charge du GPU pour les opérations de rendu (vidéo, 3D, photo... même LibreOffice s'y est mis). En gros, ce n'est plus votre CPU qui va faire tout cela, mais votre GPU qui dormait jusque là. C'est de la vraie optimisation de votre matériel et pour le coup c'est super utile pour des projets vidéo ou 3D qui peuvent prendre des heures de rendu final.

Logo OpenCL

Si CUDA de Nvidia est propriétaire, OpenCL (Open Computing Language) est open-source. Cela signifie que tous les OS peuvent le prendre en charge, des supercalculateurs IBM aux cartes graphiques de gamers. OpenCL est intégré directement dans les OS Apple par exemple (principalement parce que Apple en est l'initiateur).

Un standard utilisé par l'industrie

L'OpenCL est développé au sein du groupe Khronos, qui développe OpenGL mais aussi Vulkan. C'est un consortium étendu d'entreprises regroupées pour développer les standards de l'industrie. C'est pour cela que beaucoup d'applications professionnelles 3D utilisent OpenGL pour les rendus et non DirectX. Le passage vers Vulkan est en ce moment crucial pour l'industrie.

Mais l'OpenCL est aussi utilisé dans les calculs CPU pour accélérer les rendus complexes. Ainsi les programmes SETI, Folding@Home utilisent l'OpenCL que ce soit sur les cartes graphiques AMD, Nvidia ou Intel (ou d'autres circuits exotiques). Et c'est bien là la force de l'OpenCL : ne pas être limité par un fabricant de matériel.

Oui et sur Linux ?

Comme je suis récemment un nouveau acquéreur d'une carte AMD. Je vais vous expliquer ici mon parcours, car c'est un vrai parcours afin de trouver les bonnes informations et j'espère que cela vous donnera des idées pour vos recherches. ;)

La version OpenCL des pilotes libres est limitée à la version 1.1 Et ceci est un problème : la plupart des applications professionnelles demandent à minima la version 1.2, autant dire que cela est une bonne base mais que je ne trouverai pas mon bonheur dedans !

Le parcours pour installer

Première recherche : “OpenCL”, je trouve les quelques informations que je vous ai présenté plus haut. Mais je me souviens d'un article précédent sur ce blog qui me permet d'aller directement à cette page : la page d'installation des pilotes AMD propriétaires pour Linux. Alors oui ok, j'aime bien mes pilotes libres (ils fonctionnent très bien), mais si je peux installer les pilotes propriétaires et avoir le support d'OpenCL, banco !

Première erreur : vouloir passer par les pilotes officiels. Et oui, comme je l'ai déjà indiqué, les pilotes AMD propriétaires sont faits pour une certaine version de kernel les version LTS (18.04 et 20.04). Or, j'ai un kernel modifié par PopOS, plus haut en version (20.10 maintenant). Donc forcément, quand le pilote propriétaire souhaite installer son module, bin, il ne trouve pas le bon kernel, donc error, donc ne surtout pas rebooter, désinstaller le tout et revenir à la case départ !

Deuxième recherche : passer par des applications qui demandent OpenCL et donc voir s'il n'existe pas un tutoriel bien fait à ce sujet ! Banco ! La recherche “OpenCL Blender” trouve un tutoriel intéressant sur le forum de Blender !

Deuxième erreur, vouloir installer les dernières versions de Blender : oui elles n'existent dans le PopShop qu'en version Flatpak (Blender 2.9) alors que la version des dépôts (2.83.5) est un peu plus ancienne. Effectivement, pour des questions de droits d'accès matériel...etc... les versions Flatpak (et cela s'applique aussi pour les versions Snap) sont parfois bridées dans leurs fonctionnalités, parce que ce sont des applications “sandboxées” (dans leur conteneurs plus ou moins étanches du reste du système).

Et donc, après avoir suivi le tutoriel, édité le script d'installation pour lui rajouter le terme “pop”, installé ce qu'il fallait avec la bonne commande ./amdgpu-install --opencl=legacy,pal --headless --no-dkms, redémarré... Blender s'offre à moi avec le support d'OpenCL ! Et Darktable aussi, et LibreOffice aussi, et KDEnlive aussi ... !!!

Conclusion !

C'est pas simple, il faut lire, comprendre ce que l'on fait, surtout éviter d'installer la partie avec le module du kernel, éviter de rebooter sans croiser les doigts (parce qu'il y a un risque d'écran noir)... bref, on aura vu plus facile ! Dans cet article, je vous partage mes liens, n'hésitez pas à les utiliser, ils sont d'intérêt général !

#amdopencl #popos #mesa #opencl