Die CPU auf Ihrem Gerät führt jede Sekunde Millionen von Berechnungen durch und ist dafür verantwortlich, wie Ihr Computer funktioniert. Mit der CPU arbeitet die Arithmetic Processing Unit (ALU), die für mathematische Aufgaben zuständig ist und vom Mikrocode der CPU gesteuert wird.
Nun, dieser CPU-Mikrocode ist nicht statisch und kann verbessert werden, und eine solche Verbesserung war Intels AVX-512-Befehlssatz. Intel ist jedoch bereit, AVX-512 zu töten und seine Funktionalität endgültig von seinen CPUs zu entfernen. Aber wieso? Warum tötet Intel AVX-512?
Wie funktioniert eine ALU?
Bevor Sie sich mit dem AVX-512-Befehlssatz vertraut machen, ist es wichtig zu verstehen, wie eine ALU funktioniert.
Wie der Name schon sagt, wird die Arithmetic Processing Unit verwendet, um mathematische Aufgaben auszuführen. Diese Aufgaben umfassen Operationen wie Addition, Multiplikation und Gleitkommaberechnungen. Um diese Aufgaben zu erfüllen, verwendet die ALU anwendungsspezifische digitale Schaltungen, die vom Taktsignal der CPU angesteuert werden.
Daher definiert die Taktrate einer CPU die Rate, mit der Befehle in der ALU verarbeitet werden. Wenn Ihre CPU also mit einer Taktfrequenz von 5 GHz läuft, kann die ALU 5 Milliarden Befehle in einer Sekunde verarbeiten. Aus diesem Grund verbessert sich die CPU-Leistung mit zunehmender Taktfrequenz.
Mit zunehmender CPU-Taktfrequenz steigt jedoch die von der CPU erzeugte Wärmemenge. Aus diesem Grund verwenden Power-User Flüssigstickstoff beim Übertakten ihrer Systeme. Leider hindert dieser Temperaturanstieg bei hohen Frequenzen CPU-Hersteller daran, die Taktfrequenz über einen bestimmten Schwellenwert zu erhöhen.
Wie also bietet ein Prozessor der neuen Generation eine bessere Leistung im Vergleich zu älteren Iterationen? Nun, CPU-Hersteller nutzen das Konzept der Parallelität, um die Leistung zu steigern. Diese Parallelität kann durch die Verwendung einer Mehrkernarchitektur erreicht werden, bei der mehrere unterschiedliche Verarbeitungskerne verwendet werden, um die Rechenleistung der CPU zu verbessern.
Eine andere Möglichkeit, die Leistung zu verbessern, ist die Verwendung eines SIMD-Befehlssatzes. Einfach ausgedrückt ermöglicht ein Single Instruction Multiple Data-Befehl der ALU, denselben Befehl über verschiedene Datenpunkte hinweg auszuführen. Diese Art der Parallelität verbessert die Leistung einer CPU, und der AVX-512 ist ein SIMD-Befehl, der verwendet wird, um die Leistung einer CPU zu steigern, wenn bestimmte Aufgaben ausgeführt werden.
Wie kommen die Daten in die ALU?
Nachdem wir nun ein grundlegendes Verständnis dafür haben, wie eine ALU funktioniert, müssen wir verstehen, wie Daten die ALU erreichen.
Um die ALU zu erreichen, müssen Daten verschiedene Speichersysteme durchlaufen. Diese Datenreise basiert auf der Speicherhierarchie eines Computersystems. Nachfolgend ein kurzer Überblick über diese Hierarchie:
- Sekundärspeicher: Der Sekundärspeicher auf einem Computergerät besteht aus einem permanenten Speichergerät. Dieses Gerät kann Daten dauerhaft speichern, ist aber nicht so schnell wie die CPU. Aus diesem Grund kann die CPU nicht direkt auf Daten aus dem sekundären Speichersystem zugreifen.
- Hauptspeicher: Das primäre Speichersystem besteht aus einem Direktzugriffsspeicher (RAM). Dieses Speichersystem ist schneller als das sekundäre Speichersystem, kann jedoch keine Daten dauerhaft speichern. Wenn Sie also eine Datei auf Ihrem System öffnen, wird sie von der Festplatte in den Arbeitsspeicher verschoben. Allerdings ist auch der Arbeitsspeicher nicht schnell genug für die CPU.
- Cache-Speicher: Der Cache-Speicher ist in die CPU eingebettet und ist das schnellste Speichersystem auf einem Computer. Dieses Speichersystem ist in drei Teile unterteilt, nämlich die L1-, L2- und L3-Cache. Alle Daten, die von der ALU verarbeitet werden müssen, werden von der Festplatte in den RAM und dann in den Cache-Speicher verschoben. Allerdings kann die ALU nicht direkt auf Daten aus dem Cache zugreifen.
- CPU-Register: Das CPU-Register auf einem Computergerät ist sehr klein und basierend auf der Computerarchitektur können diese Register 32 oder 64 Bit Daten enthalten. Sobald die Daten in diese Register verschoben wurden, kann die ALU darauf zugreifen und die anstehende Aufgabe ausführen.
Was ist AVX-512 und wie funktioniert es?
Der AVX 512-Befehlssatz ist die zweite Iteration von AVX und fand 2013 seinen Weg zu Intel-Prozessoren. Der AVX-Befehlssatz, kurz für Advanced Vector Extensions, wurde erstmals in Intels Xeon eingeführt Phi (Knights Landing)-Architektur und schaffte es später zu Intels Server-Prozessoren im Skylake-X CPUs.
Darüber hinaus gelangte der AVX-512-Befehlssatz zu den verbraucherbasierten Systemen mit der Cannon Lake-Architektur und wurde später von den Ice Lake- und Tiger Lake-Architekturen unterstützt.
Das Hauptziel dieses Befehlssatzes bestand darin, Aufgaben zu beschleunigen, die Datenkomprimierung, Bildverarbeitung und kryptografische Berechnungen umfassen. Der AVX-512-Befehlssatz bietet im Vergleich zu älteren Iterationen die doppelte Rechenleistung und bietet erhebliche Leistungssteigerungen.
Wie also hat Intel die Leistung seiner CPUs mit der AVX-512-Architektur verdoppelt?
Nun, wie zuvor erklärt, kann die ALU nur auf die Daten zugreifen, die in einem CPU-Register vorhanden sind. Der Befehlssatz Advanced Vector Extensions erhöht die Größe dieser Register.
Aufgrund dieser Größenzunahme kann die ALU mehrere Datenpunkte in einem einzigen Befehl verarbeiten, wodurch die Leistung des Systems gesteigert wird.
In Bezug auf die Registergröße bietet der AVX-512-Befehlssatz zweiunddreißig 512-Bit-Register, was im Vergleich zum älteren AVX-Befehlssatz doppelt so groß ist.
Warum beendet Intel AVX-512?
Wie bereits erläutert, bietet der AVX-512-Befehlssatz mehrere Rechenvorteile. Tatsächlich verwenden populäre Bibliotheken wie TensorFlow den Befehlssatz, um schnellere Berechnungen auf den CPUs bereitzustellen, die den Befehlssatz unterstützen.
Warum also deaktiviert Intel AVX-512 auf seinen neuesten Alder-Lake-Prozessoren?
Nun, die Alder-Lake-Prozessoren sind anders als die älteren, die von Intel hergestellt werden. Während die älteren Systeme Kerne verwendeten, die auf derselben Architektur liefen, verwenden die Alder-Lake-Prozessoren zwei unterschiedliche Kerne. Diese Kerne in den Alder-Lake-CPUs sind bekannt als P- und E-Kerne und werden von verschiedenen Architekturen unterstützt.
Während die P-Kerne die Golden Cove-Mikroarchitektur verwenden, verwenden die E-Kerne die Gracemont-Mikroarchitektur. Dieser Unterschied in den Architekturen verhindert, dass der Scheduler korrekt arbeitet, wenn bestimmte Anweisungen auf einer Architektur ausgeführt werden können, aber nicht auf der anderen.
Im Fall der Alder-Lake-Prozessoren ist der AVX-512-Befehlssatz ein solches Beispiel, da die P-Kerne über die Hardware verfügen, um den Befehl zu verarbeiten, die E-Kerne jedoch nicht.
Aus diesem Grund unterstützen die Alder Lake-CPUs den AVX-512-Befehlssatz nicht.
Der AVX-512-Befehl kann jedoch auf bestimmten Alder Lake-CPUs ausgeführt werden, bei denen Intel sie nicht physisch abgesichert hat. Um dasselbe zu tun, müssen Benutzer die E-Kerne während des BIOS deaktivieren.
Wird AVX-512 für Consumer-Chipsätze benötigt?
Der AVX-512-Befehlssatz erhöht die Größe eines CPU-Registers, um seine Leistung zu verbessern. Diese Leistungssteigerung ermöglicht es CPUs, Zahlen schneller zu verarbeiten, sodass Benutzer Video-/Audio-Komprimierungsalgorithmen mit höheren Geschwindigkeiten ausführen können.
Diese Leistungssteigerung kann jedoch nur beobachtet werden, wenn die in einem Programm definierte Anweisung für die Ausführung auf dem AVX-512-Befehlssatz optimiert ist.
Aus diesem Grund sind Befehlssatzarchitekturen wie der AVX-512 besser für Server-Workloads geeignet, und Consumer-Chipsätze können ohne komplexe Befehlssätze wie den AVX-512 arbeiten.