What you will do:
- Use LLVM's Clang frontend to transform annotated C code into the internal representation (IR) used by LLVM.
- Apply the LLVM optimizer for the GPU target architecture.
- Adapt the LLVM code generator to produce an output CUDA code.
- Create an automated tool that encompasses the above steps.
- Compare with the existing C-to-CUDA translator Mint, with respect to the performance of the generated CUDA code.
- Extend the new automated tool to also generate hybrid OpenMP and CUDA code, to target heterogeneous CPU-GPU systems.
What you will learn:
- Advanced use of the LLVM compiler infrastructure
- Basic CUDA programming
- Basic OpenMP programming
- How to use heterogeneous CPU-GPU systems
Qualifications:
- Good (serial) programming skills
- Entrance-level knowledge of numerical methods
- A lot of courage and dedication