Rechnerarchitekturen für Deep-Learning Anwendungen - Cheatsheet.pdf

Rechnerarchitekturen für Deep-Learning Anwendungen - Cheatsheet
Rechnerarchitekturen für Deep-Learning Anwendungen - Cheatsheet Von-Neumann-Architektur Definition: Speicherprogrammierte Architektur mit gemeinsamer Nutzung von Speicher für Programm und Daten. Details: Besteht aus fünf Hauptkomponenten: Steuerwerk, Rechenwerk, Speicher, Ein-/Ausgabe-Einheiten und Bus. Zentraler Baustein ist der Speicher, der sowohl Programme als auch Daten enthält. Steuerwerk li...

© StudySmarter 2024, all rights reserved.

Rechnerarchitekturen für Deep-Learning Anwendungen - Cheatsheet

Von-Neumann-Architektur

Definition:

Speicherprogrammierte Architektur mit gemeinsamer Nutzung von Speicher für Programm und Daten.

Details:

  • Besteht aus fünf Hauptkomponenten: Steuerwerk, Rechenwerk, Speicher, Ein-/Ausgabe-Einheiten und Bus.
  • Zentraler Baustein ist der Speicher, der sowohl Programme als auch Daten enthält.
  • Steuerwerk liest Befehle aus dem Speicher und interpretiert sie.
  • Rechenwerk führt arithmetische und logische Operationen aus.
  • Daten- und Befehlszugriff über den gemeinsamen Speicher kann Performance-Engpässe verursachen (Von-Neumann-Flaschenhals).
  • Verwendung in konventionellen Computern weit verbreitet.
  • Für Deep-Learning-Anwendungen oft weniger effizient im Vergleich zu Spezialisierungen wie der Harvard-Architektur oder GPUs.

Grafikkarten (GPUs) und Tensor Processing Units (TPUs)

Definition:

Grafikkarten (GPUs) und Tensor Processing Units (TPUs) sind spezialisierte Hardware-Komponenten, die für die Ausführung von Machine-Learning- und insbesondere Deep-Learning-Anwendungen optimiert sind.

Details:

  • GPUs: Parallelisierung durch Tausende von Kernen, ideal für Matrixoperationen und Vektoroperationen.
  • TPUs: Speziell von Google entwickelte ASICs, optimiert für Tensor Operationen in neuronalen Netzen.
  • Leistungsfähigkeit: GPUs bieten hohe Rechenleistung und Flexibilität, während TPUs spezifisch auf hohe Leistung in ML/AI Workloads optimiert sind.
  • Speicherbandbreite: GPUs haben oft große Speicherbandbreite, TPUs verfügen über lokale SRAM-Speicher für schnellen Datenzugriff.
  • Programmierung: GPUs können mit Frameworks wie CUDA (NVIDIA) oder OpenCL programmiert werden. TPUs werden über TensorFlow API angesprochen.
  • Latenz und Energieeffizienz: TPUs sind oft energieeffizienter und bieten niedrigere Latenzzeiten im Vergleich zu GPUs.
  • Anwendung: Beide werden in der Forschung, industriellen Anwendungen und Cloud-Services eingesetzt.

Quantisierung und Pruning

Definition:

Quantisierung reduziert die Präzision der Gewichte und Aktivierungen; Pruning entfernt unwichtige Parameter, um das Modell zu komprimieren und zu beschleunigen.

Details:

  • Quantisierungstypen: Post-Training Quantisierung, Quantization-aware Training
  • Präzisionsreduktion: z.B. von 32-bit zu 8-bit
  • Pruning-Methoden: Magnitude-based Pruning, Sensitivity-based Pruning
  • Ziele: Speicherplatz sparen, Rechenzeit verkürzen
  • Formel für Quantisierung:
  • Formel für Pruning:

Verteilte Trainingsmethoden für Neuronale Netzwerke

Definition:

Methoden zum Training neuronaler Netzwerke über mehrere Rechner oder Knoten hinweg, um die Rechenlast zu verteilen und die Trainingszeit zu verkürzen.

Details:

  • Datenparallelismus: Verteilung der Daten auf verschiedene Knoten, wobei jedes Modell eine Kopie der Parameter hat.
  • Modellparallelismus: Aufteilung des Modells selbst auf verschiedene Knoten.
  • Hybride Methoden: Kombination von Daten- und Modellparallelismus.
  • Verteilte SGD (Stochastic Gradient Descent): Aggregation der Gradienten von verschiedenen Knoten.
  • Parameter-Server-Architektur: Zentrale Verwaltung der Modellparameter, Aktualisierung durch Worker-Knoten.
  • Kommunikationsstrategien: All-Reduce, parameter server, ring-allreduce.

Low-Power Design-Techniken

Definition:

Techniken zur Reduzierung des Energieverbrauchs in Schaltungen und Systemen, besonders wichtig für mobile und eingebettete Systeme.

Details:

  • Clock Gating: Deaktivierung des Taktsignals in ungenutzten Komponenten
  • Power Gating: Abschaltung der Stromversorgung für inaktive Module
  • Dynamic Voltage and Frequency Scaling (DVFS): Anpassung von Spannung und Frequenz basierend auf der Auslastung
  • Multi-Vth-Technik: Verwendung von Transistoren mit unterschiedlichen Schwellspannungen zur Verbesserung der Energieeffizienz
  • Energy-efficient Algorithm Design: Optimierung von Algorithmen um Energieverbrauch zu verringern

Befehlssatz-Architekturen (ISA)

Definition:

Eine Befehlssatz-Architektur (ISA) ist die Schnittstelle zwischen der Software und der Hardware eines Computers und definiert die verfügbaren Maschinenbefehle.

Details:

  • Wichtige ISAs: x86, ARM, MIPS
  • Relevante Aspekte: Befehlstypen, Register, Adressierungsmodi
  • Einfluss auf Leistung und Energieeffizienz
  • Zwei Hauptkategorien: RISC (Reduced Instruction Set Computer) und CISC (Complex Instruction Set Computer)
  • ISA legt das fundamentale Programmiermodell fest
  • Für Deep Learning-Anwendungen: spezielle ISAs, z.B. NVIDIA CUDA

CUDA-Programmierung

Definition:

CUDA-Programmierung: Programmierung von GPU-basierten Berechnungen unter Verwendung der CUDA-API, entwickelt von NVIDIA.

Details:

  • Nutzung von GPUs zur Beschleunigung paralleler Berechnungen
  • C/C++-Erweiterung
  • Erfordert Kenntnis von Thread-Hierarchie (Grids, Blocks, Threads)
  • Key Konzepte: Kernel-Funktionen, Speicherhierarchie (globaler, geteilter und lokaler Speicher)
  • Wesentliche APIs: CUDA Runtime, CUDA Driver API
  • Performance-Optimierung durch Minimierung von Speicherzugriffen, Maximierung von Parallelismus
  • Integration mit Deep-Learning-Frameworks (z.B. TensorFlow, PyTorch)

Pipeline und Superskalare Prozessoren

Definition:

Pipeline: Hardware- oder Software-Technik zur parallelen Verarbeitung von Anweisungen. Superskalare Prozessoren: Prozessoren, die mehrere Instruktionen pro Taktzyklus ausführen können.

Details:

  • Pipeline: Unterteilt die Ausführung einer Instruktion in Teilschritte, jeder Schritt in separater Hardware-Phase.
  • Pipeline-Stufen: Fetch, Decode, Execute, Memory Access, Write Back.
  • Hazards: Stalls (Daten- oder Steuerkonflikte), Lösungen beinhalten Forwarding und Stall-Bits.
  • Superskalar: Mehrere Pipelines zur Parallelverarbeitung.
  • VLIW (Very Long Instruction Word): Mehrere Operationen in einem einzelnen Instruktionswort.
  • Probleme bei superskalaren Prozessoren: Abhängigkeiten, Parallelisierungsgrenzen (ILP - Instruction Level Parallelism).
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden