Nvidia
stellte die Open-Source-Plattform Rapids vor, deren Aufgabe es ist, GPU-Algorithmen für maschinelles Lernen zu beschleunigen. Wir sprechen über die Funktionen des Tools und seine Analoga.
/ Foto Martin Brigden CCDas Problem des Trainings neuronaler Netze
Die Technologieliste von Nvidia umfasst die CUDA-Parallel-Computing-Architektur. Ziel ist es, die Berechnung zu beschleunigen, indem ein Teil der GPU-Aufgaben anstelle der CPU übertragen wird. In einigen Fällen
können Sie
so die Arbeit von Anwendungen und Algorithmen um das 18-fache
beschleunigen .
Aus diesem Grund hat es im Bereich des maschinellen Lernens breite Anwendung gefunden. Zum Beispiel verwenden Forscher von Universitäten in Florida und North Carolina
damit eine neuronale Netzwerk-Engine für Quantensimulationen.
Eine große Anzahl verschiedener Bibliotheken wird verwendet, um MO-Algorithmen zu entwickeln. Viele
von ihnen sind in Python geschrieben . Aber nicht alle unterstützen die Arbeit mit CUDA. Python-Tools für maschinelles Lernen Scikit-Learn und Pandas sind Beispiele für solche Tools. Um Python-Code in der CUDA-Architektur auszuführen, verwenden Forscher separate Numba- oder PyCUDA-Bibliotheken. Gleichzeitig muss der Code einiger Komponenten manuell
neu geschrieben werden, was schwierig ist, da Sie die Programmierfunktionen für die GPU kennen müssen.
Nvidia-Lösung
Um die Code-Portierung zu automatisieren, hat Nvidia die neue offene Rapids-Plattform vorgestellt. Entwickler müssen nicht auf verschiedene Bibliotheken zurückgreifen: Sie schreiben nur Code in Python, und Rapids optimiert ihn automatisch für die Ausführung auf der GPU.
Um Prozesse abzubilden, verwendet Rapids eine gemeinsame Datenbank, die sich im Speicher der GPU befindet. Die Daten werden im Apache Arrow-
Format gespeichert , das für alle Plattform-Tools gleich ist. Diese Lösung beschleunigt den maschinellen Lernprozess um das 50-fache im Vergleich zu Systemen, die sowohl Grafiken als auch Zentralprozessoren verwenden.
Gleichzeitig stehen auf der Rapids-Plattform Tools zur Verfügung, mit deren Hilfe der gesamte Prozess der Arbeit mit neuronalen Netzen auf einem Grafikchip ausgeführt werden kann: von der Datenaufbereitung bis zur Ausgabe des Ergebnisses.
Die Anzahl der Lösungen im
GitHub Rapids-Repository wird aktiv aufgefüllt. Beispielsweise gibt es eine
cuDF- Bibliothek zum Aufbereiten von Daten und zum Trainieren eines neuronalen Netzwerks. Mit der
cuML- Bibliothek können
Sie Algorithmen für maschinelles Lernen entwickeln, ohne auf die Details der Programmierung für CUDA
einzugehen .
Nvidia wird die Plattform weiterentwickeln. Die Entwickler des Projekts planen, Rapids Tools für Datenvisualisierung, Diagrammanalyse und Deep Learning hinzuzufügen. Das Programm
integriert auch das Apache Spark-Framework.
Was denken sie über die Plattform?
Die Technologie-Community unterstützte die Veröffentlichung von Rapids, aber die Weiterentwicklung warf mehrere Fragen von Experten und Anwendern auf.
Beispielsweise sprachen Manager von Cisco, Dell, NetApp, Lenovo und anderen Unternehmen zur Unterstützung der neuen Lösung. Scott Collison
, CEO von Anaconda,
sagte, Rapids werde die Erfassung und Aufbereitung von Daten für das Training komplexer KI-Systeme vereinfachen. Der Schöpfer von Apache Arrow und Pandas, Wes McKinney, stimmt ihm zu. Ihm zufolge wird Rapids zu einer höheren Produktivität bei Aufgaben im Zusammenhang mit der Erstellung von Features führen (
Feature Engineering ).
/ Foto Sander van der Wel CCDie Community ist jedoch auch
der Meinung, dass Rapids nicht als echtes Open-Source-Projekt angesehen werden kann. Das System funktioniert nur mit Nvidia-Karten, und die Veröffentlichung der Plattform kann ein Marketingschritt sein, um neue Kunden zu gewinnen. Das Unternehmen hat noch nicht angegeben, ob die Plattform mit Geräten anderer Hersteller funktioniert.
Wer benutzt schon Rapids?
IBM
plant , die Plattform in Services für die Arbeit mit Systemen mit künstlicher Intelligenz zu implementieren: PowerAI, Watson und IBM Cloud. Oracle kündigte auch Unterstützung für Rapids an - eine Plattform,
die in der Oracle Cloud-Infrastruktur
verfügbar ist .
Das neue Produkt von Nvidia wurde auch von Walmart und Uber getestet. Die ersten Rapids haben dazu
beigetragen, die Algorithmen des Systems
zu verbessern, das für die Bestandsverwaltung verantwortlich ist. Laut Vertretern des Einzelhändlers hat Rapids den Einsatz von Algorithmen für maschinelles Lernen beschleunigt. Für Uber verwendet das Unternehmen Rapids bei der Entwicklung unbemannter Fahrzeugsysteme.
Alternative Lösung
Nicht nur Nvidia entwickelt eine Plattform zur Beschleunigung von MO. AMD ist beispielsweise am
ROCm- Projekt (Radeon Open Compute) beteiligt. Es ist eine offene Plattform für Hochleistungsrechnen auf der GPU.
Ein Merkmal von ROCm ist, dass es nicht von der Programmiersprache abhängt und mit fast jeder Grafikkarte arbeiten kann. Einschließlich mit Nvidia-Karten. Hierzu
wird ein spezieller C ++ - Dialekt namens HIP verwendet. Es vereinfacht die Konvertierung von CUDA-Anwendungen in portablen C ++ - Code. Der Code wird automatisch von einem speziellen Hipify-System konvertiert.
Gleichzeitig
unterstützt ROCm
eine große Anzahl von Math Acceleration Libraries. Unter diesen können BLAS, FFT und
Tensorfaltung unterschieden werden.
Experten der IT-Branche weisen darauf hin, dass Open Source-Lösungen zur Beschleunigung von heterogenem und GPU-Computing wie ROCm und Rapids Entwicklern die Möglichkeit bieten, Computerressourcen effizienter zu nutzen und mehr Leistung mit verfügbarer Hardware zu erzielen.
PS Einige Materialien aus dem ersten Corporate IaaS-Blog:
PPS Kurz über IaaS-Technologien - in unserem
Telegrammkanal :