PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : How do graphics cards work? Exploring GPU architecture


ChaosTM
2024-10-19, 21:35:56
h9Z4oGN89MU


zufällig drüber gestolpert und hängen geblieben.
Eine der am besten visualisierten Erklärungen, die mir auf/in der Tube bisher untergekommen sind.

Die GPU Gurus hier im Forum werden wohl nur milde lächeln, aber für viele ist das eine gute Zusammenfassung.


Und ja, es ist von Micron gesponsert.

Kriegsgeier
2024-10-20, 08:46:31
Das Video ist sehr gut gemacht und SEHR zu empfehlen.

Die Frage, die ich noch hätte: diese Matrixoperation A x B + C, warum genau ist genau diese Operation so häufig in der Berechnung einer Grafikkarte zu finden?

Ist das die so genannte Transformation der lokalen Objektkoordinaten in die Weltkoordinaten?

Mortalvision
2024-10-20, 09:30:13
Demonstration der Kühlung :freak: feurige Angelegenheit ;D

=Floi=
2024-10-20, 14:49:16
Den aufbau der tensor kerne habe ich bis heute noch nicht verstanden, wie das auf dem chip aussieht und die berechnung so gut beschleunigt.

rentex
2024-10-20, 15:20:56
https://youtu.be/h9Z4oGN89MU


zufällig drüber gestolpert und hängen geblieben.
Eine der am besten visualisierten Erklärungen, die mir auf/in der Tube bisher untergekommen sind.

Die GPU Gurus hier im Forum werden wohl nur milde lächeln, aber für viele ist das eine gute Zusammenfassung.


Und ja, es ist von Micron gesponsert.

Danke, ein tolles Video (y)

powerofsun
2024-10-23, 10:04:10
Moin,
eine der häufigsten Operation beim Trainieren von KI mittels Daten ist die sogenannte GEMM (General Matrix Multiplication) Operation ODER die WMMA (Warp Matrix Multiplication) operation
https://leimao.github.io/images/blog/2023-05-18-NVIDIA-Tensor-Core-Programming/turing-tensor-core-math.png

aus:
https://leimao.github.io/blog/NVIDIA-Tensor-Core-Programming/

Das Geraffel brauchen wir auch für die object detection and perception for autonomous driving, wenn man denn unbedingt Lederjacke drin haben will:
https://developer.nvidia.com/blog/perception-model-training-for-autonomous-vehicles-with-tensor-parallelism/

Iscaran
2024-10-23, 11:38:45
Oh klasse Video. Danke für den Link.

Der Teil über die Busbreite war mal was neues...auch wenn ich da gern noch ein bisschen mehr über das ternary encoding gehört hätte :-)

mboeller
2024-10-24, 06:55:40
cooles Video!

was mich ein wenig wundert ist folgendes:

CUDA-Cores: a x b + c = result
Tensor-Cores: a x b + c = result (für Matrizen)

Warum benutzt man dann nicht (auch) Tensor-Cores für 3D-Grafik bzw. ersetzt die normalen SIMD mit Tensor-Cores um beides zu können, AI und 3D-Grafik.

Oder ist der Aufwand für die Tensor-Cores um so vieles größer, dass sich das nicht lohnt?

mczak
2024-10-25, 15:44:50
CUDA-Cores: a x b + c = result
Tensor-Cores: a x b + c = result (für Matrizen)

Warum benutzt man dann nicht (auch) Tensor-Cores für 3D-Grafik bzw. ersetzt die normalen SIMD mit Tensor-Cores um beides zu können, AI und 3D-Grafik.
Ohne das Video gesehen zu haben versuche ich das mal...

Für eine Matrizenmultiplikation benötigt man (bei quadratischen Matrizen, Kolonnen- und Zeilenzahl = n) n³ Multiplikationen (und (n-1)*n² Additionen). Bei einer 4x4 Matrix also 64 Multiplikationen (die sind alle unabhängig voneinander). Die Eingabematrizen haben aber bloss n² Eingabewerte (hier also 16). So ein Tensor-Kern ist ja genau darauf optimiert eine Matrizenmultiplikation durchzuführen, und muss darum die Eingabematrizen auch nur einmal laden, braucht auch keine Zwischenresultate zu speichern weil die intern an die verschachtelten Addierer weitergereicht werden. Würde man die normalen CUDA-Kerne dafür verwenden gäbe es diese Optimierungen eben nicht.
Wenn man aber einen Tensor-Kern nutzt um "normale" Multiplikationen durchzuführen liegt ein Grossteil der Multiplizierer/Addierer brach weil die ja eben keine unabhängigen Inputs haben. Die Idee ist im Uebrigen nicht so abwegig, zumindest bei Nvidia Turing erledigen die Tensor-Kerne tatsächlich sämtliche Berechnungen mit FP16 Genauigkeit (die CUDA-Kerne können bloss FP32). Peak-TFlops bei FP16 bei Turing ist ein Viertel der Matrix-TFlops bei FP16 - 3/4 der Multiplizerer/Addierer sind dann also ungenutzt. (Nebenbei bemerkt haben die Low-End Turing Karten ohne Tensor-Kerne dann eine eigene FP16-Einheit die es so bei den grösseren Turing-Karten nicht gibt - quasi abgespeckter Tensor-Kern ohne die zusätzlichen Multiplizerer/Addierer und dem Forwarding-Netzwerk.)
Kommt dazu dass die normalen ALUs für FP32 Genauigkeit designt sind, Tensor-Kerne sich aber im Normalfall auf FP16 (und kleiner) beschränken auch weil der Hardwareaufwand für die Multiplizierer sonst zu gross wird (gerade bei AI braucht man eh keine hohe Genauigkeit).

Im Prinzip geht AMDs Ansatz mit den Matrix-Befehlen bei RDNA3 in die Richtung dass die normalen Einheiten auch für Matrizenmultiplikation designt sind - man kann alle Multiplizerer/Addierer nutzen die man hat (die Hälfte davon ist ja sonst bloss mit dual-issue nutzbar), und die wmma-Befehle haben auch entsprechendes Forwarding integriert.

mboeller
2024-10-27, 15:27:54
Ohne das Video gesehen zu haben versuche ich das mal...


Danke, also doch "schlimmer" als erwartet/erhofft.

Kriegsgeier
2024-10-28, 07:54:10
mczak, danke für deine Ausführung: war sehr interessant!
Hoffentlich lesen wir hier von dir mehr zu dem Thema. Du kannst sehr gut erklären.
Bist du in dem Bereich tätig? Programmierer und Mathematiker?

PHuV
2024-10-28, 08:32:51
Kommt dazu dass die normalen ALUs für FP32 Genauigkeit designt sind, Tensor-Kerne sich aber im Normalfall auf FP16 (und kleiner) beschränken auch weil der Hardwareaufwand für die Multiplizierer sonst zu gross wird (gerade bei AI braucht man eh keine hohe Genauigkeit).

Es gibt bei den neuen GPU wie Blackwell FP4 als Datentyp.
https://www.nvidia.com/de-de/data-center/tensor-cores/
https://www.hardwareluxx.de/index.php/news/hardware/grafikkarten/64317-nvidia-blackwell-neue-datenformate-sorgen-f%C3%BCr-mehr-leistung-in-den-tensor-kernen.html
https://www.hardwareluxx.de/index.php/news/hardware/grafikkarten/64317-nvidia-blackwell-neue-datenformate-sorgen-f%C3%BCr-mehr-leistung-in-den-tensor-kernen.html
Das MMLU-Ergebnis (Massive Multitask Language Understanding) ist unter Verwendung von BF16 zu FP4 fast identisch. Die Qualität des KI-Modells im Inferencing bleibt erhalten.

mczak
2024-10-28, 14:15:25
Bist du in dem Bereich tätig? Programmierer und Mathematiker?
Programmierer ja, Mathematker nein :tongue: (wobei Dinge wie lineare Algebra durchaus Teil der Ausbildung war, lange ist's her...) Aber das Wissen über moderne HW stammt eher aus In-Depth Artikeln wie z.B. von anandtech (ja ich vermisse die...).

Kennung Eins
2024-12-06, 18:02:05
Wow danke für den Link. Sehr gut. Werde mir auch die anderen Videos des Kanals ansehen.

Ailuros
2024-12-27, 14:42:08
Das video ist tatsaechlich ein sehr guter Versuch. Als Laie bin ich aber nach wie vor allergisch gegen den oeden Marketing-Stuss jegliche ultra-winzige Rechen-einheit als "core" zu bezeichnen und dass dann gegen einen einzigen CPU-core zu vergleichen. Ich kann dank jeglicher Vereinfachung mit einer Beschreibung leben dass ein G102 core hunderte von cores hat, aber >10k ist fuer mich Schwachsinn denn man kann eben NICHT eine einzelne FMA unit selbst in den kleinsten ULP SoC integrieren um einen GPU cluster zu behaupten.

cooles Video!

was mich ein wenig wundert ist folgendes:

CUDA-Cores: a x b + c = result
Tensor-Cores: a x b + c = result (für Matrizen)

Warum benutzt man dann nicht (auch) Tensor-Cores für 3D-Grafik bzw. ersetzt die normalen SIMD mit Tensor-Cores um beides zu können, AI und 3D-Grafik.

Oder ist der Aufwand für die Tensor-Cores um so vieles größer, dass sich das nicht lohnt?

GPU hw engineers haben bei jeglicher neuen GPU Generation die sie entwickeln, den Kopfschmerz auf N Ziel zu kommen mit der best-moeglichen Kombination in hw. Momentan scheint dedizierte hw fuer N Funktionen immer noch im generellen Vorteil zu liegen, egal ob es auf ersten Blick so aussieht dass z.B. Tensor-cores ein relativ kleines Prozentual von zusaetzlicher die area bedeuten. Tensor-cores verbrauchen wohl um einiges weniger Strom fuer N Matrizen bzw. alles =/<FP16 im Vergleich dass man stattdessen die FP32 ALUs dafuer quaelt.

konkretor
2024-12-31, 13:06:54
Hab ich noch einen ganz netten X fund.

Behandelt Nvidia Karten, schicker Retro Style

https://modal.com/gpu-glossary

=Floi=
2025-01-01, 12:36:24
Ist der CPU mit SM vergleich nicht ein wenig zu schöngerechnet.
Würde es so viel bringen, würde man längst die SM der internen GPUs verwenden oder hätte wie der CELL eigene SM blöcke.
Hier tut sich garnichts.

][immy
2025-01-01, 18:29:52
Ist der CPU mit SM vergleich nicht ein wenig zu schöngerechnet.
Würde es so viel bringen, würde man längst die SM der internen GPUs verwenden oder hätte wie der CELL eigene SM blöcke.
Hier tut sich garnichts.

Der Vergleich passt schon. GPUs sind halt nur schnell bei passenden Massendaten ohne Verzweigungen. Hast du das nicht, wird es echt langsam. Von Datenformaten und Zahlenlängen ganz zu schweigen.