

Das im Rechenzentrum verfügbare FPGAs (feldprogammbare Gate-Arrays) bietet ein enormes Potenzial für neue und aufregende Rechenmodelle. Damit dieses aufstrebende Ökosystem gedeihen kann, benötigen wir die Infrastruktur, um benutzerdefinierte Hardwarebeschleuniger für diese Plattformen zu entwickeln und sie in Webanwendungen und Cloud -Infrastruktur zu integrieren. Das 1. Claas-Framework bringt Cloud-FPGAs in Reichweite der Open-Source-Community, Startups und allen in Reichweite.
Diese Readme bietet einen Überblick über das Projekt. Die folgenden Dokumente sind ebenfalls verfügbar. Nach diesem Readme können Sie sich mit dem Einstieg in die Hand nehmen.
Für die lokale Entwicklung:
Zur Optimierung und Bereitstellung Ihres benutzerdefinierten Kernels mit AWS F1 mit Xilinx -Tools.

Mit 1. ClaaS können Sie Bits direkt zu und von Ihrem benutzerdefinierten FPGA -Kernel mit Standard -Webprotokollen (Websockets oder Ruhe) streamen. Im einfachsten Anwendungsfall ist die gesamte Software im Webbrowser clientseitig und alle Server-Logik- und Datenspeicher werden in der FPGA implementiert. Ihr Kernel verwendet eine sehr einfache Schnittstelle, um die Daten zu streamen, und kann in Verilog (oder einer beliebigen Sprache für Verilog) entwickelt werden.
1st ClaaS ist ideal für die Implementierung von Funktionen in Hardware, die berechnet, aber gegenüber Internetlatenz und Bandwith tolerant sind. Anwendungen, die eine ausgefeiltere Partitionierung der Verantwortlichkeiten erfordern, können den Host C ++ - Code oder Python -Webserver erweitern, um Daten zwischen der Webanwendung und der FPGA zu verarbeiten.
Mögliche Anwendungsdomänen können enthalten:
Ihre Bewerbung kann sein:
1st ClaaS unterstützt Hardware -Kernelentwicklung mit kostenlosen und Open -Source -Tools unter Linux (Ubuntu und CentOS, derzeit). Die Bereitstellung richtet sich derzeit an die F1 -FPGA -Instanzen von Amazon. Wir begrüßen Beiträge, um die 1. ClAAs auf andere Plattformen und Betriebssysteme zu verlängern.
Eine hardware beschleunigte Webanwendung, die dieses Framework verwendet, besteht aus:

Die Daten werden von der Web -Client -Anwendung in Brocken von 512 Bits (derzeit) übertragen. JavaScript ruft eine Send -Methode auf und empfängt Daten von benutzerdefiniertem Kernel in einem Rückruf. Der benutzerdefinierte Kernel verfügt über eine einfache Streaming-Schnittstelle mit einem 512-Bit-Bus mit Eingabedaten und einem 512-Bit-Bus für Ausgabedaten. Datenreisen von JavaScript:
Die Kommunikationsleistung liegt derzeit nicht im Fokus. Anwendungen, die für diese Architektur gut geeignet sind, werden von Natur aus berechnet, daher ist die Optimierung der Kommunikation häufig unwichtig, aber die Implementierung kann nach Bedarf optimiert werden.
Im einfachen Fall stellen Sie nur die grünen Komponenten im obigen Diagramm bereit, und alle benutzerdefinierten Daten werden vom benutzerdefinierten Kernel durchgeführt. Der C ++/OpenCL -Host -Anwendung und/oder der Python -Webserver können jedoch nach Wunsch erweitert werden.
Vor diesem Projekt war die Integration der Beschleunigung der FPGA -Hardware in Web- und Cloud -Anwendungen ein entmutigendes Unterfangen, das erforderlich war:
Durch die Bereitstellung des Webservers, des Host -Anwendungscode und der Kernel -Shell -Logik zum Streamen der Daten zwischen Webanwendungs- und FPGA -Kernel sowie die Automatisierung der Cloud -Instanzerstellung und -konfiguration reduziert 1st ClaaS Ihre Arbeit auf:
[CC BY-SA 2.0, Lumaxart, modifiziert]
Die Infrastrukturentwicklungsaufwand wird von mehreren Personenmonaten bis zu Stunden reduziert.
F1 schaut sich speziell auf der Amazon F1-Plattform und bietet leistungsstarke Xilinx-FPGAS- und Xilinx-Entwicklungstools auf Pay-per-Use-Basis, was sehr überzeugend ist. Die Plattform blutet jedoch einen Blutkanten und erfordert erhebliche Fachkenntnisse, um sie zu nutzen. Unsere Erfahrung mit dieser Plattform war aus mehreren Gründen ein ziemlich schmerzhaftes (und etwas teuer):
Wir mussten diesen Schmerz durchgehen, aber wir haben unsere Arbeit gebündelt, damit Sie es nicht müssen.
Um die Entwicklung weiter zu optimieren, die Kosten zu senken und jede Abhängigkeit von der F1-Plattform und des Xilinx-Toolstacks zu vermeiden, unterstützen wir die Entwicklung auf Ihrem lokalen Maschine, wo der Kernel mit der RTL-Simulation unter Verwendung des Verilator Open-Source RTL-Simulators emuliert wird. AWS- und Xilinx -Tools sind nur für die Optimierung und Bereitstellung von Kernel erforderlich. Als zusätzlichen Bonus läuft die Verilator -Simulation mit dem Xilinx "Hardware -Emulationsfluss" signifikant (~ 100x?!) Schneller als die Simulation, teilweise, weil der Verilator schnell und teilweise nur den benutzerdefinierten Kernel simuliert, ohne die Shell -Logik, die den Kern umgibt.
Die Reduzierung des Problems auf Web- und RTL -Entwicklung ist für uns nicht die Ziellinie. 1st Claas ist Teil einer breiteren Anstrengung, um die Siliziumindustrie neu zu definieren und Silizium in die Massen zu bringen. Die Komplexität der RTL -Modellierung zu überwinden, ist Teil davon. 1st Claas wird von begeisterten Anhängern von Tl-Verilog in Verbindung mit Redwood Eda angetrieben. TL-Verilog führt eine dringend benötigte Verschiebung der Digital Circuit Design-Methodik mit einfacheren und leistungsstärkeren Modellierungskonstrukten ein. 1. Claas sind in keiner Weise an Tl-Verilog gebunden. Sie können Verilog/Systemverilog oder jede Hardware -Beschreibung Sprache verwenden, die in Verilog umgewandelt werden kann. Aber die Erweiterungen von Tl-Verilog-Lnguage werden aus dem Schachtel unterstützt, und wir ermutigen Sie nachdrücklich, sie zu nutzen und uns dabei zu helfen, diese Innovation voranzutreiben. Redwood EDA bietet eine kostenlose Online-IDE für die TL-Verilog-Entwicklung unter makerchip.com. In der IDE finden Sie Trainingsmaterialien. Lesen Sie die bessere Geschichte von Redwood Eda-Gründer Steve Hoover.
Im Handel wird 1st ClaaS von Durchgang, Inc. verwendet, um eine dynamische Klassifizierung von Streaming -Daten bereitzustellen.
1. Claas rendert Echtzeitfraktale für fractalvalley.net.
Dieses Repository funktioniert im Allgemeinen und der anfängliche Entwicklungsschub schließt sich.
An dieser Stelle kann sich alles und jedes an diesem Punkt ändern, insbesondere in Bezug auf die Schnittstelle, auf die der Rahmen für Anwendungen erstellt werden kann. Sie sollten also auf einer bestimmten Version des Frameworks aufbauen und erwarten, einige Debugging durchzuführen, wenn Sie durch den Master ein Upgrade durchführen.
Hmmmm ... wir haben noch nicht so viel darüber nachgedacht. Sag einfach etwas Schönes und wir werden glücklich sein.
Alle in diesem Repository genannten Marken sind Eigentum ihrer jeweiligen Eigentümer.