Core Concepts
Die Autoren entwickeln einen Leistungssimulator, um verschiedene algorithmische Varianten der Matrixmultiplikation (GEMM) für IoT-Prozessoren zu evaluieren, bevor diese tatsächlich implementiert und getestet werden.
Abstract
Die Autoren analysieren die Leistung der Matrixmultiplikation (GEMM) für Deep Learning auf Edge-Geräten. Sie verwenden dafür einen Simulator, der auf den Ideen von GotoBLAS2 und dem BLIS-Framework basiert. Der Simulator ahmt das Verhalten verschiedener GEMM-Algorithmen nach, um die Datentransfers über die Speicherhierarchie zu erfassen.
Für die Validierung des Simulators führen die Autoren Experimente auf der GAP8-Plattform durch. Sie kalibrieren den Simulator mit Transferraten und Rechenleistung des GAP8-Prozessors. Der Simulator liefert sehr genaue Schätzungen der Ausführungszeit für verschiedene GEMM-Algorithmen auf dem GAP8.
Die Autoren evaluieren dann drei GEMM-Algorithmusvarianten (B3A2C0, C3B2A0, B3C2A0) für die Konvolutionsschichten des MobileNetV1-Modells. Sie zeigen, dass die Leistung stark von der Algorithmusvariante und den Abmessungen des Mikrokerns abhängt. Insgesamt schneidet der B3A2C0-Algorithmus am besten ab, da er die Anzahl der Speicherschreibzugriffe reduziert. Die Autoren diskutieren auch Erweiterungen des Simulators, um weitere architekturspezifische Aspekte zu berücksichtigen.
Stats
Die Übertragungsraten zwischen den Speicherebenen des GAP8-Prozessors betragen:
Packen/Entpacken: 1,62 MB/s (B zu Bc), 0,53 MB/s (A zu Ac, B zu Bc, C zu Cc)
Kopieren: 8,81 MB/s (Bc zu Br, Cc zu Cr)
Streaming aus dem Speicher: 0,49 MB/s (C zu Register), 178 MB/s (Br zu Register, Cr zu Register)
Streaming aus dem Cache: 7,18 MB/s (Ac zu Register, Bc zu Register, Cc zu Register)
Quotes
Keine relevanten Zitate identifiziert.