Aller au contenu
AESTECHNO

20 min de lecture Hugues Orgitello

CUDA ou OpenCL : choisir l'accélération de votre projet embarqué en 2026

CUDA ou OpenCL pour un projet d'IA embarquée en 2026 ? Matrice de décision et retour terrain AESTECHNO sur Jetson Orin NX : verrouillage NVIDIA, portabilité, SYCL.

Matrice de décision CUDA, OpenCL, SYCL selon le silicium et la portabilité Matrice deux axes situant CUDA, OpenCL, SYCL et les SDK propriétaires en fonction du silicium ciblé (GPU NVIDIA Jetson, GPU de SoC ou FPGA, NPU ou DSP dédié) et de l'horizon de portabilité (produit unique mono-fournisseur contre plateforme multi-silicium sur dix à quinze ans). CUDA, OpenCL ou SYCL : le choix dépend du silicium, pas de l'API Où chaque framework gagne en 2026, selon la cible matérielle et l'horizon de portabilité Silicium ciblé au démarrage du projet GPU NVIDIA Jetson GPU de SoC ou FPGA NPU ou DSP dédié produit unique multi-silicium 10 ans Horizon de portabilité CUDA + TensorRT Jetson Orin Nano, Orin NX, AGX Orin écosystème le plus mûr en edge AI le choix par défaut sur Jetson CUDA, verrouillage assumé performance maximale, mais code lié à NVIDIA pour dix ans acceptable si la roadmap reste NVIDIA OpenCL, SYCL, Vulkan compute GPU Mali, AMD, Intel, Xilinx FPGA un seul code, plusieurs cibles la voie portabilité multi-fournisseur SDK du fondeur Hailo, NXP eIQ, ST Cube.AI Texas Instruments, ethos-U ni CUDA ni OpenCL, mais un SDK dédié Repères AESTECHNO 2026, à calibrer par projet selon la cible silicium et la durée de vie produit.
Matrice de décision : le framework d'accélération découle du silicium ciblé et de l'horizon de portabilité produit, pas d'une préférence d'API.

Choisir entre CUDA et OpenCL pour un projet d'IA embarquée, c'est d'abord choisir un silicium : le framework d'accélération découle du processeur, pas l'inverse. Chez AESTECHNO, bureau d'études électronique à Montpellier, nous avons livré au premier trimestre 2026 un projet sur module NVIDIA Jetson Orin NX dont l'architecture engageait toute la pile CUDA. Voici notre grille d'arbitrage. Mis à jour mai 2026.

Le vrai choix au démarrage : le silicium avant l'API

Le choix d'un framework d'accélération GPU est la décision logicielle qui découle du processeur retenu pour un produit embarqué. CUDA n'existe que sur silicium NVIDIA, tandis qu'OpenCL et SYCL visent un parc hétérogène (GPU de SoC, FPGA, CPU multicoeur). Choisir le calcul accéléré, c'est donc d'abord choisir une cible matérielle, puis seulement ensuite l'API qui l'exploite.

Beaucoup d'équipes abordent la question dans le mauvais sens. Elles comparent CUDA et OpenCL sur le papier (performance, écosystème, courbe d'apprentissage) avant d'avoir verrouillé la cible silicium. Or, dans la pratique d'un produit industriel, la séquence est inverse : le cahier des charges fixe une enveloppe de puissance, un budget thermique, une cible d'inférences par seconde et une durée de vie produit. Ces contraintes orientent vers une famille de processeurs, et cette famille rend l'arbitrage API presque automatique. Un module Jetson impose CUDA. Un GPU Mali dans un SoC NXP i.MX 8M Plus impose OpenCL. Un FPGA Xilinx ouvre la voie OpenCL ou HLS. Un NPU Hailo ou un accélérateur ethos-U impose le SDK du fondeur.

Contrairement à l'idée reçue selon laquelle on choisit librement son framework de calcul, le vrai degré de liberté se situe en amont, au moment de sélectionner le processeur. Une fois ce choix gravé dans le routage du PCB, l'API est largement déterminée. C'est pourquoi nous traitons CUDA contre OpenCL comme un sous-arbitrage d'une décision d'architecture plus large, au même titre que notre méthode pour choisir entre SoC, SoM, SBC et custom.

CUDA en bref : l'écosystème qui a gagné le edge AI

CUDA est la plateforme de calcul parallèle propriétaire de NVIDIA, qui expose les coeurs GPU et les Tensor Cores via un modèle de programmation C/C++ étendu. Sur l'embarqué, elle s'appuie sur la pile JetPack (pilotes, cuDNN, TensorRT) et constitue l'écosystème logiciel le plus mûr pour l'inférence en périphérie, du Jetson Orin Nano au module AGX Orin.

La force de CUDA n'est pas le langage, c'est tout ce qui gravite autour. Les bibliothèques optimisées (cuDNN pour les réseaux de neurones, TensorRT pour l'optimisation et la quantification, cuBLAS, NPP pour le traitement d'image) couvrent la quasi-totalité des besoins d'un projet de vision ou d'IA embarquée. Le module Jetson Orin NX 16 Go embarque 2048 coeurs CUDA et 64 Tensor Cores de troisième génération. C'est la cible type : architecture Ampere gravée en 5 nm chez TSMC, 16 Go de LPDDR5, mémoire normalisée par le JEDEC, à environ 102 Go/s. Selon NVIDIA, le module atteint jusqu'à 100 TOPS en INT8 (mode sparse) dans une enveloppe de 10 à 25 W, et jusqu'à 157 TOPS avec le mode Super de JetPack 6.2, qui réclame un refroidissement actif capable d'évacuer 40 W.

Pour une équipe qui doit livrer un démonstrateur d'inférence en quelques semaines, cet écosystème raccourcit massivement le time-to-market. On part d'un modèle PyTorch ou ONNX, on l'optimise avec TensorRT, et on tourne sur cible sans réécrire les noyaux de calcul. C'est précisément ce qui a fait de CUDA le standard de facto du déploiement d'IA industrielle embarquée, malgré son caractère fermé.

OpenCL en bref : le standard ouvert et hétérogène

OpenCL (Open Computing Language) est un standard ouvert, maintenu par le Khronos Group, qui décrit un modèle de calcul parallèle portable sur un parc matériel hétérogène : GPU de toutes marques, CPU multicoeur, FPGA et certains DSP. Un même noyau OpenCL peut, en théorie, s'exécuter sur un GPU AMD, un GPU Mali de SoC ou un FPGA Xilinx, sans réécriture du code de calcul.

L'argument central d'OpenCL est l'indépendance fournisseur. Là où CUDA vous lie à NVIDIA, OpenCL cible le silicium que vous voulez, ce qui en fait l'option naturelle dès que le projet ne tourne pas sur Jetson. Dans nos projets RF et conception de cartes FPGA, l'accélération de traitement du signal passe historiquement par OpenCL ou par la synthèse haut niveau (HLS) sur Xilinx, pas par CUDA. De même, un produit basé sur un SoC à GPU Mali ou Adreno exploitera l'accélération via OpenCL ou Vulkan, jamais via CUDA. Un Raspberry Pi, par exemple, expose son GPU VideoCore par des chemins OpenCL et Vulkan, et reste fermé à CUDA.

Le revers est connu : OpenCL demande davantage de code d'infrastructure (sélection de plateforme, création de contexte, file de commandes, compilation des noyaux à l'exécution) et son écosystème de bibliothèques IA prêtes à l'emploi reste très en retrait de celui de CUDA. La portabilité du code source ne garantit pas la portabilité des performances : un noyau réglé pour un GPU donné demande souvent un nouveau réglage sur un autre. C'est le compromis fondateur, une liberté matérielle payée par un effort d'ingénierie supérieur.

CUDA contre OpenCL : la comparaison qui compte

La comparaison utile ne porte pas sur la syntaxe des noyaux, qui se ressemble beaucoup, mais sur l'écosystème, la pérennité et le coût d'intégration. Le tableau ci-dessous résume les sept critères que nous pondérons systématiquement en phase de spécification, avant d'écrire la moindre ligne de code de calcul.

Critère CUDA (NVIDIA) OpenCL (Khronos)
Cible silicium GPU NVIDIA uniquement (Jetson, dGPU) GPU multi-marques, CPU, FPGA, DSP
Bibliothèques IA cuDNN, TensorRT, cuBLAS, très complètes clBLAST, MIOpen, fragmentées et partielles
Outillage et profilage Nsight Systems, Nsight Compute, mûr Variable selon le fondeur, inégal
Portabilité du code Nulle hors NVIDIA Élevée sur le source, à reprofiler par cible
Courbe d'apprentissage Rapide grâce aux exemples et à la doc Plus lente, code hôte verbeux
Gouvernance Propriétaire, contrôlée par NVIDIA Standard ouvert Khronos, multi-acteurs
Risque fournisseur Verrouillage fort sur dix ans Faible, seconde source ouverte
Figure 1. Sept critères d'arbitrage CUDA contre OpenCL pondérés en phase de spécification. La syntaxe des noyaux n'y figure pas : elle pèse peu face à l'écosystème et à la pérennité.

Au niveau du noyau de calcul lui-même, les deux modèles sont proches, comme le montre cet additionneur de vecteurs. La différence ne se joue pas là, mais dans le code hôte : une dizaine de lignes côté CUDA pour lancer le noyau, contre cinquante à quatre-vingts lignes côté OpenCL pour sélectionner la plateforme, créer le contexte, la file de commandes, compiler le programme et gérer les tampons.

// Noyau CUDA
__global__ void add(const float* a, const float* b, float* c, int n) {
  int i = blockIdx.x * blockDim.x + threadIdx.x;
  if (i < n) c[i] = a[i] + b[i];
}

// Noyau OpenCL equivalent __kernel void add(__global const float* a, __global const float* b, __global float* c, const int n) { int i = get_global_id(0); if (i < n) c[i] = a[i] + b[i]; }

Figure 2. Le même additionneur de vecteurs en CUDA et en OpenCL. Les noyaux sont presque identiques ; l'écart d'effort se concentre dans le code hôte et l'outillage, pas dans l'algorithme.

L'état réel en 2026 : OpenCL a stagné, SYCL a pris le relais

L'état du paysage en 2026 est le contexte que tout arbitrage honnête doit intégrer : OpenCL n'a plus la dynamique de la décennie précédente, et plusieurs technologies se sont partagées ses cas d'usage. Réduire la décision à un duel CUDA contre OpenCL revient à raisonner avec une carte d'il y a dix ans, alors que le terrain a profondément changé.

OpenCL reste vivant mais figé. Selon Khronos, la version 3.0 a rendu optionnelles la plupart des fonctionnalités introduites en 2.x : un aveu tacite de fragmentation, qui ramène le socle commun garanti au niveau d'OpenCL 1.2. En parallèle, SYCL s'est imposé comme l'héritier moderne. SYCL 2020 s'est découplé d'OpenCL et peut désormais cibler CUDA, HIP et Vulkan comme back-ends, tout en restant du C++ standard pur, conforme à la norme ISO/IEC 14882. L'implémentation oneAPI d'Intel (DPC++) et l'implémentation libre AdaptiveCpp, hébergée sur GitHub, en sont les deux porte-drapeaux, avec une trajectoire de convergence annoncée jusqu'en 2027.

La gouvernance s'est elle aussi recomposée. La UXL Foundation, hébergée par la Linux Foundation, pilote désormais l'évolution de oneAPI et a signé un accord de liaison avec le Khronos Group pour rapprocher les deux écosystèmes ouverts. Selon AMD, la pile ROCm et son interface HIP offrent un chemin de portage quasi automatique depuis CUDA, et AdaptiveCpp s'appuie sur HIP pour viser à la fois ROCm et CUDA. Enfin, Vulkan compute est devenu une voie de calcul GPU portable crédible sur mobile et embarqué, là où OpenCL n'est pas disponible.

Pour l'inférence pure, un troisième acteur change la donne : les moteurs d'exécution spécialisés. TensorRT chez NVIDIA, TVM en open source, ou les compilateurs ONNX Runtime abstraient le framework de bas niveau. Sur Jetson, on ne code presque jamais du CUDA à la main pour de l'inférence : on passe par TensorRT, qui génère les noyaux optimisés. Et lorsque la charge ne tient pas sur GPU, des accélérateurs dédiés comme Google Coral, bâti sur un Tensor Processing Unit (TPU), Intel Movidius Myriad ou Hailo prennent le relais via leur propre SDK, souvent couplé à TensorFlow Lite. La vraie question de 2026 n'est donc pas tant CUDA ou OpenCL que celle-ci : framework propriétaire intégré contre pile ouverte portable, à quel horizon de maintenance.

Paysage des frameworks de calcul accéléré en 2026 Schéma positionnant CUDA, OpenCL, SYCL, ROCm HIP, Vulkan compute et les moteurs d'inférence TensorRT et TVM selon deux axes : ouverture de la gouvernance et portabilité matérielle effective. CUDA est fermé mais très intégré, OpenCL est ouvert mais figé, SYCL et oneAPI montent comme héritiers portables. Paysage 2026 du calcul accéléré : du fermé intégré à l'ouvert portable Portabilité matérielle effective Ouverture gouvernance CUDA fermé, très intégré ROCm / HIP portage depuis CUDA SYCL / oneAPI héritier portable, C++ pur OpenCL 3.0 ouvert mais figé Vulkan compute GPU mobile et embarqué TensorRT, TVM moteurs d'inférence par-dessus Sources : Khronos Group, UXL Foundation, NVIDIA, AMD, lecture AESTECHNO 2026.
Figure 3. Positionnement des frameworks en 2026. CUDA domine par l'intégration, SYCL et oneAPI montent comme héritiers portables d'OpenCL, dont la version 3.0 a figé le socle commun.

Verrouillage NVIDIA contre standard ouvert : l'arbitrage à dix ans

Le verrouillage fournisseur (vendor lock-in) désigne la dépendance technique et commerciale d'un produit à un seul fournisseur de silicium, dont on ne peut plus sortir sans réécrire une part substantielle du logiciel. Choisir CUDA, c'est accepter ce verrouillage en échange d'un écosystème supérieur ; choisir une pile ouverte, c'est payer un surcoût d'ingénierie pour préserver une seconde source.

Sur un produit grand public à durée de vie courte, le verrouillage CUDA est rarement un problème : la performance et le time-to-market priment, et le produit aura été renouvelé avant que la dépendance ne coûte cher. Sur un équipement industriel ou médical pensé pour dix à quinze ans de série, le calcul change. Une rupture d'approvisionnement, un changement de politique tarifaire NVIDIA, ou une obsolescence de module peuvent forcer un changement de plateforme, et tout le code CUDA, cuDNN et TensorRT devra alors être réécrit. C'est la même logique de seconde source que nous appliquons au choix de l'application processor, détaillée dans notre méthode pour arbitrer SoC, SoM et custom, et dans notre stratégie face aux pénuries de composants.

À l'inverse, une architecture bâtie sur SYCL ou OpenCL conserve un chemin de repli. Le code de calcul, écrit en standard ouvert, peut viser un autre GPU ou un FPGA moyennant un effort de reprofilage, sans réécriture complète. Cette résilience a un coût immédiat (moins de bibliothèques prêtes, plus de code d'infrastructure) mais protège le programme sur la durée. L'arbitrage se résume à une question de pondération : combien vaut la portabilité future face à la productivité présente, sur l'horizon de vie réel du produit.

Arbitrage verrouillage contre portabilité selon la durée de vie produit Graphique en quadrants opposant l'effort d'ingénierie initial à la portabilité future. CUDA se place en haut à gauche, faible effort initial et faible portabilité. SYCL et OpenCL se placent en bas à droite, effort initial plus élevé et portabilité forte. La flèche indique que plus la durée de vie produit est longue, plus la pile ouverte devient pertinente. Verrouillage CUDA contre portabilité ouverte Portabilité future du code de calcul Effort d'ingénierie initial CUDA + TensorRT démarrage rapide verrouillage NVIDIA SYCL / OpenCL effort initial supérieur seconde source préservée plus la durée de vie est longue, plus la pile ouverte devient pertinente Repères AESTECHNO 2026, pondération à fixer selon l'horizon de vie réel du produit.
Figure 4. L'arbitrage verrouillage contre portabilité. Sur un produit court, CUDA gagne ; sur un équipement à dix ou quinze ans, la pile ouverte amortit son surcoût initial.

Retour terrain : Jetson Orin NX et le coût assumé du verrouillage CUDA

Au premier trimestre 2026, sur un projet client industriel sous accord de confidentialité, dans notre laboratoire AESTECHNO à Montpellier, nous avons livré un module Jetson Orin NX avec une couche Board Support Package (BSP) entièrement personnalisée, développée sous Yocto plutôt que Buildroot, sur une base noyau Linux LTS suivie sur kernel.org (layers custom, configuration kernel, device tree, rootfs). Le choix du Jetson engageait mécaniquement toute la pile CUDA et TensorRT : c'est le compromis que nous avons documenté et assumé avec le client. Notre méthodologie de qualification matérielle reste constante sur chaque carrier Jetson : caractérisation de l'intégrité de signal des liens haute vitesse (PCIe Gen4, MIPI CSI caméras, USB 3.2 à 10 Gbps) sur banc Tektronix TekExpress, profilage de consommation au Nordic PPK2 complété par un Keithley DMM7510 7,5 digits pour les courants de veille, et qualification thermique en chambre climatique -40 / +85 degrés Celsius selon les normes IEC 60068-2-1 et IEC 60068-2-2. Contrairement à l'idée reçue selon laquelle la maturité de CUDA rend le choix gratuit, nous avons constaté que la vraie contrainte d'un Orin NX en boîtier industriel n'est pas le nombre de TOPS, mais le budget thermique : tenir un mode 15 W sans ventilateur impose un dissipateur de 10 à 15 mm d'épaisseur et un plan de masse cuivre que nous validons avant le routage final, conformément aux travaux de l'IEEE sur la fiabilité thermique des assemblages. Malgré la tentation de viser le mode Super à 40 W pour afficher 157 TOPS, nous recommandons de figer l'enveloppe de puissance d'abord, puis de quantifier le modèle avec TensorRT en INT8, ce qui réduit d'environ 75% l'empreinte mémoire face au format flottant IEEE 754 et fait entrer le réseau dans ce budget. Le retour d'expérience de notre équipe sur le portage de distributions Linux embarqué et sur la conception produit industriel confirme un schéma constant : sur ces projets, le verrouillage CUDA est acceptable quand la roadmap reste NVIDIA sur dix ans, et risqué dès qu'une seconde source non-NVIDIA est exigée. Dans notre pratique sur les plateformes d'IA embarquée, nous avons observé que le client qui pose la question de la portabilité en phase de spécification est aussi celui qui valorise le mieux une architecture découplée, et c'est précisément à ce moment qu'une pile SYCL mérite d'être évaluée face à CUDA.

Projet d'IA embarquée à arbitrer ? Expertise AESTECHNO Jetson, FPGA, SoC

Notre bureau d'études à Montpellier conçoit les cartes et la pile logicielle des produits d'IA et de traitement du signal embarqués, et arbitre le framework d'accélération avec vous :

  • Sélection du couple silicium plus framework (Jetson plus CUDA, SoC plus OpenCL, FPGA plus HLS) selon volume, durée de vie et portabilité.
  • Conception carrier Jetson Orin, routage PCIe Gen4 et MIPI CSI, qualification SI sur banc Tektronix TekExpress.
  • Budget thermique et profilage de consommation au PPK2 et Keithley DMM7510 avant le routage final.
  • Portage BSP Yocto, intégration TensorRT ou pile ouverte SYCL, plan de seconde source.

Audit gratuit 30 min

Notre grille de décision : quel framework pour quel projet

La grille de décision est l'arbre de questions filtres qui transforme les contraintes projet en choix de framework défendable. Elle part toujours du silicium ciblé, puis affine selon la nature de la charge (inférence pure ou calcul générique) et selon l'horizon de portabilité exigé par la durée de vie produit.

Première question : le produit tourne-t-il sur silicium NVIDIA Jetson ? Si oui, et que la charge est de l'inférence, la réponse est TensorRT sur CUDA, sans hésitation, car aucun écosystème embarqué n'égale sa maturité. Si la cible est un GPU de SoC (Mali, Adreno), un FPGA ou un CPU multicoeur, la voie ouverte s'impose : OpenCL pour l'existant, SYCL pour le neuf, car SYCL offre un C++ moderne tout en gardant un back-end OpenCL. Si la charge est exclusivement de l'inférence de réseaux de neurones sur un NPU dédié (Hailo, ethos-U, NXP), ni CUDA ni OpenCL ne s'appliquent : c'est le SDK du fondeur qui prime.

Deuxième filtre, l'horizon de portabilité. Même sur Jetson, si le cahier des charges exige une seconde source non-NVIDIA à dix ans, nous recommandons d'isoler la logique métier de la couche d'accélération dès la conception, et d'évaluer SYCL comme couche d'abstraction. Contrairement à un réflexe répandu, ce découplage ne coûte pas cher s'il est pensé en amont, et il coûte très cher s'il est ajouté après. La grille complète tient en quatre questions, comme le montre l'arbre ci-dessous.

Arbre de décision du framework d'accélération en quatre questions Diagramme de décision en quatre questions filtres : silicium ciblé, nature de la charge, horizon de portabilité, et présence d'un NPU dédié. Selon les réponses, le diagramme oriente vers CUDA et TensorRT, OpenCL ou SYCL, ou le SDK du fondeur. Arbre de décision : quel framework d'accélération en 4 questions Q1 : silicium ciblé ? Jetson, GPU de SoC, FPGA, NPU Jetson SoC, FPGA NPU dédié CUDA + TensorRT inférence sur Jetson Orin OpenCL ou SYCL voie ouverte hétérogène SDK du fondeur Hailo, ethos-U, eIQ Q2 : nature de la charge ? inférence ou calcul générique inférence calcul générique moteur d'inférence TVM, ONNX Runtime, SDK SYCL si neuf OpenCL si base existante Q3 et Q4 : seconde source à 10 ans ? Découpler la couche accélération. si oui, isoler la logique métier et évaluer SYCL comme abstraction.
Figure 5. Arbre de décision en quatre questions. Le silicium tranche en premier, la nature de la charge ensuite, et l'horizon de seconde source décide du découplage de la couche d'accélération.

Pourquoi choisir AESTECHNO ?

  • 10+ ans d'expertise en conception de cartes Jetson Orin, FPGA et SoC pour l'IA embarquée
  • 100% de réussite aux certifications CE/FCC
  • 65 projets réalisés depuis 2022
  • Bureau d'études français basé à Montpellier

En résumé

Le choix CUDA contre OpenCL est en réalité une conséquence du silicium retenu, et un arbitrage entre productivité immédiate et portabilité à dix ans. CUDA gagne sur Jetson et sur l'écosystème ; la pile ouverte gagne dès que la seconde source ou un parc hétérogène entrent en jeu. La décision se prend en phase de spécification, pas après le routage.

  • Silicium d'abord : le processeur ciblé détermine l'API ; Jetson impose CUDA, un GPU de SoC ou un FPGA imposent OpenCL ou SYCL, un NPU impose le SDK du fondeur.
  • Écosystème : CUDA domine grâce à cuDNN et TensorRT ; OpenCL reste fragmenté et figé sur sa version 3.0.
  • 2026 : SYCL 2020 et oneAPI sous la UXL Foundation sont les héritiers portables, avec ROCm/HIP et Vulkan compute en compléments.
  • Verrouillage : CUDA lie le produit à NVIDIA pour dix ans ; acceptable sur produit court, risqué sur équipement industriel longue vie.
  • Méthode AESTECHNO : figer l'enveloppe de puissance, qualifier le silicium sur banc, puis découpler la couche d'accélération si une seconde source est exigée.

Questions fréquentes

CUDA est-il toujours plus rapide qu'OpenCL en 2026 ?

Sur silicium NVIDIA, CUDA est généralement plus performant à effort égal, car les bibliothèques cuDNN et TensorRT sont réglées au plus près de l'architecture Ampere des Jetson Orin. OpenCL peut atteindre des performances comparables sur le même GPU, mais demande un effort d'optimisation supérieur et un écosystème de bibliothèques moins fourni. Hors NVIDIA, la comparaison n'a pas de sens : CUDA n'existe pas, et OpenCL ou SYCL sont les seules options portables disponibles.

Faut-il encore apprendre OpenCL ou directement SYCL ?

Pour un projet neuf qui vise la portabilité, SYCL 2020 est le meilleur point d'entrée : c'est du C++ standard moderne, il cible CUDA, HIP, OpenCL et Vulkan en back-end, et il bénéficie de l'élan de la UXL Foundation et d'Intel oneAPI. OpenCL reste pertinent pour maintenir une base de code existante ou cibler un FPGA dont le flot HLS s'appuie dessus. Apprendre SYCL donne accès à OpenCL par-dessous, l'inverse n'est pas vrai.

Sur un Jetson Orin NX, code-t-on vraiment en CUDA à la main ?

Rarement pour de l'inférence. Le flux habituel part d'un modèle PyTorch ou ONNX, que l'on optimise et quantifie avec TensorRT ; ce dernier génère les noyaux CUDA optimisés sans écriture manuelle. On écrit du CUDA à la main pour du pré-traitement ou du post-traitement spécifique (traitement d'image, opérateurs custom non couverts par TensorRT). Le module Orin NX 16 Go offre jusqu'à 100 TOPS INT8 dans une enveloppe de 10 à 25 W, ce qui couvre la plupart des charges de vision embarquée.

OpenCL est-il en train de mourir ?

OpenCL n'est pas mort, mais il est figé. La version 3.0 a rendu optionnelles la plupart des fonctionnalités de la branche 2.x, ramenant le socle garanti à OpenCL 1.2. Le Khronos Group concentre désormais son énergie sur SYCL, qui s'est découplé d'OpenCL tout en pouvant l'utiliser comme back-end. Pour un nouveau développement, mieux vaut viser SYCL ; pour maintenir l'existant ou cibler certains FPGA, OpenCL reste utile et supporté.

Comment éviter le verrouillage CUDA sur un produit longue vie ?

En découplant la logique métier de la couche d'accélération dès la conception, et en évaluant SYCL comme couche d'abstraction au-dessus de CUDA. Cette architecture permet de basculer plus tard vers un GPU AMD via ROCm/HIP ou vers un autre silicium sans réécrire toute l'application. Le surcoût est faible s'il est pensé en amont, élevé s'il est ajouté après. C'est la même logique de seconde source que nous appliquons au choix de l'application processor sur nos projets industriels.

Articles connexes