

Le fait d'avoir des FPGA (tableaux de portes à champ de champ) disponibles dans le centre de données présente un énorme potentiel de modèles de calcul nouveaux et passionnants. Mais, pour que cet écosystème émergent prospère, nous avons besoin d'infrastructure pour développer des accélérateurs matériels personnalisés pour ces plateformes et les intégrer aux applications Web et aux infrastructures cloud. Le 1er framework CLAAS amène les FPGA de cloud à portée de la communauté open source, les startups et tout le monde.
Cette lecture donne un aperçu du projet. Les documents suivants sont également disponibles. Après cette lecture, apprenez la main-d'œuvre avec le démarrage .
Pour le développement local:
Pour l'optimisation et le déploiement de votre noyau personnalisé à l'aide d'AWS F1 avec des outils Xilinx.

Avec la 1ère CLAAS, vous pouvez diffuser des bits directement vers et depuis votre noyau FPGA personnalisé à l'aide de protocoles Web standard (WebSockets ou repos). Dans le cas d'utilisation le plus simple, tous les logiciels sont côté client dans le navigateur Web, et toute la logique du serveur et le stockage de données sont implémentées dans le FPGA. Votre noyau utilise une interface très simple pour diffuser les données, et elle peut être développée dans Verilog (ou toute langue compilable pour Verilog).
La 1ère CLAAS est idéale pour implémenter des fonctions dans le matériel qui sont limitées par calcul mais tolérantes de la latence et de la bande Internet. Les applications nécessitant un partitionnement plus sophistiqué des responsabilités peuvent étendre le code C ++ hôte ou le serveur Web Python pour traiter les données entre l'application Web et FPGA.
Les domaines d'application possibles peuvent inclure:
Votre demande pourrait être:
La 1ère CLAAS prend en charge le développement du noyau matériel à l'aide d'outils gratuits et open source sur Linux (Ubuntu et Centos, actuellement). Le déploiement est actuellement ciblé sur les instances FPGA F1 d'Amazon. Nous accueillons des contributions pour étendre les 1er CLAAS à d'autres plates-formes et systèmes d'exploitation.
Une application Web accélérée en matériel utilisant ce framework consiste à:

Les données sont transmises à partir de l'application client Web en morceaux de 512 bits (actuellement). JavaScript appelle une méthode d'envoi et reçoit des données du noyau personnalisé dans un rappel. Le noyau personnalisé a une interface de streaming simple avec un bus 512 bits de données d'entrée et un bus 512 bits pour les données de sortie. Données Travels de JavaScript:
Les performances de la communication ne sont pas actuellement au centre. Les applications bien adaptées à cette architecture sont intrinsèquement limitées, donc l'optimisation de la communication est souvent sans importance, mais la mise en œuvre peut être optimisée au fur et à mesure.
Dans le cas simple, vous ne fournissez que les composants verts du diagramme ci-dessus, et tous les traitements personnalisés des données sont effectués par le noyau personnalisé. Mais l'application hôte C ++ / OpenCL et / ou le serveur Web Python peuvent être étendues comme souhaité.
Avant ce projet, l'intégration de l'accélération matérielle FPGA avec des applications Web et cloud était une entreprise intimidante exigeant:
En fournissant le serveur Web, le code d'application hôte et la logique du shell du noyau pour diffuser les données entre l'application Web et le noyau FPGA ainsi que l'automatisation de la création et de la configuration des instances de cloud, le 1er CLAAS réduit votre travail à:
[CC BY-SA 2.0, Lumaxart, modifié]
Les frais généraux de développement des infrastructures sont réduits de plusieurs mois de personne à des heures.
En regardant spécifiquement la plate-forme Amazon F1, F1 fournit des outils de développement Xilinx FPGAS et Xilinx puissants sur une base de paiement, ce qui est assez convaincant. Mais la plate-forme est un bord saignant et nécessite une expertise significative pour utiliser. Notre expérience avec cette plate-forme a été plutôt douloureuse (et quelque peu coûteuse) pour plusieurs raisons:
Nous avons dû passer par cette douleur, mais nous avons emballé notre travail pour ne pas avoir à le faire.
Pour rationaliser davantage le développement, réduire les coûts et éviter toute dépendance à la plate-forme F1 et à la pile d'outils Xilinx, nous prenons en charge le développement sur votre machine locale où le noyau est émulé avec une simulation RTL à l'aide du simulateur RTL open-source du Verileator. Les outils AWS et Xilinx ne sont requis que pour l'optimisation et le déploiement du noyau. En tant que bonus supplémentaire, la simulation de Verilator s'exécute considérablement (~ 100x ?!) Plus rapidement que la simulation en utilisant le "flux d'émulation matérielle" Xilinx, en partie parce que le vérificateur est rapide et en partie parce que nous simulons uniquement le noyau personnalisé, sans inclure la logique shell entourant le noyau.
Réduire le problème au développement Web et RTL n'est pas la ligne d'arrivée pour nous. La 1ère CLAAS fait partie d'un effort plus large pour redéfinir l'industrie du silicium et amener le silicium aux masses. Dépasser les complexités de la modélisation RTL en fait partie. La 1ère CLAAS est motivée par des partisans passionnés de TL-Verilog, en association avec Redwood EDA. TL-Verilog introduit un changement de méthodologie de conception de circuits numériques bien nécessaire avec des constructions de modélisation plus simples et plus puissantes. Le 1er CLAAS n'est en aucun cas lié à Tl-Verilog. Vous pouvez utiliser Verilog / SystemVerilog ou n'importe quel langage de description du matériel qui peut être transformé en verilog. Mais les extensions de lnguage tl-velog sont soutenues par la boîte, et nous vous encourageons fortement à en profiter et à nous aider à faire avancer cette innovation. Redwood Eda fournit un IDE en ligne gratuit pour le développement TL-Verilog sur MakerChip.com. Vous pouvez trouver du matériel de formation dans l'IDE. Lisez l'histoire plus complète du fondateur de Redwood Eda, Steve Hoover.
Commercialiment, le 1er CLAAS est utilisé par Uputer, Inc. pour fournir une classification dynamique des données de streaming.
Le 1er CLAAS rend les fractales en temps réel pour fractalvalley.net.
Ce référentiel fonctionne généralement et la poussée initiale de développement est en baisse.
Tout et tout est sujet à changer à ce stade, en particulier en ce qui concerne l'interface fournie par le cadre pour que les applications s'appuient. Ainsi, vous devez construire sur une version spécifique du framework et vous attendre à faire du débogage si vous choisissez de mettre à niveau en tirant de Master.
Hmmmm ... nous n'avons pas encore beaucoup réfléchi. Dites simplement quelque chose de gentil et nous serons heureux.
Toutes les marques citées dans ce référentiel sont la propriété de leurs propriétaires respectifs.