Die Unvermeidlichkeit des Eindringens von FPGAs in Rechenzentren

Die Unvermeidlichkeit des Eindringens von FPGAs in Rechenzentren
Es ist nicht notwendig, ein Chip-Entwickler zu sein, um für FPGAs zu programmieren, ebenso wenig wie es nötig ist, ein C++-Programmierer zu sein, um Code in Java zu schreiben. In beiden Fällen könnte jedoch etwas Vorkenntnis von Vorteil sein.

Das Ziel der Kommerzialisierung beider Technologien, Java und FPGA, besteht darin, diese Annahme zu widerlegen. Die gute Nachricht für FPGAs ist, dass es in den letzten 35 Jahren, seit der Erfindung von programmierbaren logischen Bauteilen, mit den passenden Abstraktionsebenen und Werkzeugen immer einfacher wird, Algorithmen und Datenströme für FPGAs anstelle von CPUs, DSPs, GPUs oder anderen spezialisierten ASICs zu entwickeln.

Die erstaunliche Aktualität ihrer Entwicklung zeigt sich gerade darin, dass die CPUs nicht mehr die einzige Recheneinheit bleiben konnten. von Rechenzentren FPGA haben sich als äußerst effizient erwiesen, um eine Vielzahl von Aufgaben aus den unterschiedlichsten Gründen zu erfüllen. Sie bieten hohe Leistung, geringe Latenz, Netzwerkfähigkeiten und Speichermöglichkeiten – die vielseitigen Rechenfähigkeiten moderner FPGA SoCs, die nahezu als vollwertige Computersysteme fungieren. Darüber hinaus harmonieren FPGAs gut mit anderen Geräten in hybriden Systemen, und wir sind der Meinung, dass sie gerade beginnen, ihren rechtmäßigen Platz in der Hierarchie der Berechnungen zu finden.

Aus diesem Grund haben wir die Konferenz The Next FPGA Platform am 22. Januar in San Jose organisiert. Natürlich ist Xilinx einer der führenden Anbieter von FPGAs weltweit und ein Pionier auf diesem Gebiet. Ivo Bolsens, Senior Vice President und Chief Technology Officer von Xilinx, hielt auf der Konferenz einen Vortrag und teilte uns seine aktuellen Gedanken darüber mit, wie Xilinx dabei hilft, anpassbare Rechensysteme für Rechenzentren zu entwickeln.

Systemarchitekten und Programmierer haben viel Zeit darauf verwendet, um zu einem heterogenen Rechenzentrum zu gelangen, das verschiedene Arten von Rechenressourcen bereitstellt, um Aufgaben für Berechnungen, Speicherung und Netzwerkorganisation zu lösen. Dies scheint notwendig zu sein, da es immer schwieriger wird, dem Mooreschen Gesetz mit verschiedenen CMOS-Technologien zu folgen. Solange unsere Sprache immer noch auf CPU ausgerichtet ist und wir weiterhin von "Anwendungsbeschleunigung" sprechen, meinen wir die Verbesserung der Softwareleistungen im Vergleich zu dem, was ausschließlich mit CPUs möglich ist. Mit der Zeit werden Rechenzentren aus einer Kombination von Rechenressourcen, Datenspeichern und den Protokollen, die alles miteinander verbinden, bestehen, und wir werden wieder zu Begriffen wie "Berechnungen" und "Anwendungen" zurückkehren. Hybrides Computing wird ebenso zur Norm werden wie die heutigen "Cloud"-Dienste, die auf herkömmlichen oder virtuellen Maschinen, und irgendwann werden wir einfach das Wort "Berechnungen" verwenden, um ihre Funktionsweise zu beschreiben. In naher Zukunft – und wahrscheinlich wird die Einführung dieser Ära durch FPGAs aktiv gefördert – werden wir dies erneut als Datenverarbeitung bezeichnen.

Die Implementierung von FPGA in Rechenzentren erfordert ein Umdenken. „Wenn man über Möglichkeiten nachdenkt, die heutigen Anwendungen zu beschleunigen, muss man die Grundlagen untersuchen, wie sie ausgeführt werden, welche Ressourcen genutzt werden und wo die Zeit verloren geht“, erklärt Bolsens. „Es ist wichtig, das allgemeine Problem zu verstehen, das man lösen möchte. Viele heute in Rechenzentren betriebene Anwendungen skalieren und beanspruchen eine große Menge an Ressourcen. Nehmen wir zum Beispiel maschinelles Lernen, das eine enorme Anzahl von Rechenressourcen benötigt. Aber wenn man über Beschleunigung spricht, muss man nicht nur an die Beschleunigung der Berechnungen denken, sondern auch an die Beschleunigung der Infrastruktur.“

Bei den von Bolsens praktischen Untersuchungen zu maschinellem Lernen verbringt man beispielsweise etwa 50 % der Zeit damit, Daten zwischen unterschiedlichen Rechenressourcen hin und her zu übertragen, und nur die verbleibenden 50 % der Zeit werden für die eigentlichen Berechnungen verwendet.

«Именно здесь, мне кажется, и сможет помочь FPGA, поскольку мы можем обеспечить оптимизацию как вычислительных аспектов, так и аспектов передачи данных для приложения. И мы можем делать это на уровне общей инфраструктуры, и на уровне чипа. Это одно из больших преимуществ FPGA, позволяющих создавать сети связи под конкретные нужды приложения. Наблюдая за типичными закономерностями перемещения данных в задачах, связанных с работой искусственного интеллекта, я не вижу необходимости в сложной архитектуре на основе коммутаторов. Можно построить сеть с большим потоком данных. То же касается и задач обучения нейросетей – можно построить ячеистую сеть с размерами пакетов, подстраивающимися под конкретную задачу. С использованием FPGA можно очень точно масштабировать и подстраивать протоколы передачи данных и топологию схемы для конкретного приложения. А в случае с машинным обучением также ясно, что нам не нужны числа с плавающей запятой двойной точности, и это мы тоже можем подстроить».

Der Unterschied zwischen FPGA und CPU oder spezialisierten ASIC besteht darin, dass Letztere bei der Herstellung programmiert werden und man danach nicht mehr die Art der verarbeiteten Daten oder die Berechnungselemente sowie die Natur des Datenflusses, die durch das Gerät gehen, ändern kann. FPGAs hingegen ermöglichen es Ihnen, Ihre Entscheidungen zu überdenken, wenn sich die Arbeitsbedingungen ändern.

Früher war dieser Vorteil teuer, da das Programmieren von FPGAs nicht für schwache Nerven geeignet war. Es erforderte die Verwendung von Compilern für FPGAs, die besser mit den Tools integriert werden konnten, die Programmierer verwenden, um Anwendungen mit paralleler Verarbeitung für CPU in Sprachen wie C, C++ oder Python zu erstellen, und einen Teil der Arbeit an Bibliotheken abzugeben, die die Abläufe auf FPGA beschleunigen. Dies wird durch den Vitis-Stack für maschinelles Lernen erreicht, der die Grundlage für Plattformen wie Caffe und TensorFlow bildet und Bibliotheken zum Ausführen gängiger KI-Modelle oder zur Hinzufügung von FPGA-Funktionen für Aufgaben wie Video-Transkodierung, Objekterkennung in Videos, Datenanalyse, Risikomanagement im Finanzbereich und zahlreiche externe Bibliotheken bereitstellt.

Dieses Konzept unterscheidet sich nicht grundlegend von dem CUDA-Projekt von Nvidia, das vor zehn Jahren ins Leben gerufen wurde und parallele Rechenoperationen auf GPU-Beschleuniger überträgt, oder von dem Werkzeugkasten ROCm von AMD, oder von den Versprechungen des Intel-Projekts OneAPI, das auf verschiedenen CPUs, GPUs und FPGAs arbeiten soll.

Die Frage ist nur, wie all diese Werkzeuge miteinander verbunden werden, sodass jeder in der Lage ist, einen Satz von Rechenressourcen nach seinen Wünschen zu programmieren. Dies ist wichtig, da FPGAs viel komplexer geworden sind, als jeder vorhandene CPU. Sie werden mit den fortschrittlichsten Fertigungsprozessen und den modernsten Chipverpackungstechnologien hergestellt. Ihre Nische werden sie finden, da wir keine Zeit, Geld, Energie und Intelligenz mehr verschwenden können – all diese Ressourcen sind zu kostbar.

„FPGA bietet technologische Vorteile“, sagt Bolsens. „Es handelt sich nicht nur um gewöhnliche Werbung für Anpassungsfähigkeit und Neu konfigurierbarkeit. In allen wichtigen Anwendungen – maschinelles Lernen, Graphanalyse, Hochfrequenzhandel usw. – können sie nicht nur den Datenfluss, sondern auch die Speicherarchitektur an spezielle Anforderungen anpassen – also wie die Daten innerhalb des Chips bewegt werden. Darüber hinaus verfügen FPGAs über wesentlich mehr Speicher als andere Geräte. Es ist auch zu beachten, dass, wenn die Aufgabe nicht auf einen einzigen FPGA passt, man sie über mehrere Chips skalieren kann, ohne auf die Probleme zu stoßen, die bei der Skalierung von Aufgaben auf mehrere CPUs oder GPUs auftreten.“

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster