zurück zum Artikel

Khronos aktualisiert Spezifikationen für OpenCL 2.1 und SPIR-V 1.0

Rainald Menge-Sonnentag
Spezifikationen für OpenCL 2.1 und SPIR-V 1.0 veröffentlicht

Neben den aktuellen Spezifikationen für heterogenes Parallel Computing stellt das Industriekonsortium einige Open-Source-Werkzeuge vor, die den Einstieg erleichtern sollen.

Auf der derzeit tagenden Supercomputing Conferenz in Austin, Texas stellte das Industriekonsortium Khronos Group die aktualisierte Spezifikationen für heterogenes Parallel-Computing OpenCL 2.1 und SPIR-V 1.0 vor. Die Open Computing Language 2.1 ist eine Schnittstelle für heterogene Parallelrechner, die unterschiedliche Recheneinheiten wie Prozessorkerne und die Shader von Grafikkarten nutzt.

Mit Version 2.1 der OpenCL-API gehören die Untergruppen zur feiner Kontrolle des Hardware-Threadings in den Kern der Spezifikation. Ebenfalls neu ist die Funktion clCloneKernel zum Erstellen einer flachen Kopie von Kernel-Objekten. Timer-Abfragen mit geringer Latenz ermöglichen den Abgleich von Host- und Geräte-Code.

Eine entscheidende Neuerung in OpenCL 2.1 ist die Integration von SPIR-V, dem SPIR-Nachfolger (Standard Portable Intermediate Representation). SPIR-V ist eine Zwischensprache mit nativer Unterstützung für Grafik-Shader und Prozessor-Kernels. Sie ermöglicht die Aufteilung der Compiler-Kette auf die unterschiedlichen Recheneinheiten. Somit können High-Level-Sprachen über SPIR-V die heterogene Architektur ansprechen, ohne sich selbst um die Übersetzung auf die unterschiedlichen Hardware-Komponenten zu kümmern. SPIR-V wird außer in OpenCL auch in der Vulkan [1]-Grafik-API genutzt.

Die jeweils aktuellen Spezifikationen für OpenCL [2] und SPIR-V [3] stehen in der Khronos-Registry zum Herunterladen zur Verfügung. Zusätzlich hat Khronos einige Open-Source-Werkzeuge [4] auf GitHub veröffentlicht, die den Einstieg in die APIs vereinfachen sollen. Dazu gehört ein LLVM Framework mit einem bidirektionalen Konverter zwischen LLVM und SPIR-V, ein OpenCL-C-nach-LLVM-Compiler und ein SPIR-V-Assembler und -Disassembler.

(rme [5])


URL dieses Artikels:
https://www.heise.de/-2922960

Links in diesem Artikel:
[1] https://www.khronos.org/vulkan
[2] https://www.khronos.org/opencl/
[3] https://www.khronos.org/spir/
[4] https://www.khronos.org/spir/resources
[5] mailto:rme@ix.de