Synthèse
Les LLT et les autres applications sensibles au temps sont des cas d'utilisation idéaux pour l'accélération par FPGA. Flyslice Technologies a développé la carte d'accélération par FPGA FA728Q pour répondre aux besoins de ce marché. La plateforme d'accélération FA728Q offre des ressources FPGA puissantes, une capacité de stockage abondante et des interfaces faciles à utiliser pour les utilisateurs finaux. Flyslice Technologies a utilisé l'infrastructure OFS pour accélérer, simplifier et standardiser le développement de sa carte d'accélération. Cette infrastructure offre une méthodologie puissante pour le développement rapide de solutions FPGA en utilisant une approche « take and tailor » (prendre et adapter). Flyslice Technologies utilise l'infrastructure OFS pour intégrer son moteur de déchargement TCP/IP dans le FIM de base Open Source, communément appelé « shell » FPGA.
Historique et difficulté
Le LLT est la pratique moderne d'exécution électronique des transactions de titres financiers avec un délai minimal entre la saisie et l'exécution de l'ordre. Les grandes banques d'investissement, les fonds spéculatifs et d'autres institutions financières utilisent couramment cette méthode. Dans le passé, les transactions étaient exécutées manuellement et non électroniquement, et leur exécution variait de quelques secondes à quelques minutes. Cependant, grâce aux progrès technologiques du matériel et des logiciels correspondants, les systèmes peuvent maintenant être programmés pour prendre automatiquement les décisions d'achat ou de vente en fonction de certains signaux et mouvements du marché, ce qui réduit les délais d'exécution des transactions à quelques millisecondes. Les produits d'accélération par FPGA étant plus largement disponibles depuis quelques années, les temps de transaction ont encore été réduits, atteignant maintenant les microsecondes, voire les sous-microsecondes.
Dans le même temps, les systèmes LLT s'appuient de plus en plus sur des modèles d'algorithmes de transaction complexes propres à la stratégie de transaction de chaque société pour interagir avec le carnet d'ordres. Les solutions nécessitent des processeurs polyvalents et des coprocesseurs spécialisés pour répondre aux exigences des sociétés de transactions en matière de puissance et de performance, comme dans le cas de l'informatique hétérogène. Les FPGA sont tout indiqués pour mettre en œuvre des algorithmes de transaction sur mesure. Toutefois, la programmation de cet appareil d'accélération matérielle peut prendre du temps et être difficile à migrer à mesure que les familles de FPGA s'améliorent et évoluent.
Flyslice Technologies, une société dont le siège est en Chine, répond activement à la demande d'accélération hétérogène des centres de données et de calcul intensif, notamment sur le segment LLT. Ils mettent sur le marché des plateformes d'accélération matérielle basée sur les FPGA, des fonctions de propriété intellectuelle (IP) d'accélération FPGA et des services de conception de plateforme basés sur les FPGA.
Solution
Flyslice Technologies a développé sa carte d'accélération FA728Q pour répondre aux exigences de faible latence, de standardisation et de portabilité des applications LLT. Cette carte instancie un moteur de déchargement TCP/IP intégré. Pour ce faire, Flyslice Technologies a modifié le FIM de base fourni dans la version Open Source d'OFS. Grâce à l'architecture composable et à l'approche « take and tailor », OFS leur a permis de simplement porter leur algorithme sur la carte d'accélération FA728Q tout en exploitant le reste de l'infrastructure fournie, notamment les pilotes et les bibliothèques du logiciel OFS, en n'apportant que des modifications minimes.
OFS est une infrastructure matérielle et logicielle Open Source qui fournit tous les composants clés de design, logiciels et d'infrastructure nécessaires pour démarrer le développement d'une carte ou d'une charge de travail personnalisée basée sur un FPGA. L'infrastructure OFS se compose du FIM, communément appelé « shell », et d'une région AFU (Accelerator Functional Unit) conçue pour le développement de la charge de travail. Grâce à OFS, les développeurs de cartes FPGA (ou FIM) peuvent tirer parti de l'infrastructure Open Source (ou FIM de base) pour développer rapidement un FIM personnalisé et adapté à leur carte en fonction de l'application ou du secteur visé. OFS est également livré avec un package de support d'accélérateur (ASP) oneAPI, qui peut être exploité pour abstraire le matériel FPGA et le flux de design. OFS permet aux développeurs de gagner du temps, d'améliorer la portabilité entre les générations de FPGA, d'utiliser des interfaces standard et de proposer en option un flux de design de haut niveau à l'aide de oneAPI.
La carte d'accélération FA728Q, disponible dès aujourd'hui, est une carte d'accélération FPGA haut de gamme basée sur PCIe et qui offre 32 Go de mémoire DDR4 intégrée et trois sockets QSFP28 pour prendre en charge jusqu'à 100 GbE pour chaque interface. La carte d'accélération FA728Q est également compatible avec oneAPI via l'infrastructure OFS. Les clients peuvent ainsi mettre en œuvre leurs noyaux dans RTL ou migrer des algorithmes du CPU/GPU vers des langages de conception de haut niveau, notamment C/C++. Le kit d'outils Intel® oneAPI Base permet aussi de synthétiser et d'optimiser les noyaux pour les ressources FPGA, ce qui améliore encore les délais de commercialisation.
Flyslice Technologies a également commencé à développer des cartes basées sur le FPGA Intel Agilex®, notamment la carte FA927S qui utilise le FPGA Intel Agilex 7 série I et la carte FA925E qui utilise le FPGA Intel Agilex 7 série F.
La carte FA927S offre des taux d'émetteur-récepteur élevés allant jusqu'à 116 Gbit/s, 16x PCIe 5.0 et la prise en charge de Compute Express Link (CXL). Elle cible les applications gourmandes en bande passante et est disponible dès maintenant pour le développement basé sur RTL. La carte FA927S prendra en charge OFS au premier trimestre 2024.
En revanche, la carte FA925E offre quatre banques de 8 Go et quatre banques de 4 Go DDR4, soit un total de 48 Go de mémoire embarquée. Elle est conçue pour les applications exigeant une capacité de mémoire externe et une bande passante élevées. La carte offre une prise en charge complète d'OFS et sera disponible d'ici à la fin de l'année 2023. Voir le tableau 1 pour comparer les trois cartes d'accélération.
Tableau 1. Tableau comparatif
Alimentation | 215 W | 200 W | 150 W |
Exigence de refroidissement | Actif/passif (en option) | Actif/passif (en option) | Actif/passif (en option) |
Format | PCIe à double emplacement, 3/4 de longueur, pleine hauteur | PCIe à double emplacement, 1/2 de longueur, pleine hauteur | PCIe à double emplacement, 3/4 de longueur, pleine hauteur |
Interfaces réseau | Trois ports QSFP28 : 3 x 100 GbE / 40 GbE | Deux ports QSFP28 : 2 x 100 GbE / 40 GbE | Deux ports QSFP28 : 2 x 100 GbE / 40 GbE |
Interfaces mémoire | 4 x 8 Go DDR4, 2 400 MHz avec ECC | 4 x 8 Go DDR4, 2 400 MHz avec ECC | 4 x 8 Go et 4 x 4 Go DDR4, 2 400 MHz avec ECC |
Interfaces PCIe | - | 5.0 x16 | - |
Interfaces d'extension | - | 2 connecteurs SAS slim x8 pour l'extension PCIe 4.0 | - |
Port de gestion | Micro-USB | Micro-USB | Micro-USB |
Dispositif FPGA | 1SX280HN2F43E2VG | AGIB027R29A1E2VR3 | AGFB027R25A2E2V |
Résultats
La fonction IP du moteur de déchargement mise en œuvre par Flyslice Technologies sur la carte FA728Q est optimisée pour répondre aux exigences de latence et de performances dans le domaine LLT. En mode accéléré, la latence de transmission TCP est inférieure à 100 ns, ce qui garantit des connexions stables et à faible latence pour les applications réseau critiques en termes de temps. Le tableau 2 montre la latence mesurée pour différentes connections. Le tableau 3 montre les interfaces PCIe 3.0 x16 et DDR à large bande passante.
Spécification | Valeur |
---|---|
Nombre maximal de connexions TCP/UDP | 63 pour TCP, 63 pour UDP |
Latence TCP TX (mode accéléré) | 15 horloges |
Latence TCP TX (mode non accéléré) | 46 horloges |
Latence TCP RX | 32 horloges |
Latence UDP TX | 42 horloges pour un paquet de 512 octets 18 horloges pour un paquet de 128 octets |
Latence UDP RX | 23 horloges |
Latence de bouclage pour les noyaux oneAPI | 18 horloges |
Tableau 2. Spécification du moteur de déchargement TCP/IP (TOE)
Remarque :
1. Une période d'horloge est de 6,4 ns
2. La latence TX est comptée du bord descendant du paquet EOP jusqu'aux données valides dans XGMII TXC
3. La latence RX est comptée du paquet SOP jusqu'aux données valides dans XGMII RXC
Chemin de données | Bandes passantes |
---|---|
Mémoire d'écriture de l'hôte | 8 287,68 Mbit/s pour un bloc de 8 192 Ko |
Mémoire de lecture de l'hôte | 8 241,19 Mbit/s pour un bloc de 8 192 Ko |
Mémoire d'écriture du noyau | 16 909,6 Mbit/s pour un bloc de 4 096 Mo |
Mémoire de lecture du noyau | 17 340,3 Mbit/s pour un bloc de 4 096 Mo |
Tableau 3. Bande passante fournie par chaque interface
OFS nous a permis de construire plus facilement et plus rapidement une plateforme d'accélération requise pour les clients, depuis les pilotes d'API logicielles jusqu'au matériel sous-jacent sous forme d'un ensemble complet d'équipements.
Comment se lancer dans l'accélération FPGA à l'aide d'OFS
Les développeurs de FPGA peuvent exploiter la carte d'accélération FA728Q et la carte compatible OFS en utilisant la documentation Open Source et le code source pour commencer à créer 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 Flyslice Technologies.
Tirer parti de l'accélération FPGA dans le traitement de votre charge de travail | |
---|---|
Étape 1 : choisir une carte | Voir la carte compatible OFS de Flyslice Technologies, la carte d'accélération FA728Q |
Étape 2 : évaluer les ressources Open Source de l'OFS |
Flyslice Technologies fournira la version correspondante de la documentation technique OFS |
Étape 3 : accéder au matériel et au code logiciel Open Source |
Flyslice Technologies fournira le code logiciel et matériel OFS correspondant. Il s'agit de leur distribution spécifique du code OFS de base 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++. |