Unvermeidlichkeit der FPGA-Penetration in Rechenzentren

Bild

Sie müssen kein Chipentwickler sein, um für FPGA zu programmieren, Sie müssen kein C ++ - Programmierer sein, um Java-Code zu schreiben. In beiden Fällen wird es jedoch wahrscheinlich nicht überflüssig sein.

Das Ziel der Kommerzialisierung beider Technologien, Java und FPGA, besteht darin, die neueste Aussage zu widerlegen. Die gute Nachricht für FPGAs ist, dass in den letzten 35 Jahren seit der Erfindung des programmierbaren Logikgeräts unter Verwendung geeigneter Abstraktions- und Toolkits Algorithmen und Datenströme für FPGAs anstelle von CPUs, DSPs, GPUs oder anderen speziellen ASICs erstellt wurden einfacher.

Die erstaunliche Aktualität ihrer Erstellung zeigt sich in der Tatsache, dass FPGAs gerade dann, wenn die CPU nicht mehr das einzige Rechenmodul von Rechenzentren sein konnte, das viele Aufgaben aus verschiedenen Gründen ausführen konnte, ihre Effizienz durch Geschwindigkeit, geringe Latenz, Netzwerkfähigkeiten und heterogenen Speicher erreichten Rechenfähigkeiten moderner FPGA-SoCs, die fast vollständige Computersysteme sind. FPGAs lassen sich jedoch erfolgreich mit anderen Geräten in Hybridsystemen kombinieren und finden unserer Meinung nach gerade erst ihren rechtmäßigen Platz in der Computerhierarchie.

Deshalb haben wir am 22. Januar die nächste FPGA-Plattform in San Jose organisiert. Natürlich ist Xilinx einer der Hauptlieferanten von FPGAs weltweit und ein Pionier auf diesem Gebiet. Ivo Bolsens, Senior Vice President und CTO von Xilinx, hielt auf der Konferenz eine Präsentation und erzählte uns von seinen heutigen Gedanken darüber, wie Xilinx zur Schaffung veränderbarer Computersysteme für Rechenzentren beiträgt.

Systemarchitekten und Programmierer brauchten genügend Zeit, um zu einem heterogenen Rechenzentrum zu gelangen, in dem verschiedene Arten von Computerkapazitäten vorgestellt werden, mit denen Computer-, Speicher- und Netzwerkprobleme gelöst werden können. Dies scheint notwendig zu sein, da die Befolgung des Moore'schen Gesetzes unter Verwendung verschiedener CMOS immer schwieriger wird. Während unsere Sprache immer noch an die CPU gebunden ist und wir immer noch von "Anwendungsbeschleunigung" sprechen, beziehen wir uns auf die Verbesserung der Programme im Vergleich zu dem, was nur auf der CPU möglich ist. Nach einiger Zeit werden Rechenzentren zu einer Reihe von Rechenleistung, Data Warehousing und Protokollen, die alles miteinander verbinden, und wir werden zu Begriffen wie „Computing“ und „Anwendungen“ zurückkehren. Hybrid Computing wird mit den heutigen Cloud-Diensten identisch sein.Arbeiten auf der Basis konventioneller oder virtueller Maschinen, und irgendwann werden wir nur das Wort „Computing“ verwenden, um ihre Arbeit zu beschreiben. Irgendwann - und wahrscheinlich wird das Aufkommen dieser Ära durch das FPGA aktiv erleichtert - werden wir es wieder Datenverarbeitung nennen.

Um FPGA in Rechenzentren zu implementieren, müssen Sie Ihre Denkweise ändern. „Wenn Sie überlegen, wie Sie die heutigen Anwendungen beschleunigen können, müssen Sie herausfinden, wie sie ausgeführt werden, welche Ressourcen verwendet werden und was Zeit kostet“, erklärt Bolsens. - Sie müssen das allgemeine Problem untersuchen, das Sie lösen möchten. Viele Anwendungen, die heute in Rechenzentren ausgeführt werden, sind skalierbar und erfassen eine große Anzahl von Ressourcen. Nehmen wir zum Beispiel maschinelles Lernen mit einer großen Anzahl von Rechenknoten. Wenn wir jedoch von Beschleunigung sprechen, müssen wir nicht nur über die Beschleunigung des Computing nachdenken, sondern auch über die Beschleunigung der Infrastruktur. “

Beispielsweise werden bei den von Bolsens in der Praxis untersuchten maschinellen Lernvorgängen etwa 50% der Zeit für die Übertragung von Daten zwischen verstreuter Rechenleistung aufgewendet, und nur die verbleibende Hälfte der Zeit wird für die Berechnungen selbst verschwendet.

„Hier scheint mir FPGA helfen zu können, da wir sowohl die rechnerischen Aspekte als auch die Datenübertragungsaspekte für die Anwendung optimieren können. Und wir können dies auf der Ebene der allgemeinen Infrastruktur und auf der Ebene der Chips tun. Dies ist einer der großen Vorteile von FPGAs, mit denen Sie Kommunikationsnetzwerke für die spezifischen Anforderungen der Anwendung erstellen können. Wenn ich die typischen Muster der Datenbewegung bei Aufgaben im Zusammenhang mit der Arbeit der künstlichen Intelligenz beobachte, sehe ich keine Notwendigkeit für eine komplexe Architektur, die auf Schaltern basiert. Sie können ein Netzwerk mit einem großen Datenfluss aufbauen. Gleiches gilt für die Aufgaben des Trainings neuronaler Netze - Sie können ein Mesh-Netz mit Paketgrößen aufbauen, die sich an eine bestimmte Aufgabe anpassen. Mit FPGA können Sie Datenübertragungsprotokolle und Schaltungstopologie für eine bestimmte Anwendung skalieren und optimieren.Und beim maschinellen Lernen ist auch klar, dass wir keine Gleitkommazahlen mit doppelter Genauigkeit benötigen, und wir können dies auch anpassen. "

Der Unterschied zwischen FPGA und CPU oder spezialisiertem ASIC besteht darin, dass letztere während der Produktion programmiert werden. Danach können Sie Ihre Meinung zu den Arten der berechneten Daten oder berechneten Elemente oder zur Art des durch das Gerät fließenden Datenstroms nicht mehr ändern. Mit FPGAs können Sie Ihre Meinung ändern, wenn sich die Arbeitsbedingungen ändern.

In der Vergangenheit war dieser Vorteil teuer, als die Programmierung für FPGA nicht für schwache Nerven gedacht war. Sie müssen Compiler für FPGAs öffnen, damit sie sich besser in die Tools integrieren lassen, mit denen Programmierer parallele Computeranwendungen für CPUs in C, C ++ oder Python erstellen, und Bibliotheken Arbeit geben, die die Prozeduren auf FPGAs beschleunigen. Dies ist der maschinelle Lernstapel von Vitis, der die Grundlage für Plattformen für MO wie Caffe und TensorFlow bildet und über Bibliotheken zum Starten gewöhnlicher KI-Modelle oder zum Hinzufügen von FPGA-Funktionen zu Aufgaben wie Videotranscodierung, Objekterkennung auf Video und Datenanalyse verfügt. , finanzielles Risikomanagement und Bibliotheken von Drittanbietern.

Dieses Konzept unterscheidet sich nicht wesentlich von dem vor zehn Jahren gestarteten CUDA-Projekt von Nvidia, das Parallel-Computing auf GPU-Beschleuniger umstellt, oder vom ROCm-Toolkit von AMD oder von den Versprechungen des Intel-Projekts OneAPI, das auf verschiedenen CPUs, GPUs und Betriebssystemen ausgeführt werden soll FPGA

Die Frage ist nur, wie all diese Tools miteinander verbunden werden, damit jeder nach eigenem Ermessen eine Reihe von Rechenleistungen programmieren kann. Dies ist wichtig, da FPGAs komplexer geworden sind, viel komplexer als jede der verfügbaren CPUs. Sie werden mit modernsten technologischen Verfahren und mit Hilfe modernster Chipverpackungstechnologien hergestellt. Und sie werden ihre Nische finden, weil wir keine Zeit, kein Geld, keine Energie und keine Intelligenz mehr verschwenden können - all dies sind zu teure Ressourcen.

"FPGA bietet technologische Vorteile", sagt Bolsens. - Und dies ist nicht nur gewöhnliche Werbung für Anpassungsfähigkeit und Nachjustierbarkeit. In allen wichtigen Anwendungen - maschinelles Lernen, Graphanalyse, Hochgeschwindigkeitshandel usw. - Sie haben die Möglichkeit, sich nicht nur an den Datenverteilungspfad, sondern auch an die Speicherarchitektur anzupassen - die Art und Weise, wie sich die Daten innerhalb des Chips bewegen. Und FPGA verfügt über viel mehr integrierten Speicher als andere Geräte. Es sollte auch beachtet werden, dass Sie die Aufgabe, wenn sie nicht in ein FPGA passt, auf mehrere Chips skalieren können, ohne auf die Nachteile zu stoßen, die Sie beim Skalieren von Aufgaben auf mehrere CPUs oder GPUs erwarten. “

Source: https://habr.com/ru/post/undefined/


All Articles