Synthèse
BittWare développe des solutions de cartes d'accélération basées sur des FPGA Intel depuis plus de vingt ans. Lors de sa récente migration vers les derniers FPGA Intel® 7, BittWare souhaitait prendre en charge oneAPI sur ses solutions FPGA. Pour ce faire, BittWare s'est tourné vers Open FPGA Stack (OFS) et son package de support d'accélérateur (ASP) open source oneAPI pour pouvoir compiler des noyaux d'application de conception de haut niveau (HLD) sur ses plateformes basées sur des FPGA Intel Agilex.
Contexte et défis
Intel a lancé la famille de produits Intel Agilex 7 en 2019. Depuis, cette famille s'est agrandie pour inclure plusieurs FPGA de faible à haute puissance et des densités logiques pour diverses applications. La série de FPGA Intel Agilex 7 est la famille de composants hautes performances d'origine. Elle comprend les FPGA les plus performants de l'industrie, qui offrent des performances par watt environ 2 fois supérieures1 à celles des FPGA concurrents de dernière génération. Les nouveaux FPGA Intel Agilex sont plus puissants, consomment moins d'énergie et intègrent des fonctionnalités d'E/S telles que PCIe* 4.0 et 5.0. Ils ciblent une large gamme d'applications gourmandes en bande passante, en calcul et en mémoire.
Ces améliorations de performances offrent davantage de valeur aux clients de BittWare, qu'il s'agisse de performances par watt plus élevées pour les appareils à la périphérie (edge) ou une plus grande densité de calcul pour le centre de données. Les FPGA permettent aux applications de calcul haute performance (HPC) de mieux adapter les charges de travail à la puce que les accélérateurs à usage général. Intel et BittWare ont collaboré pour porter une charge de travail HPC du Barcelona Supercomputing Center sur la carte IA-840f en utilisant oneAPI, ce qui a permis d'aller 233 fois plus vite. Ce projet est présenté dans le webinaire à la demande de BittWare intitulé « Calcul haute performance avec les FPGA Intel Agilex nouvelle génération ».
BittWare propose également des ressources pour les outils de programmation de haut niveau, notamment des livres blancs avec des exemples de code téléchargeables. Ces ressources montrent comment des outils de haut niveau accélèrent le processus de développement tout en tirant parti des performances élevées des FPGA Intel Agilex 7.
Des outils tels que oneAPI fournissent un langage de programmation parallèle qui permet d'abstraire le développement FPGA pour améliorer les temps de démarrage et de débogage. À l'instar de CUDA* de NVIDIA ou de ROCm* d'AMD, oneAPI fournit un langage de programmation parallèle, Data Parallel C++ (DPC++), qui met en œuvre SYCL. Cependant, la distribution Intel de oneAPI apporte une solution à un environnement de programmation unifié, un ensemble d'outils et des bibliothèques, non seulement pour les GPU, mais aussi pour les processeurs, les FPGA et les unités de traitement de la vision comme les processeurs d'IA Gaudi/Gaudi2.
En utilisant oneAPI, les développeurs moins familiers avec la programmation FPGA peuvent bénéficier de l'architecture flexible et reprogrammable propre aux FPGA tout en utilisant des langages de conception familiers, notamment C/C++, et des environnements de développement comme Visual Studio ou Eclipse. Le recours à des flux de conception de haut niveau via oneAPI augmente également la portabilité des charges de travail sur différentes architectures, à savoir les processeurs, les GPU, les FPGA et les fournisseurs de cartes.
BittWare, dont la société mère est Molex, est un partenaire de longue date d'Intel qui conçoit et fabrique des produits professionnels d'accélération matérielle FPGA pour permettre aux clients de déployer leurs solutions plus rapidement et avec moins de risques. BittWare, le leader du marché de l'accélération FPGA depuis 20 ans, a migré des premiers FPGA Intel Stratix® et Intel Arria® vers la dernière famille de produits Intel Agilex. En s'attaquant à la dernière version de la série « IA » des cartes FPGA Intel Agilex, l'entreprise a cherché à tirer parti de l'infrastructure OFS pour permettre des flux de développement oneAPI sur sa plateforme.
Solution
BittWare s'est appuyé sur la dernière ressource et infrastructure de développement FPGA open-source, OFS, pour s'assurer que ses cartes étaient compatibles avec le flux de développement oneAPI. OFS est la première infrastructure matérielle et logicielle complète entièrement open-source qui comprend un code matériel composable et un code noyau en amont (upstream) sur kernel.org pour permettre à une communauté de développeurs FPGA de collaborer.
L'infrastructure OFS se compose d'un gestionnaire d'interface FPGA (FIM), communément appelé « shell », et d'une région AFU (Accelerator Functional Unit) conçue pour le développement des charges de travail. Grâce à OFS, les développeurs de cartes peuvent tirer parti de l'infrastructure open source pour développer rapidement un FIM personnalisé et adapté pour leur carte en fonction de l'application ou des secteurs ciblés. De même, OFS comprend un framework logiciel open source dans lequel les développeurs peuvent exploiter des pilotes de noyau en amont et open source pour accélérer l'intégration dans des frameworks communs. L'infrastructure OFS répond à la demande de cartes d'accélération FPGA et de charges de travail en fournissant une méthodologie puissante pour développer rapidement des systèmes d'accélération FPGA. L'infrastructure matérielle et logicielle OFS fournie peut être exploitée telle quelle ou être rapidement personnalisée pour répondre aux nouvelles exigences dynamiques du marché.
Le kit d'outils de base oneAPI fourni par Intel comprend un compilateur et un environnement d'exécution. Le compilateur convertit un noyau SYCL, ou un code d'application FPGA, en un circuit matériel. Ce circuit matériel nécessite une logique supplémentaire pour communiquer avec l'exécution et les périphériques de la carte FPGA. OFS fournit cette logique supplémentaire dans l'ASP oneAPI. L'ASP oneAPI est inclus dans les référentiels GitHub OFS open source. Il est nécessaire pour compiler et exécuter les noyaux d'application HLD sur les plateformes prises en charge par OFS. La documentation technique correspondante est également fournie et comprend un guide de démarrage rapide pour paramétrer le kit d'outils Intel oneAPI sur une plateforme OFS.
En utilisant les référentiels et la documentation OFS open source fournis, BittWare a pu mettre en œuvre le flux de conception oneAPI (non RTL) sur ses appareils Intel Agilex, avec très peu de modifications supplémentaires.
Résultats
BittWare a été le premier à commercialiser des produits basés sur les FPGA Intel Agilex série F. Le tableau ci-dessous illustre les deux cartes développées à l'aide de l'infrastructure OFS et de l'ASP oneAPI.
|
|
Donner à nos clients accès à une puce puissante avec un flux de développement facile est une formule gagnante, d'autant plus que cette famille de FPGA Intel Agilex® de dernière génération présente une amélioration notoire des performances. Notre travail avec oneAPI a prouvé sa valeur pour un grand nombre d'utilisateurs afin d'accélérer la mise sur le marché tout en conservant des performances élevées.
Comment se lancer dans l'accélération FPGA à l'aide d'OFS
Les développeurs FPGA peuvent choisir parmi les cartes IA-420f ou IA-840f compatibles OFS de BittWare et utiliser la documentation ainsi que le code source open source pour commencer à construire leur charge de travail personnalisée.
Le tableau suivant indique comment un développeur peut commencer à développer une charge de travail basée sur un FPGA à l'aide d'une carte d'accélération BittWare.
Exploitez l'accélération FPGA pour votre charge de travail |
|
---|---|
Étape 1 : choisir une carte |
Cartes compatibles OFS de BittWare, l'IA-420f et l'IA-840f. |
Étape 2 : évaluer les ressources open source de l'OFS |
BittWare fournira la version correspondante de la documentation technique OFS. |
Étape 3 : accéder au matériel et au code logiciel open source |
BittWare fournira le code logiciel et matériel OFS correspondant. Il s'agit de la distribution spécifique de BittWare du code de base OFS (fourni par Intel). |
Étape 4 : développer une charge de travail à l'aide de RTL ou C/C++ (en utilisant oneAPI) |
Suivez le flux RTL OFS OU OFS permet la compilation de noyaux oneAPI. Utilisez le flux de développement oneAPI et créez des charges de travail FPGA en C/C++. |