HIP Library, main branch (2025.11.13.)#1193
HIP Library, main branch (2025.11.13.)#1193krasznaa wants to merge 3 commits intoacts-project:mainfrom
Conversation
08d35fa to
dcedeab
Compare
|
Hi Attila, Great to see this. |
|
We need to have a serious conversation about the number of backends that we have now. If this PR goes in, we have four different methods of targetting AMD GPUs (HIP, Kokkos, Alpaka, SYCL), or which three (HIP, Kokkos, Alpaka) deliver exactly the same code to the ROCm compiler and can therefore, almost by definition, not lead to any meaningful performance benefits. As with all the backends for traccc, this puts the maintenance burden on the people actually developing the algorithms. We've gone from having to duplicate all our changes twice to three times to four times and now to five times. It's not a sustainable development model. |
|
Alpaka and hip tests work fine for me, without getting into bigger issues. |
dcedeab to
9abb85d
Compare
9abb85d to
e410533
Compare
|
e410533 to
931e7bf
Compare
|
Unfortunately I was having a very difficult time building So... 🤞 |
931e7bf to
18f06c2
Compare
Added mostly infrastructure code to it at first, along with a clusterization algorithm. All absolutely based on the CUDA code, with very minimal changes.
18f06c2 to
30e9eee
Compare
|



This all started out with me trying to see if CoPilot would be able to do all of this automatically / by itself. Unfortunately that all worked very poorly, so I rather did the whole migration by hand in the end. 😦
But still, I wanted to start making a
traccc::hiplibrary finally.To start things off, I converted
traccc::cuda::clusterization_algorithminto atraccc::hip::clusterization_algorithm. Code-wise it was pretty much a copy-paste, with acuda => hipreplacement applied. The only tricky part was to convince the build system to behave more or less reliably.Which for me specifically it by now does. But I'll need some additional eyes as well. @StewMH, please have a look. Specifically at what ( did to the setup of rocThrust. As it was giving me a world of hurt. 😦
For now I didn't do anything specific to the CI setup. But (for me a bit) surprisingly
TRACCC_BUILD_HIPis already exercised by the"ALPAKA HIP SYCL"build. 😕 @StewMH, should we take things a bit more apart? The Alpaka build should really only test builds through Alpaka. I'd rather test the build of "native HIP code" in a separate CI job. Or rather, ideally we'd add 2 new CI jobs. One building the HIP code with its AMD backend, and another one using the NVIDIA backend. As one can very easily break either one of these without breaking the other. 😦