NextGenTrigger Task 1.7
- Implementing our SoA code in MadGraph, together with
- Stefan Roiser
- Daniele Massaro
- No news
Implement NGT SoA Code in O2 standalone benchmark
- Working on this fork of the AliceO2 repo, with a CI pipeline:
- Running on NGT hardware with 4 different GPUs (Nvidia and AMD)
- Extended CI-pipline to fail if GPU.out changes
- Implemented SoA in:
- SectorTracker
- GPUTPCBaseTrackParam
- GPUTPCTrackParam
- GPUTPCTracklet
- GPUTPCTrack
- Went back from CRTP to classical inheritance
- Implemented new way of providing iterators in O2: https://godbolt.org/z/haas6YP6c
- Issues since the latest updates of O2:
- CI-pipelines on the NGT cluster fail (problem of missing libraries)
- GPUs that are not inherently supported by the new O2 fail (thanks Gabriele for the workaround)
- Missing build dependencies on CVMFS (Giulio is on it)
- Next Steps:
- Adapt unit test to the changes
- Adapt benchmarks to the changes
- Make better use of SoA to improve performance
- Try David's suggestion
Issues with AMD W7900 after updating to latest O2
- Providing a .par file with certain Parameters results in non-deterministic behavior, despite deterministic mode.
- Can't create my own .par files with
dumpGPUDefParam.C of newest O2. Yields error incompatible launch bounds.
- Changing FindO2GPU.cmake so that the VEGA or TAHITI setting are applied, results in compilation error:
static_assert(NTHREADS == GPUCA_WARP_SIZE)
- The only parameters that worked on W7900 are the ones for MI100 with WARP_SIZE changed to 32.
- Other parameters (e.g. RDNA) yield deterministic behavior, but with a (slightly) different GPU.out than obtained wit other GPUs.
Moreover:
- In my setting, I couldn't just add new GPUs to
GPUParameters.csv: The headers of the newly added GPUs were created, but not the corresponding .par files.
- In
GPUParameters.csv, the AMD GPUs RDNA and MI210 are missing, but they show up in FindO2GPU.cmake. Is this intended?