The Illinois LLVM Research Group excited to announce the release of HPVM v2.0. HPVM is a retargetable compiler infrastructure for heterogeneous parallel systems that targets CPUs, GPUs, and FPGAs, and has been used for other domain-specific accelerators. HPVM uses a target-independent compiler IR that extends the LLVM compiler IR with an explicit, hierarchical dataflow graph representation that captures task, data, and (streaming) pipelined parallelism.
This new release introduces several significant new features into the HPVM infrastructure, as well as bug fixes and improvements. The main additional components in this release are:
- The Hetero-C++ front end: A new front end language for HPVM that makes it much simpler and cleaner to parallelize C/C++ applications for HPVM compilation. Hetero-C++ describes hierarchical task level and data level parallelism which directly lower to HPVM dataflow graphs.
- An FPGA back end for HPVM: A new back end for HPVM allowing us to target Intel FPGAs. The back end uses the Intel FPGA SDK for OpenCL, so any Intel FPGA supported by the SDK can be targeted with our new back end.
- An optimization and design space exploration (DSE) framework: A framework that consists of compiler optimizations and design space exploration designed to automatically tune programs for a given hardware target. The framework includes a performance model for Intel FPGAs, and provides the capability to use a custom evaluation script that allows targeting any other devices supported by HPVM. The compiler optimizations included in the optimizer consist of both HPVM-DFG-level and standard LLVM-level optimizations.
- LLVM upgrade: HPVM has been upgraded to LLVM 13.0.
- Code reorganization: Code base and library / tool structure have been reorganized to be more logical and easier to navigate.
- Testing infrastructure enhancements: More lit tests have been added for all the different components of HPVM.
As always, you can find the new release in our open source repository. More information about HPVM can also be found on our official website. For any questions or feedback, please feel free to contact us on our mailing list at firstname.lastname@example.org.