Tech-Talk: High Level GPU-Programmierung mit SYCL
Hochleistungsrechner und parallele Berechnungen sind in der heutigen Zeit nicht mehr wegzudenken. Die dabei verwendeten Hardware-Komponenten können komplexe Berechnungen erheblich beschleunigen, sind jedoch auch nicht trivial zu programmieren. SYCL ist ein offener Standard, um die parallele und effiziente Programmierung solcher Hardware-Komponenten zu vereinfachen.Paul Sonnenschein hat sich mit dem Thema befasst und vorgestellt, wozu SYCL1 dient und im Rahmen des Tech-Talks einige praktische Beispiele aufgezeigt. Single-source Heterogeneous-Hardware Programming, so die Tagline für SYCL, ermöglicht es, mit nur einer Programmierschnittstelle verschiedene Hardware und somit verschiedene Beschleuniger (Accelerators) anzusprechen. Beispiele für Beschleuniger sind GPU, CPU und FPGA von diversen Herstellern. Die Entwicklungsarbeit wird durch eine Abstraktionsschicht vereinfacht, die es ermöglicht die verschiedene Hardware mit derselben API zu programmieren. Warum ist das praktisch?Ohne diese Abstraktionsschicht muss ein Programm, welches beispielsweise komplexe Berechnungen in einem Bild durchführt und mit CUDA für Nvidia GPUs geschrieben ist, nochmals mit einer komplett anderen API geschrieben…