View Item 
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        JavaScript is disabled for your browser. Some features of this site may not work without it.

        Browse

        All of UU Student Theses RepositoryBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

        A Vulkan Backend for Accelerate

        Thumbnail
        View/Open
        Thesis-Xinliang_Lu-final_version.pdf (1.052Mb)
        Publication date
        2024
        Author
        Lu, Xinliang
        Metadata
        Show full item record
        Summary
        With the continuous advancement of parallel hardware, and the growing demand for cross-platform high-performance computing, Vulkan, as an open standard and cross-platform, low-overhead, low-level library for 3D graphics and computing, has emerged noticeably. The vast majority of scientific software, however, only supports executing programs on NVIDIA graphics processing units (GPUs) due to various reasons. Accelerate, a domain-specific language (DSL) for high-performance array computation in the functional programming language -- Haskell, is one example that traditionally relies on CUDA for GPU acceleration. This thesis presents the development of a Vulkan backend for Accelerate, enabling general-purpose GPU computing on a broader range of hardware. The main contribution includes the design and implementation of a code generator for the OpenGL shading language (GLSL), which is a language for building the Vulkan computing kernel. The code generator supports most primitive scalar operations in Accelerate. Additionally, a runtime for the Vulkan backend was developed. Experimental results demonstrate that the Vulkan backend offers competitive performance compared to the CUDA backend, proving its viability as an alternative. However, Vulkan extension support across various platforms poses the biggest limitation of our work, restricting the ability to run programs on certain devices. Beyond technical contributions, this thesis also provides comprehensive introductions to the components of Accelerate and the features of Vulkan. We hope to provide extensive learning material for those interested in the Vulkan compute pipeline and possibly developing a Vulkan backend for similar DSLs.
        URI
        https://studenttheses.uu.nl/handle/20.500.12932/47433
        Collections
        • Theses

        Related items

        Showing items related by title, author, creator and subject.

        • Compiling an Haskell EDSL to C: A new C back-end for the Copilot runtime verification framework 

          Dedden, F.H. (2018)
          Electronics and computers are all around us, ranging from cellphones to aircraft avionics. Some systems, including aircraft and nuclear powerplants, are considered safety-critical: failure can lead to the injury or death ...
        • The Agda UHC Backend 

          Hausmann, P. (2015)
          This thesis studies how we can facilitate combined Haskell/Agda developments. As foundation for our research we have created the Agda UHC backend, targeting the intermediate Core language of the Utrecht Haskell Compiler. ...
        • A backend for excuting machine learning models stored in the Open Neural Network Exchange format. 

          Fatah, Youssef (2024)
          This thesis investigates the effectiveness of using ONNX-based machine learning models to simulate cellular automata, specifically focusing on Conway’s Game of Life. The primary goal is to evaluate how well an ONNX-based ...
        Utrecht university logo