cms-patatrack / pixeltrack-standalone

Standalone Patatrack pixel tracking
Apache License 2.0
17 stars 35 forks source link

[alpakatest] Support all alpaka backends at the same time #356

Closed fwyzard closed 2 years ago

fwyzard commented 2 years ago

Support serial, TBB, CUDA and ROCm at the same time.

Split compilation by backend:

Add forward declaration for alpaka templates and types (thanks to Matti for the idea). Add explicit instantiation definitions and declarations to the initialisation code, and move it to the AlpakaCore "portable" library. Use new pinned host memory functionality, introduced in the latest alpaka update.

Update alpaka the fwyzard/develop private branch, pending integration upstream. Relevant changes include:

fwyzard commented 2 years ago

Compiled with, for example

make -j`nproc` alpakatest CUDA_BASE=/usr/local/cuda-11.5.2 CUDA_ARCH=61 ROCM_BASE=/opt/rocm-5.0.2

the rsulting alpakatest binary supports --serial, --tbb, --cuda and --hip.

fwyzard commented 2 years ago

(I accidentally deleted this branch, I re-opened a new PR at #357)