Detailseite
Projekt Druckansicht

Performance, Portabilität und Produktivität für Deep-Learning Anwendungen auf Multi- und Many-Core Architekturen (PPP-DL)

Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Förderung Förderung seit 2022
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 470527619
 
Deep Learning (DL) ist derzeit die populärste Methode des maschinellen Lernens, mit der eine Vielzahl realer Probleme sowohl in der Wissenschaft als auch in der Industrie gelöst werden. Der Erfolg von DL-Anwendungen hängt entscheidend von der Qualität der Software ab, die DL-Algorithmen für moderne parallele Architekturen wie z.B. multi-core CPU, Grafikprozessor (GPU) und Field- Programmable Gate Array (FPGA) implementiert. Moderne DL- Frameworks wie TensorFlow und PyTorch basieren auf Hersteller-spezifischen Bibliotheken, z.B. von Intel und NVIDIA, was zu erheblichen Schwächen führt in Bezug auf drei grundlegende Aspekte: i) suboptimale Performance – viele DL-spezifische Optimierungen sind nicht anwendbar, da die Bibliotheken auf unterschiedliche Anwendungsgebiete abzielen; ii) mangelnde Portabilität, da die Bibliotheken speziell für Architekturen bestimmter Hersteller entwickelt/optimiert sind; iii) Produktivität des Nutzers ist eingeschränkt, da die Bibliotheken auf einen festen Satz vorimplementierter Algorithmen beschränkt sind (z. B. Matrixmultiplikation und Convolutions), und es ist umständlich Bibliotheken in DL-Frameworks zu integrieren.Dieses Projekt wird einen neuartigen Ansatz zur automatischen Codegenerierung und -optimierung für DL-Anwendungen entwickeln, die auf moderne Architekturen abzielen. Unser Ziel besteht darin, drei wichtige Herausforderungen anzugehen: Performance, Portabilität und Produktivität (PPP). Das Ziel des Projekts soll auf Basis folgender neuer Konzepte erreicht werden: 1) ein neuer algebraischer Formalismus und eine auf dem Formalismus basierende domänenspezifische Sprache (DSL) zum bequemen Ausdrücken/Implementieren von DL-Anwendungen, wodurch zur Produktivität des Programmierers beigetragen wird; 2) ein einheitliches Low-Level-Programmiermodell für DL-Anwendungen, das funktionale Portabilität von Code ermöglicht, indem es direkt in gängige parallele Programmieransätze übersetzt werden kann: OpenMP, CUDA, OpenCL, usw.; 3) einen Codegenerierungsmechanismus für unsere DSL, der eine hohe Performance über verschiedene Architekturen und Charakteristiken von Ein- Ausgabedaten ermöglicht, indem er automatisiert automatisch-optimierbaren Code in unserem Low-Level-Programmiermodell generiert; 4) ein systematischer Integrationsprozess von unserem Mechanismus zur Codegenerierung in moderne DL-Frameworks, basierend auf dem MLIR-Framework; 5) ein neues Auto-Tuning-System, das unseren generierten Code durch kombinierte numerische Suchtechniken vollautomatisch optimiert; 6) ein neues analytisches Kostenmodell zur Vorhersage der Laufzeit von DL-Anwendungen in unserer DSL für verschiedene Architekturen, um unseren Auto-Tuning-Prozess zu beschleunigen. Wir werden unseren Ansatz – in Bezug auf Performance, Portabilität und Produktivität – experimentell mit den neuesten Ansätzen vergleichen, für eine Vielzahl von DL-Anwendungen auf verschiedenen parallelen Architekturen und unter Verwendung realer DL-Datensätze.
DFG-Verfahren Sachbeihilfen
Internationaler Bezug Frankreich, Großbritannien, USA
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung