19:30 Accueil
19:45 Trois courtes présentations
20:15 Pause Dinatoire
20:45 C++17 abstractions for heterogeneous computing
21:30 Prolongation du Meetup et discussions avec les conférentiers
cppfrug.org github.com Communauté C++ francophone
- Articles C++17 sur LinuxFr.org par Oliver
- Mapping entre Types et Identifiants à la compilation et à l'exécution par Guss
- Framework Boson par JB
Ces trois présentations sont sous licence CC BY-SA 4.0.
Et leur code Mardown est disponible sur le dépôt Git C++FRUG.
Ronan Keryell travaille pour Xilinx Research Labs afin de permettre à Clang/LLVM de compiler le C++17/C++20 pour des FPGA.
Computing architectures nowadays are huge multi-processor system-on-chips with different kind of processors, GPU, configurable specific accelerators (video CODEC...), reconfigurable programmable logic (FPGA), various hierarchies of memory and memory interfaces, configurable IO and network support, security support, power control, etc. High-performance applications may use a hierarchy of such system up to fill up a full-scale data-center. So the programmer is facing nowadays a fractal architecture, demanding also more and more control for power efficiency. This tends to require a dense fractal set of skills and tools.
OpenCL SYCL C++ is a new open standard from Khronos Group aiming at solving some of the programming issues related to heterogeneous computing. This pure C++17 domain-specific embedded language allows the programmer to write single-source C++17 host code with accelerated code expressed as functors. The data accesses are described with accessor objects that implicitly define a task graph that can be asynchronously scheduled on a distributed-memory system including several CPU and accelerators. Since this programming model is quite generic, we will end by introducing some extensions we study at Xilinx within the https://github.com/xilinx/triSYCL open source implementation to optimize FPGA usage with the concept of pipes to define 1-to-1 connections between kernels in the task graph without requiring expensive memory bandwidth.
As this talk is focused on C++, we will also introduce some interesting features of C++17 and other C++ frameworks to address the issue of heterogeneous computing.