Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Maschinelles Lernen# Künstliche Intelligenz

Verbesserung der Quantisierungsleistung in TVM

Dieser Artikel beschäftigt sich mit Möglichkeiten, die Quantisierung in Deep-Learning-Modellen mithilfe von TVM zu verbessern.

― 6 min Lesedauer


Steigerung derSteigerung derTVMQuantisierungsleistungsteigern.um die Effizienz von Modellen zuQuantisierungstechniken überarbeiten,
Inhaltsverzeichnis

Quantisierung ist eine Methode, die im Deep Learning verwendet wird, um Modelle kleiner und schneller zu machen. Dabei wird die Art geändert, wie Zahlen in einem Modell gespeichert werden. Normalerweise nutzen Modelle 32-Bit-Gleitkommazahlen, aber mit Quantisierung wechseln wir zu 8-Bit-Ganzzahlen. Diese Änderung hilft, den benötigten Speicher zu reduzieren und die Berechnungen zu beschleunigen, ohne die Genauigkeit zu sehr zu beeinträchtigen.

Was ist TVM?

TVM, oder Tensor Virtual Machine, ist ein Open-Source-Tool, das hilft, Deep-Learning-Modelle auf verschiedenen Hardwaretypen auszuführen. Es wurde entwickelt, um Machine-Learning-Entwicklern zu helfen, ihre Modelle effizient auf verschiedenen Geräten laufen zu lassen. TVM hat zwei Hauptteile, die die Leistung der Modelle optimieren. Der erste Teil konzentriert sich darauf, wie die Daten durch das Modell fliessen, während der zweite Teil verbessert, wie das Modell den Speicher nutzt.

Die Herausforderung mit Quantisierung in TVM

Obwohl viele Studien die Vorteile der Quantisierung bei der Reduzierung der Zeit und des Speichers für die Ausführung eines Modells diskutiert haben, haben wir festgestellt, dass die quantisierten Versionen von Modellen in TVM oft nicht so gut abschneiden, wie erhofft. Wenn Leute 8-Bit-Quantisierung verwenden, erwarten sie normalerweise, dass das Modell etwa doppelt so schnell läuft wie bei der Verwendung von 32-Bit-Zahlen. In TVM lief diese quantisierte Version jedoch manchmal langsamer, fast doppelt so lange im Vergleich zur Vollpräzisionsversion.

In unserer Forschung haben wir genau untersucht, warum das passiert und Wege gefunden, die 8-Bit-Quantisierung in TVM besser zum Laufen zu bringen. Wir haben uns auf zwei verschiedene Arten von Aufgaben konzentriert: solche, bei denen Berechnungen die Hauptbeschränkung darstellen (berechnungsgebunden), und solche, bei denen der Speicherverbrauch die Hauptbeschränkung ist (speichergebunden).

Arten von Aufgaben

Berechnungsgebundene Aufgaben

Berechnungsgebundene Aufgaben sind solche, bei denen die Haupt-Herausforderung aus der Menge an Rechenleistung besteht, die benötigt wird. Diese Art von Aufgabe beinhaltet normalerweise schwere Berechnungen, wie das Multiplizieren von Matrizen oder das Ausführen von Faltungen. Im Machine Learning passen viele Aufgaben in diese Kategorie, weil sie erhebliche Rechenleistung erfordern, um Vorhersagen zu treffen oder Modelle zu trainieren. Wenn wir beispielsweise ein Modell mit einer Batch-Grösse von eins ausführen, sehen wir, dass Quantisierung helfen kann. Das liegt daran, dass es einfachere arithmetische Operationen mit einem geringeren Ressourcenbedarf im Vergleich zu den Standard-32-Bit-Verfahren verwendet.

Einige Hardware ist besser darin, Berechnungen mit niedrigerer Präzision durchzuführen als mit höherer. Das bedeutet, dass Berechnungen mit 8-Bit-Zahlen oft schneller durchgeführt werden können als mit 32-Bit-Zahlen.

Speichergebundene Aufgaben

Speichergebundene Aufgaben sind anders, weil sie dadurch limitiert sind, wie schnell Daten schnell zwischen Speicher und Prozessor bewegt werden können. Grosse Eingaben können zu Verzögerungen führen, da das System Schwierigkeiten hat, Daten zwischen dem Speicher und dem Prozessor zu übertragen. Dieses Problem tritt tendenziell mehr bei grösseren Batch-Grössen (z.B. 8, 64 oder 256) auf, da diese mehr Speicher für Eingabedaten und Berechnungen benötigen.

Indem wir die Grösse der Zahlen von 32 Bit auf 8 Bit mit Quantisierung reduzieren, können wir viel Speicher sparen. Diese kleinere Grösse bedeutet, dass weniger Daten hin und her zwischen Speicher und Prozessor bewegt werden müssen, was helfen kann, die Geschwindigkeit zu verbessern.

Einrichtung von Experimenten

Um zu sehen, wie sich die Quantisierung auf die Leistung auswirkt, haben wir ein Modell namens ResNet18 betrachtet, das von TVM kompiliert wurde. Wir haben dieses Modell auf einem leistungsstarken System mit einer 8-Kern-CPU und einer angemessenen Menge an Speicher ausgeführt. In unseren Experimenten haben wir verschiedene Zahlen Grössen und Layouts getestet, um zu sehen, wie sie die Leistung beeinflussen. Jeder Test bestand darin, das Modell immer wieder auszuführen und die benötigte Zeit für jeden Durchlauf zu mitteln.

Behebung von Leistungsproblemen

Während unserer Tests haben wir festgestellt, dass die Quantisierung das Modell langsamer machte, als es sein sollte. Nach der Überprüfung der Einrichtung haben wir einen Fehler identifiziert, der dazu führte, dass das quantisierte Modell schlecht abschnitt. Nachdem wir diesen Fehler behoben hatten, begann das quantisierte Modell, eine bessere Leistung zu zeigen.

Wir haben auch herausgefunden, dass TVM unterschiedliche Arten von Ausführungen hat, um Modelle auszuführen. Ein Ausführer ist besser für statische Modelle mit festen Operationen geeignet, während der andere besser für dynamische Modelle geeignet ist, die sich ändern können. Für unsere Experimente haben wir zum statischen Modell-Ausführer gewechselt, was es uns ermöglichte, das quantisierte Modell besser zu optimieren. Nach dieser Änderung sahen wir eine erhebliche Leistungsverbesserung.

Analyse der berechnungsgebundenen Leistung

Mit dem behobenen Fehler und dem richtigen Ausführer haben wir versucht, die Leistung für berechnungsgebundene Aufgaben weiter zu verbessern. Wir konzentrierten uns darauf, die Faltungen in unserem Modell zu optimieren, da sie viele Berechnungen erfordern.

Allerdings haben wir gelernt, dass nicht alle Optimierungsstrategien gut zusammenarbeiten. Unterschiedliche Einstellungen in TVM führen zu unterschiedlichen Leistungsergebnissen, weil einige Strategien bereits für bestimmte Aufgaben optimiert sind. Die Verbesserungen variieren je nachdem, wie gut die spezifische Einrichtung und Zeitpläne zu den durchgeführten Aufgaben passen.

Zum Beispiel ist Spatial Packing eine Technik, die hilft, den Speicherzugriff bei Aufgaben zu beschleunigen, indem sie ändert, wie Daten gespeichert werden. Das Ziel ist es, den Hardware den Zugriff auf die Daten zu erleichtern, was die Leistung verbessert. Diese Änderung kann zu einer erheblichen Geschwindigkeitssteigerung der Berechnungen führen.

Analyse der speichergebundenen Leistung

Neben den Leistungsgewinnen durch bessere Berechnungen hilft die Quantisierung auch beim Speicherverbrauch. Indem wir 8-Bit-Ganzzahlen anstelle von 32-Bit-Gleitkommazahlen verwenden, können wir den Speicherbedarf des Modells reduzieren und wie oft es Daten abrufen muss.

Wir haben bemerkt, dass die Vorteile der reduzierten Speicherbandbreite bei grösseren Batch-Grössen noch klarer wurden. Das Speichern der zwischenzeitlichen Ergebnisse in einem hochpräzisen Format behielt dennoch die Leistungsvorteile der Verwendung von 8-Bit-Quantisierung bei, sodass wir während der Berechnungen keine Präzision verloren haben.

Fazit

Quantisierung kann ein leistungsstarkes Werkzeug sein, um die Effizienz von Deep-Learning-Modellen zu steigern, besonders wenn sie korrekt in einem System wie TVM umgesetzt wird. Indem wir die Stärken und Schwächen von berechnungs- und speichergebundenen Aufgaben verstehen, können wir die Quantisierung besser anwenden, um signifikante Leistungsverbesserungen zu erzielen.

Durch sorgfältiges Feintuning und die Behebung von Problemen innerhalb des Modells können wir die Quantisierung zu einem Vorteil machen, statt zu einer Belastung. Diese Arbeit eröffnet neue Möglichkeiten für weitere Optimierungen und legt den Grundstein für die Anwendung dieser leistungsstarken Techniken in der realen Welt.

Originalquelle

Titel: Analyzing Quantization in TVM

Zusammenfassung: There has been many papers in academic literature on quantizing weight tensors in deep learning models to reduce inference latency and memory footprint. TVM also has the ability to quantize weights and support low-bit computations. Although quantization is typically expected to improve inference time, in TVM, the performance of 8-bit quantization does not meet the expectations. Typically, when applying 8-bit quantization to a deep learning model, it is usually expected to achieve around 50% of the full-precision inference time. However, in this particular case, not only does the quantized version fail to achieve the desired performance boost, but it actually performs worse, resulting in an inference time that is about 2 times as slow as the non-quantized version. In this project, we thoroughly investigate the reasons behind the underperformance and assess the compatibility and optimization opportunities of 8-bit quantization in TVM. We discuss the optimization of two different types of tasks: computation-bound and memory-bound, and provide a detailed comparison of various optimization techniques in TVM. Through the identification of performance issues, we have successfully improved quantization by addressing a bug in graph building. Furthermore, we analyze multiple optimization strategies to achieve the optimal quantization result. The best experiment achieves 163.88% improvement compared with the TVM compiled baseline in inference time for the compute-bound task and 194.98% for the memory-bound task.

Autoren: Mingfei Guo

Letzte Aktualisierung: 2023-08-19 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2308.10905

Quell-PDF: https://arxiv.org/pdf/2308.10905

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Ähnliche Artikel