A Stencil DSEL for Single Code Accelerated Computing with SYCL - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Communication Dans Un Congrès Année : 2016

A Stencil DSEL for Single Code Accelerated Computing with SYCL

Résumé

Stencil kernels arise in many scientific codes as the result from dis-cretizing natural, continuous phenomenons. Many research works have designed stencil frameworks to help programmer optimize stencil kernels for performance, and to target CPUs or accelerators. However, existing stencil kernels, either library-based or language-based necessitate to write distinct source codes for accelerated kernels and for the core application, or to resort to specific keywords, pragmas or language extensions. SYCL is a C++ based approach designed by the Khronos Group to program the core application as well as the application kernels with a single unified, C++ compliant source code. A SYCL application can then be linked with a CPU-only runtime library or processed by a SYCL-enabled compiler to automatically build an OpenCL accelerated application. Our contribution is a stencil domain specific embedded language (DSEL) which leverage SYCL together with expression template techniques to implement statically optimized stencil applications able to run on platforms equipped with OpenCL devices, while preserving the single source benefits from SYCL.
Fichier principal
Vignette du fichier
main.pdf (188.3 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01290099 , version 1 (24-03-2016)

Identifiants

  • HAL Id : hal-01290099 , version 1

Citer

Olivier Aumage, Denis Barthou, Alexandre Honorat. A Stencil DSEL for Single Code Accelerated Computing with SYCL. SYCL 2016 1st SYCL Programming Workshop during the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Mar 2016, Barcelone, Spain. ⟨hal-01290099⟩
441 Consultations
455 Téléchargements

Partager

Gmail Facebook X LinkedIn More