GPUs are currently considered from all safety critical industries, including avionics and aerospace to accelerate general purpose computations and meet performance requirements of new advanced functionalities, which are not possible with the legacy, single-core processors used in these domains, such as in the recent Airbus project Automatic Taxi, Take- off and Landing (ATTOL) project. However, most of the R&D is currently focused on proof of concepts, which demonstrate the capabilities of employing GPUs in avionics, ignoring the certification challenges introduced by GPUs. This tutorial is the outcome of years or research at Barcelona Supercomputing Center (BSC) and technology transfer within safety critical industries, which culminated in the recent approval of these methods (July 2022) from the competent airworthiness authority in Spain and soon by EASA, for the first time in Europe. The attendees will learn how general purpose GPU code can be developed and certified according to safety critical standards used in these industries by using graphics-based technologies (OpenGL SC 1.0.1 and 2.0) which have are already used in certified safety critical products of the highest criticality (DAL-A avionics according to DO-178C and ASIL D according to ISO 26262). This will include the latest GPU programming API for safety critical systems ratified by Khronos, Vulkan SC, in March 2022, which one of the organisers (Dr. Leonidas Kosmidis) has been one of the earliest adopters and helped to be defined by participating in its Khronos Vulkan Safety Critical Advisory Panel. Special attention will be paid on Brook Auto/BRASIL, an open source technology developed at BSC (https://github.com/lkosmid/brook), which abstracts away the complexities of programming in these graphics based solutions in a CUDA like language, while retaining their certification benefits, and have been demonstrated with industrial use cases. Finally, the tutorial will include a hands-on session with exercises, during which the attendees will have the opportunity to experiment with the certifiable solution(s) of their interest. BSC will provide remote access to relevant GPUs with preinstalled certifiable GPU languages/APIs.
Objectives include: Learn which certifiable language options/APIs are available for programming GPUs; Practice programming a certifiable GPU language/API; Get familiar with open points in the DO-178 C certification of General purpose GPU.
What is expected from the tutorial attendees:
The tutorial attendees must be familiar with general purpose GPU programming in one of the following GPU languages: CUDA, OpenCL, OpenGL (ES/SC), Vulkan, SYCL. 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. An additional tutorial offering the necessary background will be offered by the tutorial instructors, to ensure that all attendees know the basics of CUDA programming. In order to participate in the hands-on session, the tutorial attendees will need to bring their laptops, with wifi connection and need to have installed an ssh client.
What resources are given to the attendees:
The attendees will be provided with the slides of the tutorial and instructions to setup Brook Auto in their laptops or target safety critical systems. Moreover, they will be provided with the descriptions of the exercises and their source code. Remote access to GPU systems with the safety critical programming languages/APIs preinstalled will be provided by presenters.