Intel hat ein Open-Source-Tool zur Migration von Code auf SYCL1 im Rahmen eines Projekts namens SYCLomatic veröffentlicht, das Entwicklern hilft, CUDA-Code einfacher auf SYCL und C++ zu portieren, um die architekturübergreifende Programmierung für heterogene Architekturen zu beschleunigen. Dieses Open-Source-Projekt ermöglicht die Zusammenarbeit mit der Community, um die Einführung des SYCL-Standards voranzutreiben. Dies ist ein wichtiger Schritt, um Entwickler von einem proprietären Ökosystem mit nur einem Anbieter zu befreien. Während Hardware-Innovationen zu einer vielfältigen heterogenen Architekturlandschaft für das Computing geführt haben, ist die Softwareentwicklung zunehmend komplexer geworden, was es schwierig macht, die Vorteile von CPUs und Beschleunigern voll auszuschöpfen.

Den heutigen Entwicklern und ihren Teams fehlt es an Zeit, Geld und Ressourcen, um das Umschreiben und Testen von Code zur Steigerung der Anwendungsleistung für diese verschiedenen Architekturen zu ermöglichen. Entwickler suchen nach offenen Alternativen, die die Time-to-Value verbessern, und Intel bietet einen einfacheren, kürzeren Weg, um eine Hardwareauswahl zu ermöglichen. SYCL, ein C++-basierter Standard der Khronos Group, erweitert die C++-Fähigkeiten zur Unterstützung von Multi-Architekturen und disjunkten Speicherkonfigurationen.

Um dieses Projekt zu initiieren, hat Intel die Technologie hinter seinem DPC++ Compatibility Tool als Open Source zur Verfügung gestellt, um die Migrationsmöglichkeiten für die Erstellung von mehr SYCL-basierten Anwendungen weiter zu verbessern. Die Wiederverwendung von Code über verschiedene Architekturen hinweg vereinfacht die Entwicklung und reduziert den Zeit- und Kostenaufwand für die laufende Codepflege. Das auf GitHub gehostete SYCLomatic-Projekt nutzt die Apache 2.0-Lizenz mit LLVM-Ausnahme und bietet eine Community für Entwickler, die dazu beitragen und Feedback geben können, um die offene heterogene Entwicklung über CPUs, GPUs und FPGAs hinweg zu fördern.

Wie das SYCLomatic Tool funktioniert: SYCLomatic unterstützt Entwickler bei der Portierung von CUDA Code auf SYCL und migriert in der Regel 90-95% des CUDA Codes automatisch in SYCL Code2. Zum Abschluss des Prozesses vervollständigen die Entwickler den Rest des Codes manuell und passen ihn dann an das gewünschte Leistungsniveau der Architektur an. Wie die Code-Migration funktioniert: Forschungseinrichtungen und Kunden von Intel haben das Intel® DPC++ Compatibility Tool, das auf denselben Technologien wie SYCLomatic basiert, erfolgreich eingesetzt, um CUDA Code auf SYCL (oder Data Parallel C++, die oneAPI-Implementierung von SYCL) auf den Architekturen mehrerer Hersteller zu migrieren.

Beispiele hierfür sind die Universität Stockholm mit GROMACS 20223, das Zuse-Institut Berlin (ZIB) mit easyWave, Samsung Medison und Bittware (weitere Beispiele finden Sie auf dem oneAPI DevSummit). Mehrere Kunden testen auch Code auf aktuellen und zukünftigen Intel® Xe-Architektur-basierten GPUs, darunter der Aurora Supercomputer des Argonne National Laboratory, das Leibniz-Rechenzentrum (LRZ), GE Healthcare und andere.