Authors: Simon Mcintosh-Smith (University of Bristol), Michael Wong (Codeplay Software Ltd, Khronos Group Inc)
Abstract: Many HPC programmers have not heard of SYCL, however, with the increasing importance of modern C++ in HPC, or just seeking alternatives to proprietary languages, SYCL is becoming critical as a vendor neutral way to write C++ code that embraces heterogeneous parallelism. SYCL is an open standard. There are multiple implementations available, both open source and commercial.
In this BoF, experts and SYCL implementers will explain its advantages, how the language is governed, where it is going, and why you need to be aware of it if you are intending to write C++ code which targets HPC machines.
Long Description: SYCL is an open standard adopted across the industry and uses the standard C++-based language. It is managed by The Khronos Group. Historically it was a thin layer on top of OpenCL, however it is now expanding to become a more general way to write C++ code which can portably exploit parallelism and execute on many different accelerator devices (or even just on CPUs). It is vendor neutral, and developed as a Khronos open standard.
The ISO C++ Standard does not yet recognize accelerators but with the help of SYCL and other heterogeneous frameworks (such as Kokkos and Raja) it is being augmented towards heterogeneous computing. A recent LLVM keynote by the SYCL chair reinforces this direction:
https://llvmdev18.sched.com/event/H89n/the-future-direction-of-c-and-the-four-horsemen-of-heterogeneous-computing
Two recent key developments for SYCL are the adoption of the Aurora supercomputer at ANL and Intel’s One API software.
https://newsroom.intel.com/news-releases/u-s-department-energy-intel-deliver-first-exascale-supercomputer/
Intel disclosed at ISC’19 more information about its One API project, which will deliver a unified programming model to simplify application development across diverse computing architectures. Intel’s One API will be based on industry standards and open specifications including SYCL. https://lists.llvm.org/pipermail/cfe-dev/2019-January/060811.html
Intel has been actively leading a multi-company effort to add SYCL programming model support to LLVM/Clang project to facilitate collaboration on C++ single-source heterogeneous programming for accelerators like GPU, FPGA, DSP, etc. from different hardware and software vendors. SYCL programming model is described in detail in the specification document available at the Khronos site: https://www.khronos.org/registry/SYCL/specs/sycl-1.2.1.pdf.
In this BoF our experts (Ronan Keryell [Xilinx], James Brodman/Jeff Hammond/Mike Kinsner [Intel], Gordon Brown [Codeplay], Tom Deakin [University of Bristol], Kevin Harms/Hal Finkel/Nevin Liber [ANL], Michael Wong [ISOCPP]) will present on the following topics:
1) A comparison of SYCL and proprietary languages for heterogeneous computing
2) The ways in which you can get involved in both the language specification and SYCL language implementation (via LLVM)
3) Charts showing SYCL performance comparisons
4) The evolution of SYCL and its contributions to ISO C++ in the coming months and years
After these short presentations, the majority of our time will be spent answering audience questions and helping audience members to understand how to experiment with SYCL and how to join the expanding SYCL community.
This BoF is based on a set of successful tutorials and workshops from different conferences, such as the SYCL tutorial at Stanford University during IWOCL 2016 and the first SYCL workshop at PPoPP’16 as well as the Berkeley Heterogeneous C++ Summit in 2016. There is now also a workshop focused on this effort at IWOCL 2017, 2018, 2019, linking Khronos and ISO C++ standardization in a workshop called DHPCC++:
http://sycl.tech/distributed-heterogeneous-programming-in-c-cpp-dhpccpp19.html
This BoF is targeted to developers of open standard C++ programming models with requirement for heterogeneous programming looking for a vendor-neutral solution that is matching pace with modern C++.
Back to Birds of a Feather Archive Listing