Mittlerweile sind alle
Vortragsvideos zur IWOCL online gegangen. Die
diesjährige online Veranstaltung brachte wieder viele interessante Inhalte zur Software-Entwicklung von Compute Anwendungen.
Allgemein interessant waren dabei die Informationen von
Neil Trevett (VP Nvidia & Khronos President & OpenCL WG Chair) aus der Intro zum Diskussionspanel (
video) über die
vergangene und künftige Entwicklung von OpenCL. (
PDF).
- die Verschmelzung bzw. Auflösung von OpenCL in Vulkan wurde aufgegeben, es bleibt eigenständig
- die OpenCL 2.0 Erweiterungen als strikte Vorgabe wurden aufgegeben, dafür optionale HW-Unterstützung in 3.0
- OpenCL C++ Spezifikation wurde aufgegeben, dafür sollen C++ Compiler OpenCL übersetzen können
- SYCL nutzt auch für OpcenCL die intermediate representation SPIR-V
Somit wird
SPIR-V mit seinen Tools der
Dreh- und Angelpunkt bei der Übersetzung unterschiedlicher Code-Quellen für die Compute-Hardware.
Auffallend ist dass diese Jahre des
Try-n-Error rund um die OpenCL Entwicklung eine Stagnation in der Anzahl wissenschaftlicher Veröffentlichungen verursachten, gerade als das Compute-Thema nochmal deutlich an Fahrt gewann und rund um AI/KI mit CUDA viel geforscht wurde.
Man kann in OpenCL 3.0 wohl am ehesten einen
Restart mit bewährten Konzepten und notwendiger Konsolidierung sehen um den verschiedenen wirklich aktiven Stakeholdern gerecht zu werden. Dabei ist OpenCL bei Entwicklern (z.B. vertreten durch Sony-Video und Adobe) für Plattform übergreifende Computeanwenungen bei Anwendersoftware bereits gesetzt.
Doch gerade auch das
Engagement von Intel für SYCL ist auf der Veranstaltung einmal mehr deutlich geworden. Man sieht wie die Intel-Vertreter ähnliche Pfade beschreiten müssen wie die Compute-Experten von AMD mit HIP und ROCm. Unter dem Terminus
Unifed Shared Memory (USM) (
PDF) propagiert man bei Intel heterogene CPU-GPU Compute Architekturen.
We have implemented USM as an extension to OpenCL (for CPU and GPU) and SYCL (in our DPC++ Beta compiler), and are recommending that USM be included in future versions of both standards.
Das Intel
DPC++ Compatibility Tool (beta) dient dabei vorhanden CUDA Code nach DPC++ zu konvertieren. Unter dem
Terminus Data Parallel C++ will man bei Intel künftig die Computesoftware in C++ und SYCL programmieren. Auch für den für 2021 angekündigten
Aurora Supercomputer soll dieses als Basis der
oneAPI Entwicklungsplattform genutzt werden (
Vortrag Argonne Nat. Labs.).