KI-Hardware und Software-Stack
Bei nur einer Eingabe (Batchgröße 1) ist die Berechnung einer vollständig verbundenen Schicht (Produkt aus Gewichtsmatrix und Vektor) leicht speicherbegrenzt. Welche Begründung ist richtig?
- AWeil der Vektor zu viele Elemente hat und nicht in die Recheneinheit passt
- BWeil sich ein Matrix-Vektor-Produkt auf der GPU nicht berechnen lässt
- CWeil jedes aus dem Speicher gelesene Gewichtselement nur für eine einzige Multiply-Accumulate-Operation dient und die arithmetische Intensität daher sehr niedrig ist
Antwort und Erläuterung anzeigen
Antwort: C. Weil jedes aus dem Speicher gelesene Gewichtselement nur für eine einzige Multiply-Accumulate-Operation dient und die arithmetische Intensität daher sehr niedrig ist
Beim Matrix-Vektor-Produkt wird jedes Element der Gewichtsmatrix einmal gelesen, mit einem Element der Eingabe multipliziert und aufaddiert. In FP16 sind das 2 Operationen pro 2 Byte, die arithmetische Intensität beträgt also etwa 1. Das Lesen der Gewichte dauert lange, und die Recheneinheiten warten größtenteils. Werden Eingaben gebündelt (größerer Batch), sodass dieselben Gewichte für mehrere Eingaben dienen, steigt die arithmetische Intensität.