Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Mathematische Software# Hardware-Architektur# Verteiltes, paralleles und Cluster-Computing# Maschinelles Lernen

Verbesserung von Processing-in-Memory-Systemen mit neuen Bibliotheken

Eine neue Bibliothek verbessert komplexe Berechnungen in PIM-Architekturen.

― 6 min Lesedauer


PIM Tech: Neue BibliothekPIM Tech: Neue Bibliotheksteigert die Leistungkomplexe Berechnungen in PIM-Systemen.Revolutionäre Bibliothek beschleunigt
Inhaltsverzeichnis

Processing-in-memory (PIM) ist eine neue Art, Speicher zu nutzen, die ihn mit Verarbeitungsfunktionen kombiniert. Dieser Ansatz soll das Problem lösen, dass Daten zwischen dem Speicher und den Verarbeitungseinheiten in modernen Computern hin und her bewegt werden müssen. In traditionellen Systemen gab es eine Leistungsdiskrepanz zwischen der Geschwindigkeit der Prozessoren und der Geschwindigkeit, mit der sie auf den Speicher zugreifen können. Da Computer schneller geworden sind, ist der Zugriff auf Daten zu einem grossen Limit geworden. PIM-Systeme versuchen, die Leistung zu verbessern, indem sie Berechnungen direkt dort zulassen, wo die Daten gespeichert sind.

Die Herausforderung komplexer Operationen

Eine der Hauptschwierigkeiten bei aktuellen PIM-Systemen ist der Umgang mit komplexen Berechnungen, insbesondere mit transzendentalen Funktionen. Diese Funktionen umfassen trigonometrische Funktionen wie Sinus und Kosinus, Exponentialfunktionen und Logarithmen. Diese Berechnungen sind in vielen modernen Anwendungen, einschliesslich derjenigen im Maschinenlernen, entscheidend. Aktuelle PIM-Architekturen haben oft eingeschränkte Fähigkeiten und haben Probleme, diese komplexen Operationen effektiv zu bewältigen.

Der Bedarf an effizienten Bibliotheken

Um diese komplexen Berechnungen in PIM-Systemen zu unterstützen, wurde eine neue Bibliothek entwickelt. Diese Bibliothek bietet effiziente Methoden für den Umgang mit transzendentalen Funktionen. Sie nutzt zwei Haupttechniken: CORDIC und Lookup-Tabellen (LUT). CORDIC ist eine Methode, die es ermöglicht, Berechnungen mit einfachen Operationen wie Addition und Verschiebungen durchzuführen. Lookup-Tabellen speichern vorab berechnete Werte, sodass Berechnungen schnell durchgeführt werden können, indem sie abgerufen werden, anstatt sie von Grund auf neu zu berechnen.

Überblick über transzendentale Funktionen

Transzendentale Funktionen sind Funktionen, die nicht als einfache polynomiale Gleichung ausgedrückt werden können. Das macht sie schwieriger, genau in einer endlichen Anzahl von Schritten zu berechnen. Häufige transzendentale Funktionen sind Sinus, Kosinus, Exponentialfunktionen und Logarithmen. Diese Funktionen sind in verschiedenen Anwendungen wichtig, wie z.B. in der wissenschaftlichen Berechnung und im Maschinenlernen.

Wie PIM funktioniert

PIM-Systeme integrieren Verarbeitungselemente nah am Speicher, um die Verzögerungen zu reduzieren, die durch die Datenbewegung verursacht werden. Diese Systeme lassen sich in zwei Hauptkategorien unterteilen:

  1. Processing-near-memory (PNM): Dieser Typ platziert Verarbeitungseinheiten direkt neben dem Speicher. Dieser Ansatz hilft, den Zugriff auf Daten zu beschleunigen.

  2. Processing-using-memory (PUM): Dieser Typ nutzt die Eigenschaften des Speichers selbst, um Berechnungen durchzuführen, wodurch Operationen ohne Datenbewegung aus dem Speicher möglich sind.

Jüngste Fortschritte in der Speichertechnologie haben es ermöglicht, PIM-Systeme zu entwerfen, die diese Fähigkeiten bieten.

Aktueller Stand der PIM-Technologie

Die ersten realen PIM-Systeme haben begonnen, auf dem Markt aufzutauchen. Unternehmen wie UPMEM haben PIM-Architekturen entwickelt, die kleine Verarbeitungskerne neben Speichereinheiten platzieren. Diese Entwicklungen zeigen, dass PIM eine praktische Lösung für die Datenbewegungsprobleme herkömmlicher Computerarchitekturen werden kann.

Mehrere Prototypen sind aufgetaucht, darunter verschiedene Ansätze wie HBM-PIM und AxDIMM. Jedes dieser Systeme zielt auf spezifische Anwendungsfälle wie Maschinenlernen oder Datenverarbeitung ab, hat aber gemeinsame Merkmale, wie eingeschränkte Befehlssätze und einfache Verarbeitungseinheiten.

Einschränkungen bestehender PIM-Systeme

Aktuelle PIM-Systeme haben Einschränkungen in Bezug auf die Arten von Operationen, die sie ausführen können. Viele Systeme unterstützen beispielsweise keine fortgeschrittenen Berechnungen wie transzendentale Funktionen nativ und sind stattdessen auf Softwarebibliotheken angewiesen. Das schafft Herausforderungen in Anwendungen, die häufige Nutzung dieser Funktionen erfordern, da die Programmierung die Auslagerung von Aufgaben zwischen verschiedenen Verarbeitungseinheiten verwalten muss.

Die neue Bibliothek für transzendentale Funktionen

Um die Einschränkungen bestehender PIM-Systeme zu beheben, wurde eine neue Bibliothek geschaffen, die sich auf transzendentale Funktionen spezialisiert. Diese Bibliothek unterstützt verschiedene Methoden zur effizienten Berechnung dieser Funktionen. Der Fokus der Bibliothek liegt darauf, schnelle und genaue Berechnungen im Kontext von PIM-Architekturen bereitzustellen.

CORDIC-Methode

Die CORDIC-Methode ist ein iterativer Algorithmus, der verwendet werden kann, um verschiedene mathematische Funktionen, einschliesslich Sinus und Kosinus, zu berechnen. Der Hauptvorteil von CORDIC besteht darin, dass er nur einfache Operationen wie Addition und Bitverschiebung verwendet, die in PIM-Systemen leichter auszuführen sind als komplexere Operationen wie Multiplikation.

Lookup-Tabellen (LUT)

Die Lookup-Tabellen-Methode umfasst die Vorab-Berechnung von Werten von Funktionen und deren Speicherung im Speicher. Wenn eine Berechnung benötigt wird, ruft das System den erforderlichen Wert aus der Tabelle ab. Diese Methode beschleunigt Berechnungen erheblich, da die Notwendigkeit umfangreicher Berechnungen bei jedem Aufruf einer Funktion vermieden wird. Lookup-Tabellen können je nach den Bedürfnissen der Anwendung angepasst werden, was ein Gleichgewicht zwischen Geschwindigkeit und Genauigkeit ermöglicht.

Bewertung der Leistung der Bibliothek

Um zu bestimmen, wie effektiv die neue Bibliothek ist, wurden Leistungsanalysen mit Mikrobenchmarks durchgeführt. Mikrobenchmarks sind kleine Programme, die dazu dienen, die Leistung spezifischer Funktionen zu testen. Diese Tests massen die Genauigkeit, Ausführungszyklen, den Speicherverbrauch und die Setup-Zeit, die mit verschiedenen Berechnungsmethoden verbunden sind.

Ausführungszyklen

Die Anzahl der Ausführungszyklen ist eine wichtige Kennzahl zur Bewertung der Leistung. Geringere Ausführungszyklen weisen normalerweise auf eine schnellere Leistung hin. Die Bibliothek konnte die Ausführungszyklen effektiv optimieren, was sie für den Einsatz in verschiedenen Anwendungen geeignet macht.

Speicherverbrauch

Der Speicherverbrauch ist ein weiterer kritischer Faktor bei der Bewertung der Leistung. PIM-Architekturen haben oft begrenzte Speicherressourcen, weshalb es wichtig ist, diese Ressourcen effizient zu verwalten. Verschiedene Methoden zur Berechnung von Funktionen wurden auf ihren Speicherverbrauch getestet, um sicherzustellen, dass die Bibliothek in realen Szenarien praktikabel bleibt.

Testen der Bibliothek mit echten Arbeitslasten

Neben Mikrobenchmarks wurde die Bibliothek mit drei bedeutenden realen Arbeitslasten getestet: Blackscholes, Sigmoid und Softmax. Diese Benchmarks stellen häufige Anwendungen dar, in denen transzendentale Funktionen eine wichtige Rolle spielen.

Blackscholes

Das Blackscholes-Modell wird in der Finanzwirtschaft verwendet, um den Preis von Optionen zu berechnen. Es erfordert mehrere Funktionen, einschliesslich Exponential- und Logarithmusfunktionen. Die PIM-Version des Blackscholes-Benchmarks zeigte im Vergleich zu traditionellen Methoden erhebliche Leistungsverbesserungen.

Sigmoid

Die Sigmoid-Funktion wird häufig im Maschinenlernen als Aktivierungsfunktion verwendet. Dieses Benchmark hob die Fähigkeit der Bibliothek hervor, im Vergleich zu traditionellen CPU-Implementierungen wettbewerbsfähige Leistung zu bieten.

Softmax

Softmax wird im Maschinenlernen verwendet, um rohe Werte in Wahrscheinlichkeiten umzuwandeln. Die Implementierung von Softmax mit der neuen Bibliothek zeigte, dass die PIM-Architektur anspruchsvolle Anwendungen effektiv bewältigen kann, indem sie die Datenbewegung erheblich reduziert.

Fazit

Processing-in-memory-Systeme haben grosses Potenzial, die Effizienz und Geschwindigkeit von Berechnungen zu verbessern, indem sie die Engpässe reduzieren, die mit der Datenbewegung verbunden sind. Die neue Bibliothek für transzendentale Funktionen adressiert effektiv die Einschränkungen bestehender PIM-Architekturen, indem sie effiziente Methoden für komplexe Berechnungen anbietet. Durch die Nutzung von Ansätzen wie CORDIC und Lookup-Tabellen kann die Bibliothek schnelle und genaue Ergebnisse liefern und den Weg für fortschrittlichere Anwendungen in Bereichen wie Maschinenlernen und wissenschaftliche Berechnung ebnen.

Während sich die PIM-Technologie weiterhin entwickelt, wird die Verfügbarkeit effizienter Bibliotheken entscheidend sein, um ihr volles Potenzial auszuschöpfen und eine neue Generation vonComputersystemen zu ermöglichen, die den Anforderungen moderner Arbeitslasten gerecht werden können.

Originalquelle

Titel: TransPimLib: A Library for Efficient Transcendental Functions on Processing-in-Memory Systems

Zusammenfassung: Processing-in-memory (PIM) promises to alleviate the data movement bottleneck in modern computing systems. However, current real-world PIM systems have the inherent disadvantage that their hardware is more constrained than in conventional processors (CPU, GPU), due to the difficulty and cost of building processing elements near or inside the memory. As a result, general-purpose PIM architectures support fairly limited instruction sets and struggle to execute complex operations such as transcendental functions and other hard-to-calculate operations (e.g., square root). These operations are particularly important for some modern workloads, e.g., activation functions in machine learning applications. In order to provide support for transcendental (and other hard-to-calculate) functions in general-purpose PIM systems, we present \emph{TransPimLib}, a library that provides CORDIC-based and LUT-based methods for trigonometric functions, hyperbolic functions, exponentiation, logarithm, square root, etc. We develop an implementation of TransPimLib for the UPMEM PIM architecture and perform a thorough evaluation of TransPimLib's methods in terms of performance and accuracy, using microbenchmarks and three full workloads (Blackscholes, Sigmoid, Softmax). We open-source all our code and datasets at~\url{https://github.com/CMU-SAFARI/transpimlib}.

Autoren: Maurus Item, Juan Gómez-Luna, Yuxin Guo, Geraldo F. Oliveira, Mohammad Sadrosadati, Onur Mutlu

Letzte Aktualisierung: 2023-09-05 00:00:00

Sprache: English

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

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

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.

Mehr von den Autoren

Ähnliche Artikel