Tuomas Koskela: Development of portable scientific applications using SYCL
Channel: Society of Research Software Engineering
Date: 2023-02-09

A talk from the GPU performance parallel session at RSECon2022.

Details: https://virtual.oxfordabstracts.com/#/event/3101/submission/69

=====

Extra Q&A

Q: Did you tune tour kernels for the GPU devices or used the same kernels for CPUs and GPUs?
A: We did not do any tuning, besides telling the compiler which backend to compile for, the same source code was used for CPUs and GPUs.

Q: If you were writing a new code now, would you start with SYCL or is it just worth keeping an eye on?
A: It depends on what kind of a project it is. If portability is a high priority, and there is scope to experiment and learn new things, SYCL might be a good option. If there is pressure to deliver results by a tight deadline, then I would start with a more established technology. So perhaps leaning a bit towards "Worth keeping an eye on".

=====

Abstract: High performance computing systems available right now, and those being built for the exascale make extensive use of accelerators, mostly GPUs. Developing scientific software for future GPU systems is challenging, because GPU vendors tend to try to lock users into their own programming models that typically are not portable across vendors. A programmer starting on a new HPC project may struggle with the choice of a programming model that will guarantee portability to future systems.

In this talk, we present early experiences of porting scientific applications to SYCL. SYCL is an open standard for C++ that allows programmers to develop standard C++ code that can be compiled to run on different devices using a LLVM backend. Intel is one of its main industry supporters, and they provide within their OneAPI framework a number of tools and a compiler for their flavour of SYCL, called Data Parallel C++ (DPCPP). Our aim is to assess the feasibility of using these tools to port existing applications, written in GPU-friendly languages, to SYCL in order to achieve greater portability across HPC vendors.

We study four applications that are important to the DiRAC theoretical physics community; OpenQCD, OpenMM, dgpoly3d and HemeLB We describe the experience of porting kernels from these applications to SYCL using dpcpp, share lessons learned and best practices, and discuss the performance of the ported code on NVIDIA and AMD GPUs.

=====

0:00 Chair introduction
0:11 Talk
22:36 Q&A