Programmieren mit Sycl: Wie iGPUs meinen Traum von der Universalsprache zerstörten

Auf den ersten Blick sieht Sycl aus, als wäre ein Traum wahr geworden: eine moderne, herstellerunabhängige Programmierumgebung mit hoher Abstraktion, die auf so ziemlich jeder Hardware läuft. Der Versuch, unser Testprogramm aus dem vorherigen Artikel (g+) auf verschiedenen GPUs auszuführen, hat uns allerdings auf den Boden der Realität zurückgeholt. Und die heißt: Es hängt davon ab.
Auf einigen GPUs laufen Programme ohne Mühen, auf anderen sind wir trotz verschiedener Ansätze gescheitert. Denn bei Sycl führen oft mehrere Wege nach Rom. Insbesondere bei integrierten GPUs (iGPUs) führt dabei aber oft keiner zum Ziel, und wenn doch, dann teils mit Einschränkungen. Das liegt allerdings nicht an Sycl – und zumindest haben wir einiges über die Sprache, OpenCL und die feinen Unterschiede von auf den ersten Blick gleichen GPUs gelernt.