Maschinelles Lernen auf GPU beschleunigen - eine neue Open-Source-Plattform wird eingeführt

    Nvidia stellte die Open-Source-Plattform Rapids vor, deren Aufgabe es ist, die Arbeit der Machine Learning-Algorithmen auf der GPU zu beschleunigen. Wir sprechen über die Eigenschaften des Instruments und seine Analoga.


    / Foto Martin Brigden CC

    Das Problem des Lernens neuronaler Netze


    Die Technologieliste von Nvidia verfügt über eine Parallel-Computing-Architektur mit der Bezeichnung CUDA. Ziel ist es, die Berechnungen zu beschleunigen, indem anstelle der CPU ein Teil der GPU-Aufgaben übertragen wird. In einigen Fällen können Sie damit die Arbeit von Anwendungen und Algorithmen um das 18-fache beschleunigen .

    Aus diesem Grund hat es im Bereich des maschinellen Lernens breite Anwendung gefunden. Forscher von Universitäten in Florida und North Carolina entwickeln beispielsweise die neuronale Netzwerk-Engine für Quantensimulationen.

    Zur Entwicklung von MO-Algorithmen werden eine Vielzahl verschiedener Bibliotheken verwendet. Viele von ihnen sind in Python geschrieben. Aber nicht alle unterstützen die Arbeit mit CUDA. Ein Beispiel für solche Tools sind die Python-Bibliotheken "Scikit-Learn" und "Pandas" für maschinelles Lernen. Um Python-Code in der CUDA-Architektur auszuführen, verwenden Forscher separate Numba- oder PyCUDA-Bibliotheken. In diesem Fall muss der Code einiger Komponenten manuell umgeschrieben werden, was schwierig ist, da Sie die Programmierfunktionen für die GPU kennen müssen.

    Nvidia-Lösung


    Um die Codemigration zu automatisieren, hat Nvidia die neue offene Plattform Rapids eingeführt. Entwickler müssen nicht auf andere Bibliotheken zurückgreifen: Sie schreiben einfach Code in Python, und Rapids optimiert ihn automatisch für die Ausführung auf der GPU.

    Zum Vergleichen von Prozessen 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 einheitlich ist. Diese Lösung beschleunigt den maschinellen Lernprozess um das 50-fache im Vergleich zu Systemen, die sowohl Grafik- als auch Zentraleinheiten verwenden.

    Gleichzeitig stehen auf der Rapids-Plattform Werkzeuge zur Verfügung, mit denen der gesamte Prozess der Arbeit mit neuronalen Netzwerken auf dem Grafikchip durchgeführt werden kann: von der Datenaufbereitung bis zur Ausgabe des Ergebnisses.

    Die Anzahl der Lösungen im Repository von GitHub Rapids wächst ständig. Zum Beispiel gibt es eine cuDF- Bibliothek für die Datenaufbereitung und das Training für neuronale Netzwerke. Mit der cuML- Bibliothek können Sie Algorithmen für maschinelles Lernen entwickeln, ohne sich mit der Programmierung für CUDA zu beschäftigen.

    Nvidia wird die Plattform weiterentwickeln. Die Ersteller des Projekts planen, Werkzeuge zur Datenvisualisierung, Diagrammanalyse und Tiefenlernen in Rapids hinzuzufügen. Das Programm integriert auch das Apache Spark-Framework.

    Was halten sie von der Plattform?


    In der Technologie-Community wurde die Rapids-Version unterstützt, aber die weitere Entwicklung führte zu einigen Fragen von Experten und Anwendern.

    So bekundeten Manager von Cisco, Dell, NetApp, Lenovo und anderen Unternehmen ihre Unterstützung für die neue Lösung. Anaconda-CEO Scott Collison (Scott Collison) sagte , Rapids werde die Sammlung und Aufbereitung von Daten für das Training komplexer KI-Systeme vereinfachen. Der Schöpfer von Apache Arrow und den Pandas, Wes McKinney (Wes McKinney), stimmt zu. Ihm zufolge führt Rapids zu einer Produktivitätssteigerung bei Aufgaben, die mit der Erstellung von Features zusammenhängen ( Feature-Engineering ).


    / photo Sander van der Wel CC

    Die Community hat jedoch auch eine Meinungdass Rapids nicht als ein echtes Open Source-Projekt betrachtet werden kann. Das System funktioniert nur mit Nvidia-Karten, und die Veröffentlichung der Plattform kann ein Marketing-Trick sein, um neue Kunden zu gewinnen. Das Unternehmen hat noch nicht angegeben, ob die Plattform mit Geräten anderer Hersteller zusammenarbeitet.

    Wer nutzt schon Stromschnellen


    IBM plant , die Plattform in Services für die Arbeit mit künstlichen Intelligenzsystemen einzuführen: PowerAI, Watson und IBM Cloud. Unterstützung für Rapids wurde ebenfalls von Oracle angekündigt - die Plattform ist in der Oracle Cloud-Infrastruktur verfügbar .

    Das neue Produkt Nvidia testete auch Walmart und Uber. First Rapids half dabei, die Algorithmen des für die Bestandsverwaltung zuständigen Systems zu verbessern . Nach den Worten von Vertretern der Einzelhändler, Rapids beschleunigten Scan Algorithmen für maschinelles Lernen. Wie Uber verwendet das Unternehmen die Rapids bei der Entwicklung unbemannter Fahrzeugsysteme.

    Alternative Lösung


    Nicht nur Nvidia entwickelt eine Plattform zur Beschleunigung von MO. AMD ist beispielsweise an einem Projekt ROCm (Radeon Open Compute) beteiligt. Dies ist eine offene Plattform für das Hochleistungs-GPU-Computing.

    Die Besonderheit von ROCm ist, dass es nicht von der Programmiersprache abhängt und mit fast jeder Grafikkarte arbeiten kann. Einschließlich Karten Nvidia. Um dies zu tun, verwenden Sie einen besonderen Dialekt von C ++, die HIP genannt wird. 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 Bibliotheken für Math-Beschleunigungsbibliotheken. Darunter sind BLAS, FFT und die Faltung des Tensors .

    IT-Experten weisen darauf hin, dass Open-Source-Lösungen für die Beschleunigung von heterogenem und GPU-Computing wie ROCm und Rapids es Entwicklern ermöglichen, Rechenressourcen effizienter zu nutzen und mit der verfügbaren Hardware mehr Leistung zu erzielen.



    PS Mehrere Materialien aus dem ersten Corporate IaaS-Blog:




    PPS-IaaS-Technologie im Überblick - in unserem Telegrammkanal :




    Jetzt auch beliebt: