Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.
Abstract: Graphics Processing Units (GPU) offer tremendous computational power by following a throughput oriented paradigm where many thousand computational units operate in parallel. Programming such massively parallel hardware is challenging. Programmers must correctly and efficiently coordinate thousands of threads and their accesses to various shared memory spaces. Existing mainstream GPU programming languages, such as CUDA and OpenCL, are based on C/C++ inheriting their fundamentally unsafe ways to access memory via raw pointers. This facilitates easy to make, but hard to detect bugs, such as data races and deadlocks.
In this talk, I present Descend: a safe GPU programming language which has recently been introduced in our PLDI 2024 paper. In contrast to prior safe high-level GPU programming approaches, Descend is an imperative GPU systems programming language in the spirit of Rust, enforcing safe CPU and GPU memory management in the type system by tracking Ownership and Lifetimes. Descend introduces a new holistic GPU programming model where computations are hierarchically scheduled over the GPU’s execution resources: grid, blocks, warps, and threads. Descend’s extended Borrow checking ensures that execution resources safely access memory regions without data races. For this, we introduced views describing safe parallel access patterns of memory regions, as well as atomic variables. For memory accesses that can’t be checked by our type system, users can annotate limited code sections as unsafe.
I will provide intuitions and insights into Descend and how it achieves data race freedom while still achieving CUDA-level performance on real-world GPU programs. Furthermore, will I discuss future directions of research towards a family of Rust-inspired programming languages for accelerators and how we can combine them to program complex heterogeneous high-performance systems safely.
Bio: Michel Steuwer is a professor at Technische Universität Berlin, chairing the ComPL (Compilers and Programming Languages) group.
Before, he held academic positions at the University of Edinburgh and Glasgow.
His research interests span domain-specific compilers and programming languages for modern parallel computer hardware. In compilers, he is internationally known for his work on Lift and Rise, functional data parallel array programming languages, which are optimized using rewrite techniques achieving high performance on GPUs. In rewrite-based optimizations, his work on Elevate and Guided Equality Saturation, gives performance engineers high degrees of control when optimizing programs. In programming languages, with Descend, he is researching novel safe imperative programming approaches for parallel hardware such as GPUs.
His work has influenced compiler frameworks in industry, specifically MLIR, and has been widely recognized in academia with best papers awards, including at CGO 2018, most cited papers at ICFP 2015 and CGO 2017, and a Communication of the ACM Research Highlight in 2023.
Comments are closed
Comments to this thread have been closed by the post author or by an administrator.