PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
In der Mess- und Prüftechnik PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Die Software für Implementierung der Modelle und Algorithmen ist stark verknüpft mit der Rechnerarchitektur
Performanzprobleme vor allem bei Training, aber auch bei Inferenz!
Parallelisierung kann die Performanz steigern
Effizienz: Optimierung von Rechenzeit + Speicherbedarf + Energie!
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
N(x1,x2,..,xn)=f(Σjwjxj)
Das Netzwerk kann als eine große Funktion M(x) aus Funktionen (Neuronen einer Ebene sind zu einer Funktion L zusammengefasst) gebaut werden:
M(→x)=Lm(Lm−1(...(L0))),Li={Ni,1,Ni,2,..}
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Funktionale Dekomposition eines SLP (Neuron N)
Die Berechnung aller {Ni} Funktionen in einer Ebene Li kann parallel erfolgen!
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
N(xi)={v1,xi<εv2,xi⩾ε
M(→x)=N(Nx1(Nx3(..),Nx4(..)),Nx2(..))
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Parallelisierung ist gut auf Probleme mit "Schleifeniterationen" anwendbar
Matrixalgebra zeigt inherente Parallelität in Matrixoperationen (häufig sequenziell durch Schleifeniteration verabeitet)
Neuronale Netze (i.A. mit regulärer Struktur) können durch Matrixalgebra abgebildet werden
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Parallelisierung erfolgt auf der Daten- und Kontrollpfadebene
Kontrollpfadparallelität bedeutet Paritionierung einer Berechnung in separate Prozesse → Multiprocessing & Multithreading → Mehrprozessorechner (MCPU)
Datenpfadparallelität bedeutet die Belegung mehrerer Verarbeitungseinheiten (Rechenwerke) → GPU, FPGA, (CPU:MMX)
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Bei der Rechenzeit / Operation gab es früher großen Unterschied top(Float) ≫ top(Integer), heute gilt in modernen CPUs aber top(Float) ≈ top(Integer)
Bei der Berechnung, z.B. Matrixalgebra, spielt aber in heutigen Rechnerarchitekturen der Datenfluss die Hauptrolle → Speicherzugriff ist langsam!
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Illustration Parallelisierungsgrad und Beispiel
Die Reduktion der Datenwortbreite bei Berechnungen bringt eine Steigerung der Verarbeitungsgeschwindigkeit wenn Datendurchsatz oder Ressourcen limitierende Faktoren sind!
Aber Reduktion der Datenwortbreite bedeutet approximatives Rechnen.
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Sze, Hardware for Machine Learning: Challenges and Opportunities
Fein granulierte parallele DV auf Datenpfadebene mit Multi-ALU Architekturen
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Moor I&S, A MACHINE LEARNING APPLICATION LANDSCAPE Metrik der Berechnungsplattformen für ML (CPU, GPU, DSP, FPGA, ASIC)
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Berechnungen finden sequenziell statt:
Wichtig: Mehrkernrechner nutzen einen geteilten Speicher (DRAM). Speicherhierarchie beachten!
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Eine GPU-Einheit besteht aus:
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
nielshagoort.com/2019/03/12/exploring-the-gpu-architecture/
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
CPU sind kontrollpfadorientier, GPU sind datenpfadorientiert
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
FPGA: Field Programmable (Logic) Gate Array
Funktionale Systeme können 1:1 unter Ausnutzung maximaler Parallelität auf Digitallogiksysteme abgebildet werden
Aber Fliesskommarithmetik erfordert großen Ressourcenbedarf (Multi-ALU Architekturen nur begrenzt möglich)
Daher Übergang auf Ganzzahlarithmetik und Intervallartihmetik (bzw. Festpunktarithmetik)!
Ein FPGA kann (1) Algorithmen und (2) funktionale Modelle implementieren
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Abbildung von Algorithmen (wie z.B. Gleichungslöser, Regler, FFT, usw.) ermöglicht beschleunigte Berechnung des Algorithmus → Lernalgrotihmen werden i.A. nicht auf FPGAs übertragen!
Abbildung von Funktionsmodellen hier das ANN und deren Berechnung (Vorwärtspropagation) auf FPGA
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Bisher sind die Implementierungen von KNN in FPGA problemspezifisch
Generische Architekturen wären problemspezifisch konfigurierbar
Dazu müssen die Elementaroperationen und Verbindungselemente eines KNN in einem FPGA frei konfigurierbar implementiert werden
Ein spezifisches KNN wird dann im FPGA durch Verbindung und Konfiguration der Elementarblöcke individuell angepasst
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Hao, A General Neural Network Hardware Architecture on FPGA Die FPGA Blöcke bilden Elementaroperationen von KNN ab
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul I: Rechnerarchitekturen für ML
Jawandhiya, HARDWARE DESIGN FOR MACHINE LEARNING Taxonomie der Hardwarearchitekturen für KNN: Fexibilität vs. Effizienz