We are looking for skilled and motivated undergraduate students to work on several projects in the LLVM Research Group. We are a group in the Illinois CS Department led by Prof. Vikram Adve, and we focus on building compilers for heterogeneous parallel systems and novel hardware. We are currently looking for multiple students to work on a variety of projects as listed below. All these projects are open projects, and we are looking for students who are interested in working with us long term. As such, we require a commitment of 15 hours per week for Fall and Spring terms, and 40 hours per week for Summer.
The pay will be based on seniority level with an average of $17.00/hour.
Candidates for any of these positions should possess the following skills:
x Highly motivated and willing to learn
x Able to work with other students in a team
x Strong interest in research, preferably in going on to a PhD
x Good communication skills, including writing and presentation skills
1) Parallelizing Cpp Programs :
We are looking for a student to work on parallelizing Cpp applications using HeteroCpp, a parallel extension of Cpp. HeteroCpp uses the HPVM compiler infrastructure to parallelize programs for a wide range of heterogeneous parallel systems, including GPUs, FPGAs, and custom accelerators.
A good candidate will possess the following skills:
x Good programming skills in C Cpp
x Experience with any parallel programming language (e.g. OpenMP, CUDA or OpenCL)
x Familiarity with revision control and good open source software development practices
The following additional skills would be a strong plus to have but are not required:
x Familiarity with OpenCL basics and or OpenCL Runtime
x Experience with large software systems, including build systems, testing, documentation, and open source development.
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu) and PhD Students Adel Ejjeh (aejjeh at illinois dot edu) and Rafae Noor (arnoor2 at illinois dot edu).
2) Core HPVM Project:
We are looking for a student to work on the core of our compiler infrastructure and help with maintaining the compiler and porting new applications. Tasks may include modifying or writing LLVM passes and or porting new application workloads to our frontend language, HeteroCpp.
A good candidate will possess the following skills:
x Good programming skills in C Cpp
x Familiarity with revision control and good open source software development practices
The following additional skills would be a strong plus to have but are not required:
x Familiarity with LLVM and or experience writing LLVM passes
x Familiarity with any parallel programming language (e.g. OpenMP)
x Familiarity with OpenCL basics and or OpenCL Runtime
x Experience with large software systems, including build systems, testing, documentation, and open source development.
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu) and PhD Students Adel Ejjeh (aejjeh at illinois dot edu) and Rafae Noor (arnoor2 at illinois dot edu).
3) HPVM2FPGA Project:
We are looking for a student to work on our FPGA and compiler related research and help enhance our compiler infrastructure. Tasks may include modifying or writing LLVM passes, porting new application workloads to our frontend language (HeteroCpp), working with OpenCL runtime, and supporting our LLVM based FPGA backend.
A good candidate will possess the following skills:
x Good programming skills in C Cpp
x Familiarity with revision control and good open source software development practices
The following additional skills would be a strong plus to have but are not required:
x Familiarity with LLVM and or experience writing LLVM passes
x Familiarity with FPGAs and FPGA programming using Intel OpenCL
x Experience with large software systems, including build systems, testing, documentation, and open source development.
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu) and PhD Student Adel Ejjeh (aejjeh at illinois dot edu).
4) Tensor LLVM Extensions Project:
We are looking for a student to work on our project to extend the LLVM compiler infrastructure with high level tensor abstractions. The RFC for our work can be found here. The tasks will involve modifying or writing LLVM passes, and reading and understanding the implementation details of various production compilers such as XLA, Halide, TVM, etc. The extensions involve challenges from both the front end (e.g. going from high level frameworks such as Tensorflow to LLVM) and the backend (e.g. going from LLVM IR to target specific ISA).
A good candidate will possess the following skills:
x Good programming skills in C Cpp
The following additional skills would be a strong plus to have but are not required:
x Familiarity with LLVM and or experience writing LLVM passes
x Familiarity with XLA or Halide
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu) and PhD Students Akash Kothari (akashk4 at illinois dot edu) and Rafae Noor (arnoor2 at illinois dot edu).
5) Compiler Orchestration Project:
We are looking for a student to work on our project to compose existing compilers or program optimizers, in order to reap the benefits of these tools at once. Performance optimizers for deep learning models are a major part of these tools, but we also include tools for other goals in other domains. Applied one by one naively, these tools may negate the optimization effect of each other or be downright incompatible, which is the main challenge.
Tasks may include 1. reading documentation and code (mostly in Python and Cpp) to understand the idea and details of various optimization tools, such as TASO and TVM, and 2. writing code to test these tools on certain benchmarks or applications.
A good candidate will possess the following skills:
x Good programming skills in Python and familiarity with C Cpp
The following additional skills would be a strong plus to have but are not required:
x Familiarity with deep learning frameworks such as PyTorch
x Experiences exploring any big system with large codebase
x Familiarity with key ideas of compilers and or LLVM specifically
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu), Prof. Sasa Misailovic (misailo at illinois dot edu), and Ph.D. Student Yifan Zhao (yifanz16 at illinois dot edu).
6) Machine Vision for Wilidlife Detection (International Collaboration):
We are looking for a student to work on a computer vision application to detect intrusive wildlife that commonly cause destruction to production crops, including animals such as monkeys and wild boar. This is a collaborative project with a team in Bhutan, where wildlife intrusions are commonplace, especially in mountainous areas, and alternative solutions such as electric fencing have proved unreliable and inadequate.
A good candidate will possess the following skills:
x Good programming skills in Python, and ML frameworks such as PyTorch, TensorFlow, Keras, or similar.
x Experience designing and training neural networks for computer vision problems, especially classification, segmentation, and tracking.
x Familiarity with revision control and good open source software development practices
The following additional skills would be a strong plus to have but are not required:
x Experience with computer vision problems in adverse and dynamic lighting conditions, especially open air conditions.
x Experience with installing, configuring and using video cameras.
x Experience with large software systems, including build systems, testing, documentation, and open source development.
If interested, please forward your resume and transcript to Prof. Vikram Adve (vadve at illinois dot edu). Prof. George Gollin (Physics, UIUC) also collaborates on this project.