• SMatrix GPU implementation testing: follow-up to Maksym's work for the single matrix
    • Tests now focus on SMatrix<double, N=3>, which is what is used on DCA fitter. The new tolerance is 1e-8.
    • Added benchmark for timing.
    • Extended also to 1e6 simultaneous inversions.
  • Porting of the DCAFitterN class on GPU: https://github.com/AliceO2Group/AliceO2/pull/13365
    • Applied some of the usual massage to make the DCAFitterN.h code ROOT and STD library agnostic.
    • This does not compile on GPU. Notably, there are currently three main issues:

      • When I try to create a library with, e.g. nvcc, it does not realise GPUCA_GPUCODE_DEVICE should be defined in the device code (see DCAFitterN.cu).

      • Equivalent GPU-portable versions of ROOT::Math::Dot and ROOT::Math::Similarity functions are already present in the SMatrixGPU.h file but are not yet connected to the aliasing in Cartesian.h.
      • I am probably missing some detail in the usage of the forward-declared classes in GPUROOTSMatrixFwd.h since I end up having incomplete types when I try to compile any o2::GPU::gpustd::array<SVectorGPU<float, 3>>.
  • ITS GPU tracking resumed: https://github.com/AliceO2Group/AliceO2/pull/13383/files
    • HIP tracking results diverge now, even in deterministic mode, for no apparent reason investigating.
    • CUDA~CPU are still consistent in deterministic mode