It’s one of the age-old problems of software development: You’ve started a new project, set up fancy CI infrastructure, and everything works well. But as time goes on, you add more and more features to the project. Compile-times on your local checkout of the projects are mostly fine as you are used to incremental compilation, and full recompilations are only occasionally required. But your CI pipelines compile the project from scratch every time, and they start to take while. And then a long time. And then a really long time.
So too was the problem for rocPRIM, a ROCm library that provides GPU-accelerated parallel primitives, written in AMD’s HIP programming language. While rocPRIM itself is written as a header-only library due to the many templated primitives it exposes, tests and benchmarks create a large number of different instantiations of parallel primitives that blow up the compile times. Let’s look at some ways to improve the compile times of such HIP projects.
Continue reading “HIP Compiler Acceleration”










