-
Notifications
You must be signed in to change notification settings - Fork 483
ITS: Fix GPU deterministic mode + refactoring #14200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
|
Error while checking build/O2/fullCI_slc9 for 8be3ee5 at 2025-04-17 22:43: Full log here. |
|
Error while checking build/O2/fullCI_slc9 for 55f819d at 2025-04-18 12:04: Full log here. |
|
Hi, thanks for looking into this. As per usual it would be better to separate code refactoring from small fixes. Can you split it in two? |
0f2af3b to
9287962
Compare
|
Sure, now first commit is the actual fix, second the refactoring work done in GPU kernel code, the third is the refactoring of the hybrid/cpu call chain. |
- compute-sanitizer reveal malicious write past allocated table - ZBins for map lookup was not taken from params
- Removes unused headers - adds two new functions for ex/in-clusive scan via cub - inlines square - applies deterministc mode blocks=1,threads=1 to all kernels

Fixes two things for ITS GPU to be deterministic again.
AliceO2/Detectors/ITSMFT/ITS/tracking/GPU/cuda/TrackingKernels.cu
Line 87 in 8c94458
Takes ZBin which is constexpr 256 but should be taken from params which set it to 64.
AliceO2/Detectors/ITSMFT/ITS/tracking/GPU/cuda/TrackingKernels.cu
Line 1285 in 8c94458
Should be
foundSeedsTable.size(), since we can find more seeds thannCells.with this I get (although there still are some bins with ~0.01% difference in 10 pp TFs. Any idea why?
The rest is mostly a refactoring which mostly happened on-the-fly especially the
clusterToTracksImplsince I wanted to be sure that both algorithms do not diverge at any point.