Alice Weekly Meeting: Software for Hardware Accelerators / PDP-SRC - MINUTES ONLY
→
Europe/Zurich
-
-
10:00
→
10:20
Discussion 20mSpeakers: David Rohr (CERN), Giulio Eulisse (CERN)
-
10:20
→
10:25
Following up JIRA tickets 5mSpeaker: Ernst Hellbar (CERN)
Preparation of RC operation closeout meeting
- estimate of number of TPC clusters compared to 2023
- reconstruction using 50 rawTF files each from the 2023 and 2024 replay dataset
- 2024 <IR> = 45 kHz
- 2023 <IR> = 42 kHz, but with larger spread between 40 and 44 kHz
- obtaining number of clusters from printed reco output
- average number of TPC clusters per event = average number of TPC clusters per second / average IR
- average number of TPC clusters per second = average number of TPC clusters per timeframe * number of timeframes per second
- average number of TPC clusters per event = average number of TPC clusters per second / average IR
- numbers (TPC clusters per event) scaled to 50 kHz
- 2024: 764000
- 2023: 842000
- this estimate is 10% off of what David reported at the end of last year, which was 710000 at 47 kHz
- to be understood, probably differences in how the numbers were obtained?
- this estimate is 10% off of what David reported at the end of last year, which was 710000 at 47 kHz
- reconstruction using 50 rawTF files each from the 2023 and 2024 replay dataset
- estimate of number of TPC clusters compared to 2023
-
10:25
→
10:30
TPC ML Clustering 5mSpeaker: Christian Sonnabend (CERN, Heidelberg University (DE))
-
10:30
→
10:35
ITS Tracking 5mSpeaker: Matteo Concas (CERN)
ITS GPU tracking
- General priorities:
- Focusing on porting all of what is possible on the device, extending the state of the art, and minimising computing on the host.
- Optimizations via intelligent scheduling and multi-streaming can happen right after.
- Kernel-level optimisations to be investigated.
- Tracklet finding: fully ported, PR: https://github.com/AliceO2Group/AliceO2/pull/13737
- TODO:
- Reproducer for HIP bug on multi-threaded track fitting: no progress yet.
- Move remaining track-finding tricky steps on GPU: started
- Fix possible execution issues and known discrepancies when using
gpu-reco-workflow
: no progress yet; will start after the tracklet finding is ported.
DCAFitterGPU
- Deterministic approach via using
SMatrixGPU
on the host, under particular configuration: no progress yet.
- General priorities:
-
10:35
→
10:45
TPC Track Model Decoding on GPU 10mSpeaker: Gabriele Cimador (Universita e INFN Trieste (IT))
-
10:45
→
10:55
Efficient Data Structures 10mSpeaker: Dr Oliver Gregor Rietmann (CERN)
Efficient Data Structures
Context
- Create data structures for controling the data layout (AoS vs SoA)
- These data structures should hide the underlying data layout.
- We want to change the underlying data layout without affecting the code using it.
Using std::span
We can now create and manage instances of S with F == std::span. The code below shows of it works. For the implementation of the classes S and wrapper::wrapper, refer to the link to the compiler explorer on Indico.
std::size_t N = 18;
std::vector<int> x(N);
std::vector<int> y(N);
std::vector<Point2D> point(N);
std::vector<std::string> identifier(N);
wrapper::wrapper<std::span, S, wrapper::layout::soa> my_array = {{x, y, point, identifier}};Factory Functions for Using an Existing Buffer
The code below shows how to use the factory function factory::make_wrapper to create an AOS vs SOA wrapper instance using an existing buffer. For the implementation of the factory function, refer to the link to the compiler explorer on Indico.
constexpr std::size_t bytes = 1024;
char buffer[bytes];
// change "soa" to "aos" in the line below
auto my_array = factory::make_wrapper<S, wrapper::layout::soa>(buffer, bytes);
-
10:00
→
10:20