Alice Weekly Meeting: Software for Hardware Accelerators / PDP-SRC - MINUTES ONLY

Europe/Zurich
Zoom Meeting ID
61230224927
Host
David Rohr
Useful links
Join via phone
Zoom URL
    • 10:00 AM 10:20 AM
      Discussion 20m
      Speakers: David Rohr (CERN), Giulio Eulisse (CERN)
    • 10:20 AM 10:25 AM
      Following up JIRA tickets 5m
      Speaker: 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
        • 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?
    • 10:25 AM 10:30 AM
      TPC ML Clustering 5m
      Speaker: Christian Sonnabend (CERN, Heidelberg University (DE))
    • 10:30 AM 10:35 AM
      ITS Tracking 5m
      Speaker: 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.
    • 10:35 AM 10:45 AM
      TPC Track Model Decoding on GPU 10m
      Speaker: Gabriele Cimador (Universita e INFN Trieste (IT))
    • 10:45 AM 10:55 AM
      Efficient Data Structures 10m
      Speaker: 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);