Khronos veröffentlicht SYCL 2020 Provisional Specification
Die beim Schreiben von C++-Programmen als Abstraktionsschicht für OpenCL fungierende Programmiersprache basiert nun auf C++17.
![Khronos veröffentlicht SYCL 2020 Provisional Specification](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/9/2/0/9/7/3/shutterstock_662882245-502173efa4f7e6e5.jpeg)
(Bild: Gorodenkoff/Shutterstock.com)
- Alexander Neumann
Die Khronos Group hat eine vorläufige Spezifikation von SYCL 2020 herausgegeben. Der SYCL-Standard (ausgesprochen: "sickle") ist eine unter heterogenen Prozessoren nutzbare Programmiersprache, die beim Schreiben von C++-Programmen als Abstraktionsschicht für OpenCL (Open Compute Language) fungiert.
Der OpenCL- und C++-Vermittler
SYCL will also OpenCL nach C++ bringen. Der OpenCL-Standard definiert wiederum Schnittstellen zur Parallelprogrammierung von Anwendungen, die auf unterschiedlichen, aber OpenCL-kompatiblen Prozessoren laufen. OpenCL soll die Rechenleistung von Grafikprozessoren zusätzlich zur 2D- oder 3D-Grafikbeschleunigung auch für andere, allgemeine Applikationen ausnutzen, indem es die Berechnungen auf mehrere Grafikprozessoren und CPUs verteilt.
Die neue Spezifikation basiert nun auf C++17 – bislang galt C++11 als Referenz –, soll sich aber rückwärtskompatibel verhalten. Des Weiteren enthält sie neue Programmierabstraktionen wie Unified Shared Memory, Reduktionen, Gruppenalgorithmen und Untergruppen, um HPC-Anwendungen (High-Performance Computing) über verschiedene Hardware-Architekturen hinweg zu ermöglichen.
OpenCL ist auch weiterhin das gesetzte Backend-Ziel, aber es gibt auch neue Implementierungen, die etwa OpenMP, CUDA und Radeon ROCm oder andere Umgebungen für das sogenannte Heterogeneous Programming als Ziel haben. Eine Beta-Implementierung von SYCL 2020 ist außerdem in Intels DPC++-Compiler verfügbar. Die mit ComputeCpp SYCL 1.2.1 konforme Implementierung von Codeplay enthält auch schon ausgewählte SYCL-2020-Funktionen als Erweiterungen. Beide Implementierungen basieren auf dem Compiler-Framework Clang.
Auftakt zum Testen
Die Veröffentlichung der Provisional Specification bedeutet, dass nun offenbar die beste Zeit dafür ist, Feedback zum Standard zu geben, bevor die endgültige Spezifikation mit dem SYCL 2020 Adopters Program fertiggestellt und veröffentlicht wird.
Weitere Informationen finden Interessierte in der Ankündigung der Khronos Group und auf der Spezifikations-Website.
(ane)