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.

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
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












 J'ai voulu faire cette mise à jour pour une raison principale, ma RX 5500 XT ne peut pas fonctionner sans bios UEFI, et la carte mère que j'avais (Asus M5A87), n'en dispose pas.
J'ai voulu faire cette mise à jour pour une raison principale, ma RX 5500 XT ne peut pas fonctionner sans bios UEFI, et la carte mère que j'avais (Asus M5A87), n'en dispose pas. Tout cela m'a pris, environ 2 heures, pour y aller calmement, tranquillement, en nettoyant au passage quelques poussières, réorganisant les passages de câbles dans mon boîtier antédiluvien. Si vous ne connaissez pas, c'est un Textorm 974MB, toujours fonctionnel pour mon usage.
Tout cela m'a pris, environ 2 heures, pour y aller calmement, tranquillement, en nettoyant au passage quelques poussières, réorganisant les passages de câbles dans mon boîtier antédiluvien. Si vous ne connaissez pas, c'est un Textorm 974MB, toujours fonctionnel pour mon usage.


 Ceci posé, pourquoi est-ce que j'en parle pour AMD, le frère ennemi d'Intel ?
Parce que depuis quelques années, AMD s'est investi dans les pilotes open-source sur Linux, et a même embauché des ingénieurs pour ce faire. Depuis les cartes graphiques RX (480 à 580 et leurs dérivées), les pilotes open-source AMD sont capables des meilleures performances face aux pilotes propriétaires de... AMD ! Alors parfois, certaines cartes très récentes sont mal supportées par le pilote open-source, comme ce fut le cas des premières cartes Navi, mais des correctifs rapides (en moins de 2 semaines) ont été apportés aux noyaux des différentes distributions Linux. Manjaro en a profité rapidement car les noyaux sont plus récents et se mettent à jour très rapidement, mais les autres distributions aussi avec des “backport” vers des noyaux plus anciens (en gros, on patche le noyau plus ancien pour qu'il profite du nouveau support matériel ou de corrections de bugs). Dans tous les cas, les récentes cartes sont toujours supportées par les pilotes propriétaires le
Ceci posé, pourquoi est-ce que j'en parle pour AMD, le frère ennemi d'Intel ?
Parce que depuis quelques années, AMD s'est investi dans les pilotes open-source sur Linux, et a même embauché des ingénieurs pour ce faire. Depuis les cartes graphiques RX (480 à 580 et leurs dérivées), les pilotes open-source AMD sont capables des meilleures performances face aux pilotes propriétaires de... AMD ! Alors parfois, certaines cartes très récentes sont mal supportées par le pilote open-source, comme ce fut le cas des premières cartes Navi, mais des correctifs rapides (en moins de 2 semaines) ont été apportés aux noyaux des différentes distributions Linux. Manjaro en a profité rapidement car les noyaux sont plus récents et se mettent à jour très rapidement, mais les autres distributions aussi avec des “backport” vers des noyaux plus anciens (en gros, on patche le noyau plus ancien pour qu'il profite du nouveau support matériel ou de corrections de bugs). Dans tous les cas, les récentes cartes sont toujours supportées par les pilotes propriétaires le  AMD a un gros retard sur Nvidia dans le domaine des cartes graphiques et notamment sur le haut de gamme. Aujourd'hui, les RTX dominent le marché depuis leur sortie. Mais l'apparition de la gamme Navi est en train de changer les choses. D'une part les performances sont au rendez-vous, mais en plus, l'efficacité énergétique, le point faible des cartes de la gamme RX et Vega est en gros progrès. La carte Vega 64, par exemple, était un véritable monstre de chauffage par excellence (jusqu'à près de 380W en pic !).
AMD a un gros retard sur Nvidia dans le domaine des cartes graphiques et notamment sur le haut de gamme. Aujourd'hui, les RTX dominent le marché depuis leur sortie. Mais l'apparition de la gamme Navi est en train de changer les choses. D'une part les performances sont au rendez-vous, mais en plus, l'efficacité énergétique, le point faible des cartes de la gamme RX et Vega est en gros progrès. La carte Vega 64, par exemple, était un véritable monstre de chauffage par excellence (jusqu'à près de 380W en pic !).
 À performances équivalentes, les Navi s'en sortent beaucoup mieux que leurs aînées, même si la comparaison avec Nvidia est encore, sur ce point, à l'avantage des verts.
À performances équivalentes, les Navi s'en sortent beaucoup mieux que leurs aînées, même si la comparaison avec Nvidia est encore, sur ce point, à l'avantage des verts.
 Ensuite, les pilotes open-sources atteignent en ce moment des performances étonnantes, meilleures que Windows sur des jeux Windows.
Une belle base pour la suite des séries Navi basées sur les évolutions de RDNA ! En plus, des nouveautés comme
Ensuite, les pilotes open-sources atteignent en ce moment des performances étonnantes, meilleures que Windows sur des jeux Windows.
Une belle base pour la suite des séries Navi basées sur les évolutions de RDNA ! En plus, des nouveautés comme 




