TODOs (help welcome)
- validate new features if they also work on GPU
- deltaROF tracking currently not working have to check why and fix
- otherwise everything used in production should be there
- porting Vertexing code to GPU (in progress)
- optimize GPU part:
- `started` using multiple streams very much in its infancy
- optimise load times/processing etc. (probably [not measured] parts could be improved)
- optimise number of blocks/threads per kernel (for Pb-Pb + pp sep., fairly small number of kernels to be optimised)
- Aranged meeting with Gabriele (after his vacation)
- How difficult is it to also set up RTC for ITS kernels?
- Have a CI procedure/periodic check that runs ITS GPU reconstruction and then gets some automatic checks and numbers (deterministic mode is more important)
- Ensure gpu-reco-workflow with ITS enabled are the same that one gets from its-reco-workflow --gpu
- Erroneous assumption in reproducer, for ITS cluster squashing (merging of clusters across readout-frames) has been disabled online, effectively disabling perfect compression and increasing storage requirements, in async prod. squashing is enabled though (of course)
- added env var to reclusterize in dpl-workflow.sh
- could test for pp processed 1000 TFs with TPC, ITS successfully
- PbPb might be problematic, need to understand when GPU memory is freed using the framework allocator
- saw an increase in dropped TFs (dropped meaning ITS code exceeded avail. memory, caught the std::bad_alloc and outputted 0 tracks, not crashing processing) using TPC, ITS GPU in high int. rate (40kHz) Pb-Pb
(request by David&Vasco for some ALICE3 hardware estimates with current algorithm, we have some ideas but need to refine a bit)