Intel® oneAPI

Einheitliches Programmiermodell für verschiedene Architekturen

Übersicht

Die Unterstützung von High-Level-Software-Tools ist für einen wachsenden Kundenstamm, der die Vorteile heterogener Architekturen nutzen möchte, von entscheidender Bedeutung. Die neue oneAPI von Intel ist auf die Wiederverwendung von Code ausgelegt und bietet gleichzeitig eine ähnliche Leistung wie andere High-Level-Tools. Erfahren Sie mehr über Intels oneAPI-Programmiermodell und wie es die Herausforderungen der Programmierung löst, indem es eine einfachere Entwicklung für die Beschleunigung auf verschiedenen Architekturen ermöglicht.

Unterstützt heute auf ausgewählten BittWare-Produkten

Herausforderungen bei der Programmierung

Für mehrere Architekturen

In der heutigen HPC-Landschaft stehen mehrere Hardware-Architekturen für die Ausführung von Workloads zur Verfügung - CPUs, GPUs, FPGAs und spezielle Beschleuniger. Keine einzelne Architektur ist für jede Arbeitslast am besten geeignet, so dass die Verwendung einer Mischung von Architekturen in den meisten Szenarien zur besten Leistung führt. Diese Architekturvielfalt bringt jedoch auch einige Herausforderungen mit sich:

Jede Architektur erfordert eigene Programmiermodelle und Toolchains:

  • Erforderliche Schulung und Lizenzierung - Compiler, IDE, Debugger, Analyse-/Überwachungswerkzeug, Bereitstellungstool - je Architektur
  • Herausforderungen bei der Fehlersuche, Überwachung und Wartung von architekturübergreifendem Quellcode
  • Schwierige Integration über proprietäre IPs und Architekturen hinweg und keine Wiederverwendung von Code

Die Komplexität der Softwareentwicklung schränkt die Freiheit bei der Wahl der Architektur ein.

  • Vereinzelte Investitionen für technisches Fachwissen zur Überwindung der Marktzutrittsschranke erforderlich

Wie oneAPI helfen kann

OneAPI bietet ein einheitliches Programmiermodell, das die Entwicklung auf unterschiedlichen Architekturen vereinfacht. Mit dem OneAPI-Programmiermodell können Entwickler verschiedene Hardwareplattformen mit derselben Sprache und denselben Bibliotheken anvisieren und Code auf verschiedenen Plattformen mit denselben Debug- und Leistungsanalysewerkzeugen entwickeln und optimieren - zum Beispiel Laufzeitdaten über ihren Host und ihre Beschleuniger mit dem Vtune-Profiler erhalten.

Die Verwendung derselben Sprache für verschiedene Plattformen und Hardware-Architekturen erleichtert die Wiederverwendung von Quellcode. Selbst wenn plattformspezifische Optimierungen erforderlich sind, wenn der Code auf eine andere Hardware-Architektur übertragen wird, ist keine Code-Übersetzung mehr erforderlich. Und die Verwendung einer gemeinsamen Sprache und eines gemeinsamen Werkzeugsatzes führt zu einer schnelleren Einarbeitung neuer Entwickler, schnellerem Debugging und höherer Produktivität.

intel_onapi_benefits.png
  • Leistungsoptimierung und Timing-Abschluss durch Emulation und Berichte
  • Laufzeitanalyse über VTune™ Profiler
  • Komplexe Hardware-Muster, die durch integrierte Sprachfunktionen implementiert werden: Makros, Pragmas, Header
  • Wiederverwendung von Code über Architekturen und Anbieter hinweg
  • Kompatibel mit bestehenden Hochleistungssprachen
  • Nutzung vertrauter sequenzieller Programmiersprachen: verbesserte Anlauf- und Debugging-Zeit
  • IDE-Integration: Eclipse, VS, VS Code

2D-FFT-Demo mit oneAPI

Schnellere Entwicklung und Wiederverwendung von Code in diesem softwareorientierten Toolflow

Entdecken Sie die Verwendung von oneAPI mit unserer 2D-FFT-Demo ohne die 520N-MX-Karte mit HBM2. Stellen Sie sicher, dass Sie den Code-Download am Ende der Seite anfordern!

Daten Parallel C++

Standard-basierte, architekturübergreifende Sprache

Bei der oneAPI-Sprache handelt es sich um Data Parallel C++, eine Hochsprache, die für eine produktive parallele Programmierung entwickelt wurde und für eine breite Kompatibilität auf der Sprache C++ basiert. DPC++ ist keine proprietäre Sprache; ihre Entwicklung wird von einer offenen, branchenübergreifenden Initiative vorangetrieben.

Sprache, um kompromisslose Produktivität und Leistung bei der parallelen Programmierung auf allen CPUs und Beschleunigern zu erreichen:

  • Ermöglicht die Wiederverwendung von Code über verschiedene Hardware-Ziele hinweg und erlaubt gleichzeitig die individuelle Abstimmung auf einen bestimmten Beschleuniger
  • Offene, branchenübergreifende Alternative zur proprietären Sprache mit einer einzigen Architektur

Basiert auf C++:

  • Nutzung der Produktivitätsvorteile von C++ unter Verwendung gängiger und vertrauter C- und C++-Konstrukte
  • Enthält SYCL* der Khronos-Gruppe zur Unterstützung von Datenparallelität und heterogener Programmierung

Gemeinschaftsprojekt zur Förderung von Sprachverbesserungen:

  • Erweiterungen zur Vereinfachung der datenparallelen Programmierung
  • Offene und kooperative Entwicklung für kontinuierliche Weiterentwicklung 

FPGA-Entwicklungsablauf für oneAPI

Eines der Hauptprobleme bei der Kompilierung von Code für FPGA ist die Kompilierzeit - der Backend-Kompilierprozess, der für die Übersetzung von DPC++-Code in ein zeitlich geschlossenes FPGA-Design erforderlich ist, das die durch diesen Code spezifizierte Hardware-Architektur implementiert, kann Stunden dauern. Daher wurde der FPGA-Entwicklungsablauf so gestaltet, dass die Kompilierungsläufe minimiert werden.

  1. Der erste Schritt ist die funktionale Validierung, bei der der Code mit Hilfe einer Testbank auf seine Korrektheit überprüft wird. Dies geschieht durch Emulation auf der Entwicklungsplattform, bei der der auf das FPGA abzielende Code kompiliert und auf der CPU ausgeführt wird. Dies ermöglicht eine viel schnellere Durchlaufzeit, wenn ein Fehler gefunden wird und behoben werden muss. Zu diesem Zweck kann ein Standard-CPU-Debugger (wie die Intel® Distribution for GDB) verwendet werden.
  2. Sobald die funktionale Validierung abgeschlossen ist, wird die statische Leistungsanalyse durch vom Compiler generierte Berichte durchgeführt. Die Berichte enthalten alle Informationen, die zur Identifizierung von Speicher-, Leistungs- und Datenflussengpässen im Design erforderlich sind, sowie Vorschläge für Optimierungstechniken zur Beseitigung der Engpässe. Sie liefern auch Flächen- und Zeitschätzungen der Designs für das Ziel-FPGA.
  3. Nachdem die Ergebnisse der statischen Analyse zufriedenstellend sind, erfolgt eine vollständige Kompilierung. Der Compiler kann auf Wunsch eine Profilerstellungslogik in die generierte Hardware einfügen. Die Profilerstellungslogik erzeugt dynamische Profilerstellungsdaten für Speicher- und Pipe-Zugriffe, die später vom Vtune-Leistungsanalysator verwendet werden können, um von Datenmustern abhängige Engpässe zu identifizieren, die auf andere Weise nicht erkannt werden können.
 

KOSTENLOSES On-Demand-Webinar

Verwendung von Intel® oneAPI™ zur Erzielung von Hochleistungs-Rechenbeschleunigung mit FPGAs

Sofort nach der Anmeldung anschauen!

Erfahren Sie mehr über oneAPI

Was ist eineAPI?

oneAPI ist ein branchenübergreifendes, offenes, standardbasiertes, einheitliches Programmiermodell, das Entwicklern eine einheitliche Erfahrung für alle Beschleunigerarchitekturen bietet - für schnellere Anwendungsleistung, mehr Produktivität und mehr Innovation. Die oneAPI-Industrieinitiative fördert die Zusammenarbeit an der oneAPI-Spezifikation und kompatible oneAPI-Implementierungen im gesamten Ökosystem.

Die Bibliotheken

oneAPI bietet Bibliotheken für rechen- und datenintensive Bereiche. Dazu gehören Deep Learning, wissenschaftliches Rechnen, Videoanalyse und Medienverarbeitung.

Die Hardware-Abstraktionsschicht

Die Low-Level-Hardwareschnittstelle definiert eine Reihe von Fähigkeiten und Diensten, die es einer Sprachlaufzeit ermöglichen, einen Hardwarebeschleuniger zu nutzen.

Die Spezifikation

Die oneAPI-Spezifikation erweitert bestehende Programmiermodelle für Entwickler, um eine Vielzahl von Hardware durch Sprache, eine Reihe von Bibliotheks-APIs und eine Low-Level-Hardware-Schnittstelle zur Unterstützung der architekturübergreifenden Programmierung zu ermöglichen. Um die Kompatibilität zu fördern und die Produktivität und Innovation der Entwickler zu unterstützen, baut die oneAPI-Spezifikation auf Industriestandards auf und bietet einen offenen, plattformübergreifenden Entwickler-Stack.

Sie können sofort mit der Verwendung von oneAPI auf dem 520N-MX beginnen

Erste Schritte mit oneAPI auf einem FPGA

Sie benötigen drei Komponenten, um mit der Entwicklung mit oneAPI zu beginnen. Das oneAPI Base Toolkit und FPGA ADd-On sind beide von Intel erhältlich. Das BSP für Ihre BittWare-FPGA-Karte ist auf der Entwickler-Website von BittWare verfügbar. 

Intels oneAPI-Basis-Toolkit

Intel FPGA Add-On für das oneAPI Base Toolkit

FPGA-Karte BSP von BittWare

Video

Craig Petrie spricht über die Unterstützung von BittWare für oneAPI

 

Interessieren Sie sich für Preise oder weitere Informationen?

Unser technisches Vertriebsteam steht bereit, um Ihnen Informationen zur Verfügbarkeit und Konfiguration zu geben oder Ihre technischen Fragen zu beantworten.