Litcius/Paper detail

Alpinist: An Annotation-Aware GPU Program Optimizer

Ömer Şakar, Mohsen Safari, Marieke Huisman, Anton Wijs

2022Lecture notes in computer science12 citationsDOIOpen Access PDF

Abstract

Abstract GPU programs are widely used in industry. To obtain the best performance, a typical development process involves the manual or semi-automatic application of optimizations prior to compiling the code. To avoid the introduction of errors, we can augment GPU programs with (pre- and postcondition-style) annotations to capture functional properties. However, keeping these annotations correct when optimizing GPU programs is labor-intensive and error-prone. This paper introduces Alpinist , an annotation-aware GPU program optimizer. It applies frequently-used GPU optimizations, but besides transforming code, it also transforms the annotations. We evaluate Alpinist , in combination with the VerCors program verifier, to automatically optimize a collection of verified programs and reverify them.

Topics & Concepts

Computer scienceAnnotationCode (set theory)Process (computing)Parallel computingProgramming styleCUDAGeneral-purpose computing on graphics processing unitsProgramming languageArtificial intelligenceComputer graphics (images)GraphicsSet (abstract data type)Parallel Computing and Optimization TechniquesSoftware Testing and Debugging TechniquesSecurity and Verification in Computing