Tags: AliceO2Group/AliceO2
Tags
GPU: give Metal an IEEE-754 binary64 in software (#15866)
Fix the vertical position of IB FPC resistors (#15876)
Restrict the TRD PAI model to 14 particle species Reduce the Geant4 initialisation time by setting up the PAI model only for the charged species that matter in the TRD gas, instead of all 99. This reduces the PAI setup from 0.81 s to 0.11 s per o2-sim worker. | | all (99) | 14 species | |---------------------------------------------|-------------------|------------| | PAI model instances | 99 | 14 | | PAI setup time | 809 ms | 113 ms | | boxgen, 1 event: hits / steps | 14986 / 17871 | identical | | 5 pythia8pp events: hits / steps | 456275 / 530601 | identical | | 5 pythia8pp events: TRD hits / total charge | 69847 / 2.42322e6 | identical | Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fix Hybrid example including new HepMC parameters
GPU: extend two existing OpenCL device workarounds to Metal Both of these already exist for OpenCL, for reasons that apply unchanged to Metal. The processing settings block in GPUSettingsList.h is skipped for OpenCL because it declares std::string and std::vector members, which GPUSettings.h explicitly does not include for device code. Metal needs the same exclusion. These configs are host-side only: GPUParam carries GPUSettingsRec and GPUSettingsParam, and the processing settings appear only as pointer arguments to host methods, so nothing transferred changes shape. GPUCommonBitSet already carries an extra constructor for OpenCL's __constant. Metal needs the opposite: MSL will not use a user-declared copy constructor to build an object in the constant address space, which is where GPUconstexpr() arrays of bitset live, and leaving the copy constructor implicit makes them constructible again. That one line accounted for 84 of the remaining diagnostics, across DetID and GlobalTrackID. Metal translation unit: 136 errors to 27.
GPU: route noexcept through GPUnoexcept() for Metal MSL rejects the noexcept specifier outright, with a diagnostic of its own: "'noexcept' is not supported in Metal". It applies to free functions, to function templates and to out-of-line member definitions alike; only a noexcept inside a class body slips through, which does not help a header that defines its members out of line.
Use the LHC orbit duration for CTP scaler rates This fixes the orbit-to-time conversion in the CTP scaler rates. - Rates used 88 us per orbit instead of 88.92 us, so they were 1.05 % too high. - For run 569757 (2 colliding bunches) this put the TVX rate above the colliding-bunch rate. - The conversion now uses o2::constants::lhc::LHCOrbitMUS, as getRatesForIndex already does. https://its.cern.ch/jira/browse/O2-7064 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PreviousNext