GPUs zur Lösung moderner IT-Probleme



Die Grafikverarbeitungseinheit (GPU) ist ein hervorragendes Beispiel dafür, wie sich die für Grafikverarbeitungsaufgaben entwickelte Technologie auf einen nicht verwandten Bereich des Hochleistungsrechnens ausgeweitet hat. Moderne GPUs stehen im Mittelpunkt vieler komplexer Projekte im Bereich des maschinellen Lernens und der Datenanalyse. In unserem Übersichtsartikel werden wir beschreiben, wie Selectel-Kunden Geräte mit einer GPU verwenden, und gemeinsam mit Lehrern der Yandex Data Analysis School über die Zukunft von Data Science und Computergeräten nachdenken.

GPUs haben sich in den letzten zehn Jahren stark verändert. Neben einer enormen Produktivitätssteigerung gab es eine Trennung der Geräte nach Verwendungsart. Grafikkarten für Heimspielsysteme und Virtual-Reality-Installationen zeichnen sich also in einer anderen Richtung aus. Es erscheinen leistungsstarke hochspezialisierte Geräte: Einer der führenden Beschleuniger für Serversysteme ist der NVIDIA Tesla P100 , der speziell für den industriellen Einsatz in Rechenzentren entwickelt wurde. Neben der GPU wird derzeit an der Entwicklung eines neuen Prozessortyps geforscht, der das Gehirn nachahmt. Ein Beispiel ist die Kirin 970 Single-Chip-Plattform mit einem eigenen neuromorphen Prozessor für Aufgaben im Zusammenhang mit neuronalen Netzen und der Mustererkennung.

In dieser Situation denken Sie über folgende Probleme nach:

  • Warum ist der Bereich Datenanalyse und maschinelles Lernen so beliebt geworden?
  • Wie haben GPUs den datenintensiven Gerätemarkt dominiert?
  • Welche Forschung auf dem Gebiet der Datenanalyse wird in naher Zukunft am vielversprechendsten sein?

Versuchen wir, diese Probleme der Reihe nach zu lösen, beginnend mit den ersten einfachen Videoprozessoren und endend mit modernen Hochleistungsgeräten.

GPU-Alter


Erinnern wir uns zunächst daran, was eine GPU ist. Die Grafikverarbeitungseinheit ist ein Grafikprozessor, der in Desktop- und Serversystemen weit verbreitet ist. Eine Besonderheit dieses Geräts ist sein Fokus auf Massenparallel-Computing. Im Gegensatz zu GPUs ist die Architektur einer anderen CPU (Central Processor Unit) für die sequentielle Datenverarbeitung ausgelegt. Wenn die Anzahl der Kerne in einer regulären CPU in Dutzenden gemessen wird, werden sie in der GPU in Tausenden gezählt, was die Art der ausgeführten Befehle einschränkt, aber bei Aufgaben mit Parallelität eine hohe Rechenleistung bietet.

Erste Schritte


Die Entwicklung von Videoprozessoren in den frühen Stadien war eng mit dem wachsenden Bedarf an einem separaten Computergerät für die Verarbeitung von zwei- und dreidimensionalen Grafiken verbunden. Vor dem Erscheinen einzelner Videocontrollerschaltungen in den 70er Jahren wurde die Bildausgabe mithilfe diskreter Logik durchgeführt, was sich auf den erhöhten Stromverbrauch und die Größe der Leiterplatten auswirkte. Spezielle Mikroschaltungen ermöglichten es, die Entwicklung von Geräten herauszustellen, die für die Arbeit mit Grafiken in einer separaten Richtung ausgelegt sind.

Das nächste revolutionäre Ereignis war die Entstehung einer neuen Klasse komplexerer und multifunktionaler Geräte - Videoprozessoren. Im Jahr 1996 brachte 3dfx Interactive den Voodoo Graphics-Chipsatz auf den Markt, der schnell 85% des Marktes für spezialisierte Videogeräte einnahm und zum Marktführer der damaligen 3D-Grafik wurde. Nach einer Reihe erfolgloser Entscheidungen des Managements des Unternehmens, darunter der Kauf des STB-Grafikkartenherstellers, verlor 3dfx die Meisterschaft an NVIDIA und ATI (später AMD) und erklärte 2002 Insolvenz.

Allgemeines GPU-Computing


Im Jahr 2006 kündigte NVIDIA die Veröffentlichung der Produktlinie der GeForce 8-Serie an, mit der eine neue Klasse von Geräten für das allgemeine Rechnen auf GPUs (GPGPU) eingeführt wurde. Während der Entwicklung kam NVIDIA zu dem Schluss, dass eine größere Anzahl von Kernen, die mit einer niedrigeren Frequenz arbeiten, für parallele Lasten effektiver ist als eine kleine Anzahl von produktiveren Kernen. Die neue Generation von Videoprozessoren unterstützte das parallele Rechnen nicht nur für die Verarbeitung von Videostreams, sondern auch für Probleme im Zusammenhang mit maschinellem Lernen, linearer Algebra, Statistik und anderen wissenschaftlichen oder kommerziellen Aufgaben.



Anerkannter Anführer


Die Unterschiede bei der anfänglichen Einstellung der Aufgaben für die CPU und die GPU führten zu signifikanten Unterschieden in der Architektur der Geräte - Hochfrequenz versus Multi-Core. Für GPUs hat dies das Rechenpotential gelegt, das derzeit voll ausgeschöpft wird. Videoprozessoren mit einer beeindruckenden Anzahl schwächerer Rechenkerne leisten hervorragende Arbeit beim parallelen Rechnen. Der Zentralprozessor, der in der Vergangenheit für sequentielle Aufgaben ausgelegt war, ist nach wie vor der beste auf seinem Gebiet.

Zum Beispiel vergleichen wir die Werte in der Leistung der Zentral- und Grafikprozessoren, die eine gemeinsame Aufgabe in neuronalen Netzen ausführen - die Multiplikation von Matrizen höherer Ordnung. Wir wählen folgende Geräte zum Testen aus:

  • CPU Intel Xeon E5-2680 v4 - 28 Threads mit HyperThreading, 2,4 GHz;
  • GPU NVIDIA GTX 1080 - 2560 CUDA-Kerne, 1607 MHz, 8 GB GDDR5X.

Wir verwenden ein Beispiel für die Berechnung der Matrixmultiplikation mit CPU und GPU in einem Jupyter-Notebook:



Im obigen Code messen wir die Zeit, die benötigt wurde, um Matrizen derselben Reihenfolge auf einer zentralen oder GPU ("Laufzeit") zu berechnen. Die Daten können in Form eines Diagramms dargestellt werden, in dem die horizontale Achse die Reihenfolge der zu multiplizierenden Matrizen und die vertikale Achse die Ausführungszeit in Sekunden anzeigt:



Die orange hervorgehobene Linie des Diagramms zeigt die Zeit an, die erforderlich ist, um Daten im herkömmlichen RAM zu erstellen, in den GPU-Speicher zu übertragen und anschließend zu berechnen. Die grüne Linie zeigt die Zeit an, die zur Berechnung der Daten benötigt wird, die bereits im Speicher der Grafikkarte generiert wurden (ohne sie aus dem RAM zu übertragen). Blau zeigt die Zählzeit auf dem Zentralprozessor an. Matrizen in der Größenordnung von weniger als 1000 Elementen werden fast gleichzeitig mit der GPU und der CPU multipliziert. Der Leistungsunterschied zeigt sich gut bei Matrizen, die größer als 2000 bis 2000 sind, wenn die Rechenzeit auf der CPU auf 1 Sekunde springt und die GPU nahe Null bleibt.

Komplexere und praktischere Aufgaben werden auf einem Gerät mit Grafikprozessoren effektiver gelöst als ohne. Da die Probleme, die unsere Kunden mit GPU-Geräten lösen, sehr unterschiedlich sind, haben wir uns entschlossen, die beliebtesten Anwendungsfälle herauszufinden.

Wer in Selectel lebt gut mit der GPU?


Die erste Option, die sofort in den Sinn kommt und sich als die richtige Vermutung herausstellt, ist der Bergbau. Es ist jedoch merkwürdig, dass einige sie als Hilfsmittel verwenden, um Geräte auf das „Maximum“ zu laden. Wenn Sie einen dedizierten Server mit Grafikkarten mieten, wird die freie Zeit von Workloads für das Mining von Kryptowährungen verwendet, für deren Empfang keine speziellen Installationen (Farmen) erforderlich sind.

Aufgaben im Zusammenhang mit der Grafikverarbeitung und dem Rendering, die bereits etwas klassisch geworden sind, finden immer ihren Platz auf Selectel-Servern mit Grafikbeschleunigern. Durch die Verwendung von Hochleistungsgeräten für solche Aufgaben erhalten Sie eine effektivere Lösung als die Organisation dedizierter Workstations mit Grafikkarten.

Während eines Gesprächs mit unseren Kunden trafen wir uns auch mit Vertretern der Yandex Data Analysis School, die Selectel-Einrichtungen verwendet, um Test-Lernumgebungen zu organisieren. Wir haben uns entschlossen, mehr darüber zu erfahren, was Schüler und Lehrer tun, welche Bereiche des maschinellen Lernens heute beliebt sind und was die Zukunft für die Branche bereithält, nachdem junge Spezialisten in die Reihen führender Organisationen aufgenommen oder ihre Startups gegründet wurden.

Datenwissenschaft


Vielleicht gibt es unter unseren Lesern keine, die den Ausdruck „neuronale Netze“ oder „maschinelles Lernen“ nicht hören würden. Nachdem Marketingvariationen zum Thema dieser Wörter verworfen wurden, wird ein trockener Rückstand in Form einer aufkommenden und vielversprechenden Datenwissenschaft erhalten.

Der moderne Ansatz für die Arbeit mit Daten umfasst mehrere Hauptbereiche:

  • Big Data Das Hauptproblem in diesem Bereich ist die enorme Menge an Informationen, die nicht auf einem einzelnen Server verarbeitet werden können. Unter dem Gesichtspunkt der Infrastrukturunterstützung ist es erforderlich, die Probleme der Erstellung von Clustersystemen, der Skalierbarkeit, der Fehlertoleranz und der verteilten Datenspeicherung zu lösen.
  • Ressourcenintensive Aufgaben (maschinelles Lernen, tiefes Lernen und andere). In diesem Fall stellt sich die Frage nach der Verwendung von Hochleistungsrechnern, die eine große Menge an RAM- und Prozessorressourcen erfordern. Bei solchen Aufgaben werden Systeme mit Grafikbeschleunigern aktiv eingesetzt.


Die Grenze zwischen den Richtungsdaten wird allmählich gelöscht: Die Hauptwerkzeuge für die Arbeit mit Big Data (Hadoop, Spark) implementieren die Unterstützung für GPU-Computing, und maschinelle Lernaufgaben decken neue Bereiche ab und erfordern mehr Daten. Lehrer und Schüler der School of Data Analysis helfen uns, dies genauer zu verstehen.



Es ist schwer zu überschätzen, wie wichtig kompetente Arbeit mit Daten und die angemessene Implementierung fortschrittlicher Analysewerkzeuge sind. Es geht nicht einmal um Big Data, ihre "Seen" oder "Flüsse", sondern um die intellektuelle Interaktion mit Informationen. Was jetzt passiert, ist eine einzigartige Situation: Wir können eine Vielzahl von Informationen sammeln und fortschrittliche Tools und Dienste für eingehende Analysen verwenden. Das Unternehmen führt solche Technologien nicht nur ein, um fortschrittliche Analysen zu erhalten, sondern auch, um in jeder Branche ein einzigartiges Produkt zu schaffen. Dies ist der letzte Punkt, der das Wachstum der Datenanalysebranche maßgeblich beeinflusst und stimuliert.

Neue Richtung


Überall sind wir von Informationen umgeben: von den Protokollen von Internetunternehmen und Bankgeschäften bis hin zu Zeugnissen in Experimenten am Large Hadron Collider. Die Fähigkeit, mit diesen Daten zu arbeiten, kann Millionen von Gewinnen bringen und Antworten auf grundlegende Fragen zur Struktur des Universums geben. Daher ist die Datenanalyse zu einem separaten Forschungsbereich in Wirtschaft und Wissenschaft geworden.

Die Schule für Datenanalyse bereitet die besten spezialisierten Spezialisten und Wissenschaftler vor, die in Zukunft die Hauptquelle für wissenschaftliche und industrielle Entwicklungen auf diesem Gebiet sein werden. Die Entwicklung der Branche wirkt sich auch auf uns als Infrastrukturanbieter aus - immer mehr Kunden fordern Serverkonfigurationen für Datenanalyseaufgaben an.

Die Besonderheiten der Aufgaben, denen sich unsere Kunden gegenübersehen, hängen davon ab, welche Geräte wir unseren Kunden anbieten und in welche Richtung unsere Produktlinie entwickelt werden soll. Zusammen mit Stanislav Fedotov und Oleg Ivchenko haben wir Schüler und Lehrer der School of Data Analysis interviewt und herausgefunden, mit welchen Technologien sie praktische Probleme lösen.



Datenanalysetechnologien


Während des Trainings erreichen Schüler aus den Grundlagen (höhere Mathematik, Algorithmen und Programmierung) die fortgeschrittensten Bereiche des maschinellen Lernens. Wir haben Informationen zu Servern mit GPUs gesammelt:

  • Tiefes Lernen;
  • Verstärkungstraining;
  • Computer Vision;
  • Automatische Textverarbeitung.

Die Studierenden verwenden spezielle Werkzeuge für ihre Studienaufgaben und Studien. Einige Bibliotheken sind so konzipiert, dass Daten in die erforderliche Form gebracht werden, während andere so konzipiert sind, dass sie mit einer bestimmten Art von Informationen arbeiten, z. B. Text oder Bildern. Deep Learning ist einer der herausforderndsten Bereiche in der Datenanalyse, in dem neuronale Netze in großem Umfang genutzt werden. Wir haben uns entschlossen herauszufinden, welche Lehrer und Schüler die Frameworks verwenden, um mit neuronalen Netzen zu arbeiten.



Die vorgestellten Tools werden von den Entwicklern unterschiedlich unterstützt, werden jedoch weiterhin aktiv für Schulungs- und Arbeitszwecke verwendet. Viele von ihnen benötigen produktive Geräte, um Aufgaben in einem angemessenen Zeitrahmen zu erledigen.

Weiterentwicklung und Projekte


Wie in jeder Wissenschaft wird sich die Richtung der Datenanalyse ändern. Die Erfahrungen, die die Studenten heute machen, werden zweifellos die Grundlage für zukünftige Entwicklungen bilden. Daher ist die hohe praktische Ausrichtung des Programms gesondert zu erwähnen - einige Studenten beginnen während oder nach dem Studium ein Praktikum bei Yandex und wenden ihr Wissen bereits auf reale Dienste und Dienste (Suche, Computer Vision, Spracherkennung und andere) an.

Wir haben mit den Lehrern der School of Data Analysis über die Zukunft der Datenanalyse gesprochen, die uns ihre Vision von der Entwicklung der Datenwissenschaft mitteilten.

Laut Vlad Shahuro , einem Lehrer des Kurses „Bild- und Videoanalyse “, bestehen die interessantesten Aufgaben in der Bildverarbeitung darin, die Sicherheit an überfüllten Orten zu gewährleisten, ein unbemanntes Fahrzeug zu fahren und eine Anwendung mit Augmented Reality zu erstellen. Um diese Probleme zu lösen, ist es notwendig, Videodaten qualitativ analysieren zu können und hauptsächlich Algorithmen zum Erkennen und Verfolgen von Objekten, Erkennen einer Person am Gesicht und dreidimensionale Rekonstruktion der beobachteten Szene zu entwickeln. Der Dozent Victor Lempitsky , ein führender Kurs für eingehende Schulungen, hebt Auto-Encoder sowie generative und wettbewerbsfähige Netzwerke in seine Richtung hervor.

Einer der Mentoren der School of Data Analysis teilt seine Meinung zur Verbreitung und zum Beginn des Masseneinsatzes von maschinellem Lernen:

„Maschinelles Lernen von den wenigen besessenen Forschern wird zu einem weiteren Werkzeug für den durchschnittlichen Entwickler. Zuvor (zum Beispiel im Jahr 2012) haben die Leute Code auf niedriger Ebene geschrieben, um Faltungsnetzwerke auf einem Paar Grafikkarten zu trainieren. Jetzt kann jeder in wenigen Stunden:

  • Laden Sie die Gewichte eines bereits trainierten neuronalen Netzwerks herunter (z. B. in Keras).
  • Machen Sie damit eine Lösung für Ihre Aufgabe ( Feinabstimmung, Zero-Shot-Lernen );
  • Betten Sie es in Ihre Website oder mobile Anwendung ein (Tensorflow / Caffe 2).

Viele große Unternehmen und Startups haben bereits mit einer solchen Strategie gewonnen (z. B. Prisma), aber es gibt noch weitere Probleme zu entdecken und zu lösen. Und vielleicht wird diese ganze Geschichte des maschinellen / tiefen Lernens eines Tages so alltäglich wie Python oder Excel. “

Laut Oleg Ivchenko , Administrator der ShAD-Serverinfrastruktur, erfordern Standardressourcen für vertiefendes Lernen in Standarddatensätzen (z. B. CIFAR, MNIST) die folgenden Ressourcen:

  • 6 CPU-Kerne;
  • 16 GB RAM;
  • 1 GPU-Karte mit 6-8 GB Videospeicher. Dies entspricht Grafikkarten wie der PNY NVIDIA GeForce GTX 1060 oder der MSI GeForce GTX 1070.

Niemand kann die Technologie der Zukunft heute genau vorhersagen, aber wenn es einen bestimmten Bewegungsvektor gibt, können Sie verstehen, was jetzt untersucht werden sollte. Und dafür gibt es in der modernen Welt viele Möglichkeiten.

Möglichkeiten für Anfänger


Das Studium der Datenanalyse ist durch hohe Anforderungen an die Studierenden begrenzt: umfangreiche Kenntnisse auf dem Gebiet der Mathematik und Algorithmen, die Programmierfähigkeit. Wirklich ernsthafte maschinelle Lernaufgaben erfordern spezielle Ausrüstung. Und für diejenigen, die mehr über die theoretische Komponente der Datenwissenschaft erfahren möchten, hat die School of Data Analysis zusammen mit der Higher School of Economics einen Online-Kurs " Einführung in das maschinelle Lernen " gestartet.

Anstelle einer Schlussfolgerung


Das Wachstum des GPU-Marktes wird durch das wachsende Interesse an den Fähigkeiten solcher Geräte ermöglicht. Die GPU wird in Heimspielsystemen, Rendering- und Videoverarbeitungsaufgaben sowie dort eingesetzt, wo allgemeines Hochleistungsrechnen erforderlich ist. Die praktische Anwendung von Data Mining-Aufgaben wird tiefer in unser tägliches Leben eindringen. Und die Ausführung solcher Programme erfolgt am effektivsten präzise mit der GPU.

Wir danken unseren Kunden sowie Lehrern und Schülern der School of Data Analysis für die gemeinsame Vorbereitung des Materials und laden unsere Leser ein, sie besser kennenzulernen.

Und erfahren und anspruchsvoll im Bereich maschinelles Lernen, Datenanalyse und nicht nur bieten wir die Angebote von Selectel für die Anmietung von Servergeräten mit Grafikbeschleunigern an: von der einfachen GTX 1080 über Tesla P100 bis K80 für die anspruchsvollsten Aufgaben.

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


All Articles