Tutorial T8: Introduction to Certifiable General Purpose GPU Programming for Safety-Critical Systems

Organizers

  • Leonidas Kosmidis, Barcelona Supercomputing Center (BSC)
  • Rod Burns, Codeplay/Intel
  • Verena Beckham, Codeplay/Intel

GPUs are currently considered from all safety critical industries (automotive, avionics, aerospace, healthcare etc) to accelerate general-purpose computations and meet performance requirements, which are not possible with the legacy, single-core processors used in these domains. However, most of the R&D in companies from these domains is focused on proof of concepts, which demonstrate the capabilities of employing GPUs in these domains, ignoring the certification challenges introduced by GPUs. In this tutorial, we will teach the attendees how general purpose GPU code can be developed and certified according to safety critical standards used in these industries, using open standards such as Khronos APIs as well as AdaCore’s experimental compiler for programming NVIDIA GPUs using Ada/SPARK. This is a very timely topic since it also introduces the latest GPU programming API for safety critical systems, SYCL SC, which is under development by Khronos, in a working group created in March 2023, in which the organisers are actively involved. Leonidas Kosmidis serves as the Working Group Outreach Officer while Verena Beckam is the Working Group Chair. In addition, both organisers are contributing to these open standard technologies in Horizon Europe projects, METASAT (https://metasat-project.eu/) and SYCLOPS (https://www.syclops.org/).

Duration: Half day

Level: Introductory

Background: The tutorial attendees must be familiar with C++ and Ada/SPARK. Moreover, understanding of safety critical systems and familiarity with at least one safety standard (ISO 26262, DO-178C, ECSS) and safety critical code development guidelines (i.e. MISRA C/C++) is desirable but not required.

Presentation Topics

  • Introduction (presented by Leonidas Kosmidis)
  • Certification and challenges with GPUs (15 minutes, presented by Leonidas Kosmidis)
  • OpenGL SC 2.0 (50 minutes, short presentation and hands-on by Leonidas Kosmidis)
  • SYCL (50 minutes, short presentation and hands-on by Victor Perez)
  • What’s new in upcoming SYCL SC (15 minutes, presented by Leonidas Kosmidis)
  • Programming NVIDIA GPUs using Ada/SPARK using AdaCore's experimental compiler (50 minutes, short presentation and hands-on by Leonidas Kosmidis)
  • Wrap-up (presented by Leonidas Kosmidis)