University of Twente Student Theses
Hybrid compilation between GPGPU and CPU targets for Rust
Aukes, Niek (2024) Hybrid compilation between GPGPU and CPU targets for Rust.
PDF
533kB |
Abstract: | Compiling code using both the CPU and GPU has been gaining traction over the last decade. Especially Python has seen many of these innovations added via packages, such as Numba. However, compiled languages have not seen this same growth. This research proposes a new compiler exten- sion to allow writing GPU kernels in native Rust – a language for reliable, high-performance systems programming. Presently, it is impossible to share code between the host (CPU) and device (GPU) within the Rust solutions for hybrid programming. Our approach represents an initial advancement in this area: We made modifications to the Rust compiler to establish the foundation for a hybrid compilation process. These modifications include: (i) enabling the parsing of kernels defined in Rust for subsequent GPU com- pilation, and (ii) developing a method for accessing the generated kernel bytecode (GPU) from the host Rust code. Additionally, we created a set of li- braries to facilitate kernel launching and execution, along with ensuring safe memory management. Our extended compiler and the libraries necessary for executing the GPU kernels in Rust are publicly accessible. |
Item Type: | Essay (Bachelor) |
Faculty: | EEMCS: Electrical Engineering, Mathematics and Computer Science |
Subject: | 54 computer science |
Programme: | Computer Science BSc (56964) |
Awards: | Best Track paper award |
Link to this item: | https://purl.utwente.nl/essays/100981 |
Export this item as: | BibTeX EndNote HTML Citation Reference Manager |
Repository Staff Only: item control page