Recherche de site Web

Intel fait de oneAPI le « prochain clic » le plus important


Des scientifiques de données travaillant en Python à ceux travaillant en langage assembleur, il existe un besoin pour une alternative ouverte et performante au CUDA de Nvidia, déclare Joe Curley d'Intel.

L’essor de l’intelligence artificielle « générative » est une question de mise à l’échelle, l’idée d’ajouter plus de ressources à un programme informatique pour obtenir de meilleurs résultats. Comme l'a fait remarquer Ilya Sutskever, co-fondateur et scientifique en chef d'OpenAI : « J'avais la ferme conviction que plus grand est mieux » lorsqu'il a fondé la société qui allait créer ChatGPT.

Cette idée d'un calcul de plus en plus gros a conduit à une course pour développer les puces les plus puissantes pour l'IA, y compris non seulement les nouveaux GPU de Nvidia, mais aussi les Habana Labs d'Intel, qui ont montré des résultats impressionnants lors de tests de référence ; et Advanced Micro Devices, et des startups telles que Cerebras Systems.

Cette ruée vers le développement de puces a créé un problème très pratique : comment les développeurs sont-ils censés développer, pour un univers en expansion, des types de puces dotées de capacités et d'environnements de programmation uniques ?

"Nous avons des GPU, des TPU, des FPGA - toutes ces choses touchent des points de conception différents et merveilleux sur le marché, mais si vous pensez à l'expérience des développeurs, c'est comme, Oh , comment programmez-vous?" déclare Joe Curley, vice-président et directeur général des produits logiciels et de l'écosystème chez Intel dans une interview avec ZDNET.

Les puces dépendent toujours des outils de développement disponibles pour utiliser ces puces ; peu importe la qualité d'une puce, c'est un tas de silicium s'il n'y a rien pour écrire dessus.

La réponse d'Intel est oneAPI, une spécification de programmation open source dont le code source est publié sur GitHub et qui vise à permettre aux développeurs de réaliser un traitement parallèle de nombreux types de puces sans connaître tous les détails de toutes les puces.

La semaine dernière a été une grande semaine pour oneAPI, car il a été annoncé que la spécification était reformulée sous le nom de Unified Acceleration Foundation, ou UXL, hébergée par la Joint Development Foundation de la Linux Foundation. L'UXL a comme « membres directeurs » fondateurs d'autres géants du monde des puces : ARM Holdings, Qualcomm, Fujitsu et Samsung, mais aussi Google.

Le responsable du comité directeur d'UXL, Rod Burns, a qualifié le dévoilement la semaine dernière d'UXL de "moment crucial pour l'informatique hétérogène".

Joe Curley, vice-président d'Intel

"Tout ce qu'est oneAPI, c'est un modèle de programmation logicielle qui tente de créer une couche d'abstraction commune qui vous permet de programmer différentes marques d'accélérateurs via des langages communs et des interfaces de bibliothèque communes", a déclaré Curley.

Intel propose sa propre implémentation de la spécification open source depuis décembre 2020. Les composants de oneAPI incluent un langage de parallélisation multiplateforme, appelé DPC++, qui est une adaptation d'un langage de programmation open source appelé SYCL, construit sur le langage C++. langage de programmation et géré par Khronos Group.

En juin de l'année dernière, Intel a acquis la startup CodePlay d'Édimbourg, en Écosse, un fournisseur de compilateurs parallèles. Cet accord a apporté l'expertise d'Intel dans la compilation multi-appareils pour SYCL.

oneAPI dispose également d'une sélection de bibliothèques pour différentes fonctions, comme par exemple oneDNN, pour accélérer les primitives de multiplication matricielle.

Plus de détails sur les spécifications de oneAPI peuvent être consultés sur la page des spécifications de la technologie.

La technologie du compilateur et les bibliothèques offrent différentes approches de la programmation de l'IA. La première consiste à se placer du point de vue d'un data scientist et simplement à travailler en descendant à partir de frameworks d'IA populaires tels que PyTorch et TensorFlow, et à utiliser des bibliothèques pour paralléliser ce code.

Le but de oneAPI, a déclaré Curley, est de « cibler » une partie du continuum de programmation parallèle qui n’a jamais été standardisée.

Souvent, dans le calcul parallèle, a déclaré Curley, "vous commencez avec des langages complètement abstraits, Python, en passant par une infrastructure de bibliothèque qui vous donne accès à l'accélération", et tout est fait sous le capot pour le data scientist, a déclaré Curley. À l’autre extrémité du spectre, le programmeur en C++ ou Fortran donne des indications explicites à un compilateur pour paralléliser le code d’un GPU. »

"Là où oneAPI entre en jeu, c'est en quelque sorte le clic suivant, c'est-à-dire, je sais que j'écris sur un accélérateur, je sais que je vais utiliser un accélérateur, donc je veux cibler cet appareil, et je je veux écrire du code optimal, et je me soucie réellement des performances", a déclaré Curley.

"C'est vraiment là que l'on tombe dans l'idée de quelque chose comme oneAPI, et le problème est que, dans cette partie du continuum, il n'y a jamais eu d'effort de normalisation réussi", a-t-il déclaré. Il y a le CUDA de Nvidia, qui domine la construction de frameworks pour l'IA, et qui n'est pas ouvert.

"CUDA est un langage appartenant à une entreprise, et ils ont leurs intérêts, et je suis sûr qu'ils font du bon travail avec, mais leur intérêt n'est pas de construire une communauté diversifiée", a observé Curley.

"OpenCL s'y est essayé, a eu quelques succès, [mais] beaucoup de développeurs ont trouvé OpenCL encombrant : beaucoup de fichiers d'en-tête, ce n'était pas terriblement productif."

L'approche d'OpenCL, également maintenue par Khronos Group, était divisée, a observé Curley. "Vous aviez une page hôte et une page accélératrice, et vous deviez penser différemment" aux deux appareils.

"Ce que fait SYCL, c'est qu'il crée un langage monopage beaucoup plus intuitif qui dit, hé, j'écris du code, je veux que vous exécutiez ce code C++ sur cet appareil de cette manière", a expliqué Curley, "au lieu de en disant, je vais avoir un code hôte et un code appareil et gérer ces deux-là, puis les lier en bas. "

"Donc, ce que cela fait, c'est fournir une réponse ouverte et productive à cette partie du continuum, vous savez, avant d'arriver au gars ou à la fille qui écrit en assemblage et en intrinsèques et des choses comme ça."

Curley a décrit SYCL comme issu d'un « début plus moderne » que les précédents efforts de calcul parallèle, en « ayant beaucoup appris de ce que les gens ont appris grâce aux accélérateurs de programmation au cours des 13 années précédentes ».

Les objectifs de oneAPI sont cohérents avec ce que Wei Li, vice-président et directeur général de l'IA et de l'analyse d'Intel, a déclaré l'année dernière à ZDNET : l'objectif de l'entreprise est d'utiliser « le logiciel comme un pont pour accéder à l'IA partout », en surmontant les obstacles techniques.

L'acquisition de CodePlay a apporté la technologie permettant d'adopter une approche plus simple de la compilation multiplateforme. "En plus de notre pile de compilation, ils ont fourni un plugin qui s'intègre directement dans notre chaîne d'outils pour vous permettre de générer du code pour un GPU AMD ou Nvidia", a déclaré Curley.

"Donc, si vous partez de zéro aujourd'hui, nous disposons d'un environnement dans lequel vous n'avez pas besoin d'écrire pour une seule personne, puis de vous déplacer, vous pouvez écrire dans le langage SYCL, puis le porter sur le périphérique de votre choix."

Cet aspect bouton-poussoir ne vise pas seulement à alléger le fardeau de la programmation, a déclaré Curley ; il s'agit également de la portabilité du code, qui a son propre attrait.

"C'est vraiment important pour une catégorie de clients dans les systèmes industriels, les gens qui mettent cela dans des avions ou quelque chose qui peuvent devoir vivre pendant 20 ou 30 ans et où vous ne voulez pas être lié à une langue ou à une seule entreprise pendant juste pour des raisons pratiques d'entretien", a observé Curley.

Comment oneAPI pourra-t-il se comparer à l’avance de plus d’une décennie que CUDA a sur le marché et à l’énorme base installée de GPU Nvidia ?

"Si vous avez le choix de construire sur une chaîne d'outils ouverte, et le choix de construire sur une chaîne d'outils fermée, d'une manière générale, les gains sont ouverts", est une façon de voir les choses, a déclaré Curley.

En même temps, ces choses prennent du temps.

"C'est nouveau", a-t-il déclaré à propos de oneAPI, "et nous n'en sommes vraiment qu'au début de notre voyage." Dans le cas de "cette autre langue", comme il se réfère à CUDA, "pendant les 8 ou 9 premières années, c'était vraiment une langue de niche, et, même aujourd'hui, c'est encore un certain espace réservé aux praticiens professionnels".

"L'idée ici est que, si nous pouvons créer quelque chose d'un peu plus omniprésent, un peu plus ouvert, un peu plus proche du C++, alors, honnêtement, cela crée une excellente alternative."

Articles connexes