Deutschland - Kennzeichen Deutschland

Incoterms:DDP
Alle Preise sind inklusive Zoll und Gebühren bei der Auswahl der Versandart.

Bitte bestätigen Sie Ihre Währungsauswahl:

Euro
Versand ist kostenfrei bei den meisten Bestellungen über 50 € (EUR)

US Dollar
Versand ist kostenfrei bei den meisten Bestellungen über $60 (USD)

Bench Talk for Design Engineers

Mouser German Blog

rss

Mouser Electronics, Inc german language blogs


GPUs beschleunigen das Deep Learning M. Tim Jones

(Quelle: Phonlamai Photo/Shutterstock.com)

 

In seinen Anfangstagen war das maschinelle Lernen suchbasiert und stützte sich hauptsächlich auf Brute-Force-Methoden verbunden mit einer gewissen Optimierung. Im Zuge seiner Weiterentwicklung verlagerte sich der Schwerpunkt des maschinellen Lernens jedoch auf statistische Ansätze und Optimierungsprobleme, die für die Beschleunigung gerüstet waren. Mit dem Aufkommen des Deep Learning tat sich schließlich eine unverhoffte Optimierungsquelle auf. In diesem Beitrag schauen wir uns an, wie das moderne Machine Learning mit neuen Verfahren sowohl seine Reichweite als auch seine Geschwindigkeit steigern konnte.

 

Der Wandel der KI

In Teil 1 dieser Reihe haben wir uns mit der Geschichte der KI beschäftigt und uns die Entwicklung von Lisp hin zu modernen Programmiersprachen und neuen Paradigmen der Computerintelligenz, wie etwa Deep Learning, angeschaut. Daneben haben wir uns mit frühen Anwendungen der Künstlichen Intelligenz beschäftigt, die sich auf optimierte Formen der Suche stützten, modernen neuronalen Netzwerkarchitekturen, die mittels massiven Datensätzen trainiert wurden und Probleme lösen konnten, deren Lösung noch vor einem Jahrzehnt als unmöglich galt. Heute wollen wir uns auf zwei Aspekte konzentrieren: die weitere Beschleunigung dieser Anwendungen sowie ihre Beschränkung auf energieoptimierte Umgebungen wie etwa Smartphones.

 

Im Bereich der Beschleunigung liegt der Schwerpunkt heutzutage auf dem Deep Learning. Unter Deep Learning versteht man die Architektur neuronaler Netze, die sich auf viele Ebenen neuronaler Netze stützt, wobei Schichten unterschiedliche Funktionen zur Merkmalserkennung unterstützen können. Diese Deep Neural Networks stützen sich auf Vektoroperationen, die von Parallelität profitieren können. Diese Architekturen stellen sowohl Möglichkeiten für verteilte Berechnungen für die Schichten des neuronalen Netzes als auch für parallelisierte Berechnungen für die vielen Neuronen innerhalb einer Schicht dar.

 

Machine-Learning-Beschleunigung mithilfe von GPUs

Bei der unverhofften Quelle für die Beschleunigung von Deep-Learning-Anwendungen handelte es sich um den Grafikprozessor, auch GPU genannt. Ein GPU ist ein Gerät, das den Aufbau des Bildspeichers („Framebuffer“), der auf einem Anzeigegerät ausgegeben wird, beschleunigt. Der Grafikprozessor überträgt die Darstellung des Bildes in den Framebuffer, sodass der Prozessor dies nicht übernehmen muss. GPUs bestehen aus Tausenden unabhängiger Kerne, die parallel arbeiten und bestimmte Arten von Berechnungen, z. B. Vektorrechnungen, ausführen. Obwohl GPUs ursprünglich ausschließlich für Videoanwendungen konzipiert wurden, hat sich herausgestellt, dass sie auch die Ausführung wissenschaftlicher Berechnungen, wie etwa die Matrizenmultiplikation, beschleunigen.

 

GPU-Anbieter stellen gerne Programmierschnittstellen (API) zur Verfügung, die es Entwicklern ermöglichen, das GPU-Processing in ihre Anwendungen zu integrieren. Dies ist jedoch auch mit Standardpaketen möglich, die für eine Vielzahl verschiedener Umgebungen erhältlich sind. Die Programmiersprache und Umgebung R umfasst Pakete wie gputools, gmatrix und gpuR, die mithilfe von GPUs die Verarbeitung beschleunigen. GPUs können über verschiedene Bibliotheken wie das Softwarepaket Numba oder Theano auch mit Python verwendet werden.

 

Diese Pakete machen die GPU-Beschleunigung für das maschinelle Lernen für jeden zugänglich, der sie nutzen möchte. Aber es gibt auch speziellere Ansätze. Im Jahr 2019 beispielsweise übernahm Intel® für 2 Milliarden US-Dollar Habana Labs – einen Anbieter, der kundenspezifische Chips für verschiedene Machine-Learning-Beschleuniger in Servern entwickelt hat. Vorausgegangen war 2017 die Übernahme von Mobileye, einem Anbieter von Chiptechnologien für selbstfahrende Fahrzeuge, für 15 Milliarden US-Dollar.

 

Kundenspezifisches Silizium und Befehlssätze

Machine-Learning-Beschleuniger kommen jedoch nicht nur bei der GPU-Beschleunigung in Servern und Desktops zum Einsatz, sondern auch abseits klassischer Plattformen in eingebetteten Geräten mit geringem Stromverbrauch und Smartphones. Die Beschleuniger können vielfältige Formen annehmen – von USB-Sticks über APIs bis hin zu Smartphone-Beschleunigern für neuronale Netze und Vektor-Befehlssätzen für die Deep-Learning-Beschleunigung.

 

Deep Learning für Smartphones

Deep-Learning-Toolkits haben ihren Weg von PCs zu Smartphones für Netzwerke gefunden, die stärker beschränkt sind. Frameworks wie TensorFlow Lite und Core ML werden bereits auf mobilen Geräten für Machine-Learning-Anwendungen eingesetzt. Apple® hat vor kurzem den A12 Bionic-Chip auf den Markt gebracht, der eine 8-Kern-Engine für neuronale Netze enthält, um energieeffizientere Anwendungen für neuronale Netze zu entwickeln. Dies wird die Deep-Learning-Anwendungen auf Apple-Smartphones erweitern.

 

Google hat die Neural Networks API (NNAPI) für Android® 8.1 mit Machine-Learning-Fähigkeiten auf den Markt gebracht. Sie wird von Google Assistant im Zusammenhang mit der Verarbeitung natürlicher Sprache und Bilderkennung für die Google Lens App verwendet. NNAPI ähnelt anderen Deep-Learning-Toolkits, wurde jedoch für die Android-Smartphone-Umgebung und deren begrenzte Ressourcen entwickelt.

 

Deep-Learning-USB

Intel hat eine aktualisierte Version seines Neural Compute Stick herausgebracht, der Deep-Learning-Anwendungen im Formfaktor eines USB-Sticks beschleunigt. Dieser kann von verschiedenen Machine-Learning-Frameworks wie TensorFlow, Caffe und PyTorch verwendet werden. Das Gerät ist eine interessante Wahl bei fehlender GPU, ermöglicht aber auch das schnelle Prototyping von Deep-Learning-Anwendungen.

 

Deep-Learning-Befehlssätze

Während sich die Machine-Learning-Berechnungen von der CPU auf den Grafikprozessor verlagert haben, hat Intel seinen Xeon-Befehlssatz im Hinblick auf die Deep-Learning-Beschleunigung mit neuen Befehlen optimiert. Diese neuen Befehle werden als AVX-512-Erweiterung bezeichnet (Vector Neural Network Instructions, VNNI) und verbessern den Durchsatz von Convolutional Neural Network-Operationen.

 

Fazit

Die Anwendung von GPUs im Machine-Learning-Bereich bietet die Möglichkeit, massive Deep Neural Networks für verschiedene Anwendungen aufzubauen und einzusetzen. Dank Machine-Learning-Frameworks ist es einfach, anschließend Deep-Learning-Anwendungen zu entwickeln. Smartphone-Anbieter wollten bei dieser Entwicklung jedoch nicht abgehängt werden und haben daher energieeffiziente Beschleuniger für neuronale Netze für eingeschränkte Anwendungen integriert (zusammen mit APIs für die Verwendung von benutzerdefinierten Anwendungen). Inzwischen werden für die Übertragung auf USB-Sticks auch andere Beschleuniger angeboten, und viele neue Startups setzen im Hinblick auf künftige Machine-Learning-Anwendungen mittlerweile auf diesen Bereich.



« Zurück


M. Tim Jones hat über 30 Jahre Erfahrung im Bereich IT-Architekturen und Entwicklung, insbesondere für Embedded Systems.  Er hat mehrere Bücher und zahlreiche Artikel zu einer Fülle an Themen wie Software- und Firmware-Entwicklung verfasst.  Seine Fachkenntnisse reichen von der Entwicklung von Kernels für geostationäre Raumfahrzeuge bis hin zu Architekturen für Embedded Systems und die Protokoll-Entwicklung. 


Alle Autoren

Alle anzeigen Alle anzeigen
Blog nach Datum anzeigen