Diese Webseite nutzt nur technisch notwendige Cookies.

Hardware Acceleration einfach erklärt (Hardware Beschleunigung)

Hardware Acceleration - Steffen Lippke Coding Tutorials

Was ist Hardware Acceleration?

Und warum verwende ich diese viele Male am Tag unbewusst?

Hier ist die Antwort:

Starten wir!

Was ist Hardware Acceleration?

Hardware Acceleration (Hardwarebeschleunigung) ist Computer Hardware, welche für einen Zweck optimiert wurde. Der normale Computer basiert auf der Von-Neumann-Architektur, welcher universell vieles berechnen kann. Die Von-Neumann-Architektur ist eine Generalist, er kann viele Berechnungen sehr gut und ist gut universal einsetzbar. Trotzdem ist dieser nicht immer die erste Wahl. Die Realität zeigt, dass Computer immer die gleichen Operationen ausführen müssen. Dazu gehören z. B.:

Hardwarebeschleuniger bei Videos
Hardwarebeschleuniger bei Videos

Der Generalist CPU kann diese Aufgaben alle erledigen, aber ein echter Freak ist die bessere Wahl. Der Freak, ein Spezialist, kann eine Aufgabe sehr, sehr gut und kann die anderen Aufgaben nur sehr ineffizient oder gar nicht.

Der Computer besteht deshalb aus einer Mischung von Spezialisten und Generalisten. Die Spezialisten berechnen die Grafiken, während der Generalist eine Excel-Kalkulation durchführt.

Wo finde ich diese?

Virtuelle Welten schaffen – Shader

Der Computer generiert 3D-Welten aus vielen kleinen Quadraten und Dreiecken.

Diese berechnet die Grafikkarte bei jeder Bewegung neu, wenn der Nutzer sich durch diese 3D-Welt bewegt. Hier fallen immer gleiche mathematische Operationen an.

Die GPU berechnet die Texturen, das Licht und Schatten in der Simulation bei jeder Bewegung und das mit 60, 120 oder 240 Bildern pro Sekunde. Diese Form der Verarbeitung schreit nach einem Spezialisten. Eine Nvidia 4090 GPU besteht aus 16384 Shader-Kernen, die parallel die Pixel in gleichen Operationen auf den Bildschirm berechnen können.

Der gelungene Filmabend – Medienkodierung

Die Übertragung von Bildern, Videos und Musik ist ein wesentlicher Bestandteil unser Video-Call und Streaming-Kultur 😉

Da die meisten von uns den ganzen Tag nichts anderes tun, als in Meetings zu sitzen, sollte es einen Chip geben, der sehr gut Videos packen und über die Internet-Leitung senden kann.

Encodierung sind die Grundlage
Encodierung sind die Grundlage

Im Gegensatz zu Text ist die Datenmenge bei einem Video deutlich größer. Die Hardwarebeschleuniger arbeiten mit Kompressionstechniken und speziellen Kodierungen, um effizient mit wenig Bandbreite, ruckelfrei und in Echtzeit das Video zu übertragen.

Die Live-Zeitübertragung soll auch noch funktionieren, während der Mitarbeiter am PC Aufgaben erledigt, welche die CPU durchführen soll.

Alles zugleich und schnell – Netzwerkkarte

Heutzutage baut kaum eine Privatperson eine Netzwerkkarte ein, weil diese mit dem Mainboard fest integriert ist.

Netzwerk ist der Zugang zum Internet
Netzwerk ist der Zugang zum Internet

Der spezielle Chip kann die physischen Signale, die elektrischen Impulse wieder in 0 und 1 umwandeln. Der Chip baut aus den 0en und 1en die Internetpakete, welche dann als Daten in der Anwendung landen. Statt die CPU ständig auf ein Netzwerk-Signal warten zu lassen, erledigt der Spezialist diese Aufgabe im Hintergrund.

Kurze Wege, kompakte Form und schnell

Die CPU ist der Generalist unter den Halbleitern.

Das bedeutet aber nicht, dass sich kein anderer Chip zu der CPU gesellen darf. Weil der Markt immer schnellere Chips nachfragt, packen die Hersteller GPU, Hauptspeicher und CPU auf einen Chip (Ultra CPUs Intel oder M-Prozessoren bei Apple).

Das Gleiche gilt auch für die Berechnungen des Advanced Encryption Standard (AES). Diese Operation ist in vielen Protokollen ein Standard-Algorithmus. Der Hardwarebeschleuniger bekommt deshalb seinen eigenen Bereich innerhalb der CPU.

Bitte nichts ändern – Hashing

Um zu beweisen, dass eine Datei nicht verändert wurde nutzt der Computer Hashes.

Ein Hash-Algorithmus komprimiert eine Datei auf einen kurzen lesbaren, gleichlangen String. Der große Vorteil ist, dass auf diese Algorithmen standardisiert sind.

Einige CPUs haben auch Hashing-Einheiten, welchen den ganzen Tag nichts anderes machen, als die Validität der Datei zu prüfen. Lese mehr über Hashing und Hardware Security Module (HSM) hier.

Wofür brauche ich Hashs?

  1. Passwörter werden in Hash-Form gespeichert. Im Gegensatz zur Kompression, kann ein Hash nicht umgekehrt werden. Der Computer berechnet beim Eintippen des Passworts immer den Hash und vergleicht diesen.
  2. Wenn Du etwas aus dem Internet herunterlädst, möchtest Du sicher gehen, dass kein Krimineller die Datei durch eine Malware getauscht hat. Hashes erkennen jede Änderung.

Realistischer darstellen – Raytracing

Raytracing ist ein Verfahren zur realistischen Darstellung von Licht und Schatten in Games oder Computersimulationen. Anstatt nur die Farbe der Objekte zu berechnen, simuliert das Raytracing den Weg des Lichts von der Lichtquelle bis zum Auge des Betrachters.

Für jedes Pixel auf dem Bildschirm wird ein virtueller Lichtstrahl vom Auge des Betrachters in die Szene gesendet. Der Lichtstrahl kann auf die Objekten (z.B. ein Haus) in der Szene stoßen und der Computer berechnet den Schnittpunkt.

Anhand der Materialeigenschaften des Steins am Haus wird berechnet, wie viel Licht absorbiert, reflektiert oder gestreut wird. Wenn die hoch polierten Marmorstufen den Lichtstrahl reflektieren oder streuen, werden neue Lichtstrahlen in die entsprechenden Richtungen gesendet. Die Farben aller Pixel werden zusammengesetzt, um das fertige Bild zu erzeugen. Eine 4090 Nvidia GPU stellt für diese Operation 128 Spezialisten (Kerne) zur Verfügung.

Raytracing ermöglicht eine realistischere Beleuchtung und Darstellung und Schatten als die herkömmlichen Methoden. Raytracing kann transparente Objekte wie Glas und Wasser korrekt darstellen, welche ein Shader nicht so einfach darstellen kann. Raytracing kann Spiegelungen in Pfützen, auf der See oder in Fenstern in der Szene berechnen.

Schaue Dir dieses Video an, wenn Du Raytracing besser verstehen möchtest.

Hardwarebeschleuniger erklärt – FPGA

Ein FPGA, oder „Field Programmable Gate Array“, ist ein Chip, den man sich wie einen Baukasten vorstellen kann, die mit vielen kleinen Bausteinen gefüllt ist. Diese Bausteine können wie Klemmbausteine beliebig miteinander verbunden werden, um verschiedene digitale Schaltungen zu erstellen.

Ablauf der Implementierung

  1. Programmierung: Zuerst wird die gewünschte Schaltung in einer speziellen Sprache, wie VHDL (VHSIC Hardware Description Language) oder Verilog, beschrieben. Diese Beschreibung ist wie ein Bauplan, der festlegt, welche Bausteine wie miteinander verbunden werden sollen.
  2. Übersetzung: Der Bauplan wird dann in ein Bitstream-Format übersetzt. Dieses Bitstream ist wie ein Code, der an den FPGA geschickt wird.
  3. Konfiguration: Der FPGA liest den Code und konfiguriert sich selbst. Er verbindet die Bausteine so, wie es im Bitstream vorgegeben ist.
  4. Ausführung: Die fertige Schaltung kann nun ihre Aufgabe ausführen. Sie kann zum Beispiel Dateien verschlüsseln oder Grafiken berechnen

Vorteile der Special Chips

FPGAs können für jede beliebige digitale Schaltung verwendet werden. Die Chips können sehr schnell arbeiten, da sie direkt auf der Hardware ausgeführt werden und sind in der Regel günstiger als anwendungsspezifische integrierte Schaltungen (ASICs).

Nachteile der Special Chips

Die Programmierung von FPGAs ist komplexer als die Programmierung von Mikrocontrollern und die Entwicklung von FPGA-Anwendungen kann länger dauern als die Entwicklung von Software-Anwendungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

get rss abo

Jetzt
Abbonnieren
academy

Erhalte Free
Security Kurs

Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!