Not logged in. Login

Project Definitions

Students may choose from several project types for this course. All projects must involve existing open-source technologies that specifically target the use of SIMD instructions. Students work in groups of 2.

There are three broad categories from which projects may be chosen.

  1. Pure LLVM: projects that involve the LLVM compiler infrastructure alone.
  2. Parabix+LLVM: projects that involve the Parabix plus LLVM framework.
  3. External: projects that involve some significant compiler technology outside of the Parabix or LLVM frameworks, such as the Intel SPMD Compiler.

Pure LLVM projects can be tackled in a semi-independent manner without dependencies on the current state of Parabix technologies. Choosing a pure LLVM project may be quite useful in developing a personal portfolio demonstrating your ability to do compiler and systems programming work to important companies that use LLVM technology.

Assignment: Project Proposal

Each group must prepare a project proposal for the course project with the following elements.

  • An introduction to the project
  • An *annotated* list of resources (bibliography, web links)
  • An introductory example showing the kind of translation that the project should achieve.
  • A web page/site having all of the above for presentation in class on Friday, June 18.

Pure LLVM Projects

There are many types of pure LLVM projects that could be tackled. Some of these may be motivated the SIMD processing needs of Parabix, but do not involve directly working with Parabix technology.

  • Language design for SIMD. Investigate language features or designs that are intended for SIMD operation.
  • IR transformation for SIMD. Investigate front-end IR passes (analyses and/or transformations) that support SIMD programming.
  • Back-end code-generation projects. These projects involve improving the SIMD code generation for some particular back-end such as x86/AVX2, Arm Neon, Power PC Altivec. You must improve the existing LLVM code generation for the target and show that it improves performance using some benchmark applications. (Note: icgrep could be used as a benchmark application)

Parabix + LLVM Projects

Updated Fri June 04 2021, 12:18 by cameron.