Skip to content

Conversation

@pietroGru
Copy link
Contributor

@pietroGru pietroGru commented Mar 19, 2025

PR 47629

Description

Pull request to merge an heterogeneous implementation of the silicon strip unpacker/clusterizer SiStripClusterizerFromRaw module (legacy), whose purpose is producing strip clusters from raw FED data.

Legacy and heterogeneous implementations of the unpacker/clusterizer share both unpacking and clustering algorithms, with the heter. version having the needed generalizations to allow for parallel implementation.

Overview of the implementation

Details of the heterogeneous implementation can be found in here[1], while a summary is presented below. The parallel implementation consists of:

  • the ESProducer called SiStripClusterizerConditionsESProducerAlpaka. It is analogous to the legacy SiStripClusterizerConditionsESProducer. It has the purpose of reshuffling the strip conditions (good strips, cabling, etc.) in a more convenient portable format for the parallel algo;
  • the SiStripRawToCluster (alpaka stream::SynchronizingEDProducer). It takes the input RawFEDCollection and unpacks the fed raw bytes into pairs of (strip, ADC) - henceforth referred as strip digi. It performs the clusterization of the strip digi according to the ThreeThreshold algo. Finally, the resulting digi and cluster data are exported as SoA collections;
  • the SiStripClustersToLegacy (edm global::EDProducer) EDProducer, which is a cpu producer converting the clusters and digi SoA collections into the legacy format used downstream by other modules (DetSetVector<SiStripCluster>, with digi amplitudes as SiStripCluster members).

The two DataFormats are introduced:

  • SiStripClusterSoA, which contains the data members of SiStripCluster legacy class reshuffled into a PortableCollection SoA;
  • SiStripDigiSoA, as above but for the SiStripDigi class.

MaxSeedStrips
As explained in [1], the clusterizer's parallel implementation requires to pre-allocate the cluster candidate collection (host operation) at a time where the total number of cluster candidates is not known. Therefore, the MaxSeedStrips parameter is introduced in the parallel version. It determines the maximum number of cluster candidates per event that can be produced.

It is configurable during module setup. The sensitivity of clusters produced as a function of this parameter is investigated with PU MC run [2]. The default value is set to $2e5$. The parameter can be personalized with

process.hltSiStripRawToClustersFacilityAlpaka.Clusterizer.MaxSeedStrips = cms.uint32(200000)

Physics validation

The heterogeneous module is validated by comparing the track quality with respect to legacy, and by looking at the strip DQM plots [7], using 9400 events from the dataset /RelValTTbar_14TeV/CMSSW_15_0_0-PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/GEN-SIM-DIGI-RAW with the menu /dev/CMSSW_15_0_0/GRun/V76 running MC_ReducedIterativeTracking_v24 path only in CMSSW_15_0_6.

Validation plots are available here [8], with the recipe to reproduce (and files) reported in the accordion below.

Recipe
Steps

Preparation of step 1 (hltx_trackingOnly_MC_1.py) configuration files:

hltGetConfiguration /dev/CMSSW_15_0_0/GRun/V76 --globaltag 142X_mcRun3_2025_realistic_v7 --mc --unprescale --output minimal --eras Run3_2025 --l1-emulator uGT --paths MC_ReducedIterativeTracking_v24 --max-events 1000 --input /store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root &> hltx_trackingOnly_MC_1.py

The step 2 for the HLTRACKVALIDATOR process is available in [9].

The step 3 is the standard harvester for hltMerged [10].

For example, the following script is used to generate legacy/alpakaGPU/alpakaSerial files

#!/bin/bash
for i in {1..10}; do
  echo ">>> Iteration $i"

  cp hltx_trackingOnly_MC_$i.py hltx_trackingOnly_MC.py
  ## Legacy
  cmsRun hltx_trackingOnly_MC_legacy.py &> step1_legacy.log$i
  cmsRun hltValidation_default.py --appendStr _legacy &> step2_legacy.log$i
  cmsRun Harvesting.py --appendStr _legacy &> step3_legacy.log$i
  mv DQM_V0001_R000000001__Global__CMSSW_X_Y_Z__RECO.root step3_legacy.$i.root
  rm step1_legacy.root
  mv step2_legacy_DQMoutput.root step2_legacy_DQMoutput.$i.root

  ## Alpaka GPU
  cmsRun hltx_trackingOnly_MC_alpaka.py --moduleBackend cuda_async &> step1_alpakaGPU.log$i
  cmsRun hltValidation_default.py --appendStr _alpakaGPU &> step2_alpakaGPU.log$i
  cmsRun Harvesting.py --appendStr _alpakaGPU &> step3_alpakaGPU.log$i
  mv DQM_V0001_R000000001__Global__CMSSW_X_Y_Z__RECO.root step3_alpakaGPU.$i.root
  rm step1_alpakaGPU.root
  mv step2_alpakaGPU_DQMoutput.root step2_alpakaGPU_DQMoutput.$i.root

  ## Alpaka CPU
  cmsRun hltx_trackingOnly_MC_alpaka.py --moduleBackend serial_sync &> step1_alpakaCPU.log$i
  cmsRun hltValidation_default.py --appendStr _alpakaCPU &> step2_alpakaCPU.log$i
  cmsRun Harvesting.py --appendStr _alpakaCPU &> step3_alpakaCPU.log$i
  mv DQM_V0001_R000000001__Global__CMSSW_X_Y_Z__RECO.root step3_alpakaCPU.$i.root
  rm step1_alpakaCPU.root
  mv step2_alpakaCPU_DQMoutput.root step2_alpakaCPU_DQMoutput.$i.root
done

mv ./*.root ./data/
mv ./*.log* ./logs/
Files
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
/store/relval/CMSSW_15_0_0/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_142X_mcRun3_2025_realistic_v7_STD_2025_PU-v3/2580000/067c3ad3-f8cf-493a-9511-57ec6d2ff29e.root
Early validation (in CMSSW_15_1_0_pre1)

An early validation was done on a smaller number of events (731) from /store/mc/Run3Winter25Digi/TT_TuneCP5_13p6TeV_powheg-pythia8/GEN-SIM-DIGI-RAW/TrkFEVT_142X_mcRun3_2025_realistic_v7-v2/910002/0157fbd9-e915-4a10-bfe2-11db61e2b70d.root of PU MC data, in CMSSW_15_1_0_pre1 with /dev/CMSSW_15_1_0/GRun/V3 running only MC_ReducedIterativeTracking_v22 path [5].

Deviations were found between the legacy and heterogeneous (i.e. see [5.1]) and discussed on Tracking POG meeting [6]. A cluster excess O(1) is found in the heterogeneous with respect to legacy having occurrence of O(12/500) events. The deviation legacy-heterogeneous was considered to have negligible impact on the performance by tracking experts during [6].


Timing

The most recent timing measurement is reported below, using Run2025 data Run392642 with L1 L1Menu_Collisions2025_v1_1_1-d2 and HLT /dev/CMSSW_15_0_0/GRun/V76, GlobalTag 150X_dataRun3_HLT_v1 in CMSSW_15_0_6 release

configuration throughput (time/ev)_avg =
unpacking+clustering (+legacy conversion)
ECAL-GPU
legacy[D] 545.9 ± 2.7 evt/s 34.2 ms =
hltSiStripRawToClustersFacility (34.2 ms)
4.0 ms
heterogeneous[E] 556.5 ± 0.9 evt/s 13.5 ms =
hltSiStripRawToClustersFacilityAlpaka (6.0 ms) + hltSiStripRawToClustersFacility (7.5 ms)
9.3 ms
heterogeneous (serial)[F] 509 ± 2.2 evt/s 68.6 ms =
hltSiStripRawToClustersFacilityAlpaka (59.5 ms) + hltSiStripRawToClustersFacility (9.1 ms)
3.2 ms

The measures have been done on the timing server one after the other, launching the jobs in area mode from lxplus8 from a fresh CMSSW area with the PR rebased on 15_0_6.

Previous measurements (Run2024)

using Run2024 data Run392642 with L1 L1Menu_Collisions2024_v1_3_0-d1_xml and HLT /dev/CMSSW_15_0_0/GRun/V79, GlobalTag 150X_dataRun3_HLT_v1 in CMSSW_15_0_6 release:

configuration throughput (time/ev)_avg =
unpacking+clustering (+legacy conversion)
ECAL-GPU
legacy global unpacking[A] 529.6 ± 2.5 evt/s 32.1 ms =
hltSiStripRawToClustersFacility (32.1 ms)
5.7 ms
alpaka global unpacking on CPU[B] 506.8 ± 2.7 evt/s 54.9 ms =
hltSiStripRawToClustersFacilityAlpaka (46.9 ms) + hltSiStripRawToClustersFacility (7.9 ms)
4.6 ms
alpaka global unpacking on GPU[C] 534.5 ± 2.9 evt/s 13.5 ms =
hltSiStripRawToClustersFacilityAlpaka (5.8 ms) + hltSiStripRawToClustersFacility (7.7 ms)
15.8 ms

Usage and customizer

Compilation

To create a CMSSW_15_0_1_pre1 area

scram project CMSSW_15_0_1_pre1
cd CMSSW_15_0_1_pre1/src
cmsenv
git cms-merge-topic pietroGru:47629
scram b

Timing measurements were done after rebase in CMSSW_15_0_6

scram project CMSSW_15_0_6
cd CMSSW_15_0_6/src
cmsenv
git cms-merge-topic --old-base CMSSW_15_0_1_pre1 pietroGru:47629
scram b

Customizer

A customizer called customizeHLTStripClustersFromRaw_alpaka performs the following operations to replace the legacy module with the heterogeneous one: (a) it attaches to process the SiStripClusterizerConditionsESProducerAlpaka ESProducer generating device conditions; (b) it attaches to process the cluster producer (process.hltSiStripRawToClustersFacilityAlpaka) which inherits all the arguments of the legacy module from process.hltSiStripRawToClustersFacility; (c) it replaces the legacy process.hltSiStripRawToClustersFacility with the module converting the cluster SoA into the legacy format (i.e., what the legacy module outputs).

For example

hltGetConfiguration [...] \
  --customise RecoLocalTracker/SiStripClusterizer/customizeStripClustersFromRaw.customizeHLTStripClustersFromRaw_alpaka
To run the module serially on CPU

The following can be appended to the hlt.py

process.hltSiStripRawToClustersFacilityAlpaka.alpaka = cms.untracked.PSet(
  # ("serial_sync" or "cuda_async" or "rocm_async")
  backend = cms.untracked.string("serial_sync")
)

History

  • This work was on top of an Alpaka porting of the CUDA unpacker/clusterizer [3]
  • Originally based on CMSSW_14_2_0, then moved to CMSSW_15_0_1_pre1
  • The PR stayed in draft and then was opened, resulting in a large number of commits (71). After [11], it was decided to squash them in order to cleanout the repository. The three main commits containing the dataformats, ES/EDProducer and converter were made. The description of the PR was updated for more clarity, accordingly.
  • A backup of the repository before squashing [12], as well as a dump of the PR page with all comments [13]

References

[1] https://indico.cern.ch/event/1554466/#68-update-on-alpaka-strip-unpa
[2] using /store/mc/Run3Winter25Digi/TT_TuneCP5_13p6TeV_powheg-pythia8 https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/validation_v4_compare/clustersMonitor.html
[3] #34618
[4] https://mattermost.web.cern.ch/cms-exp/channels/sistrip-unpacking-on-gpu
[5] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/validation_v2/
[5.1] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/validation_v2/plots_hlt_hltMerged/effandfakePtEtaPhi.pdf
[6] https://indico.cern.ch/event/1549492/#66-strip-detector-unpacking-on
[7] DQM/HLTEvF/python/HLTSiStripMonitoring_cff.py
[8] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/validation_v4.2
[9] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/config/hltValidation_default.py
[10] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/config/Harvesting.py, https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/config/Harvesting_all.py
[11] https://indico.cern.ch/event/1567945/
[12] https://github.com/pietroGru/cmssw/tree/backup/siStripClusterizer_1510pre1_preSquash
[13] https://pgrutta.web.cern.ch/siStripClusterizer_1510pre1/backup_47629.pdf

[A] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_LegacyGlobal_16.20250528_183634
[B] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_Heterogeneous_Serial_16.20250528_163330
[C] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_Heterogeneous_16.20250528_163207
[D] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_LegacyBaseline.20250725_151017
[E] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_Heterogeneous.20250725_150923
[F] https://cmshlttiming.app.cern.ch/display/pgrutta/CMSSW_15_0_6_Heterogeneous_serial.20250725_150820

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 19, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47629/44152

@mmusich
Copy link
Contributor

mmusich commented Mar 19, 2025

sorry, a very naive first trial of this via:

#!/bin/bash -ex

# cmsrel CMSSW_15_1_X_2025-03-18-2300
# cd CMSSW_15_1_X_2025-03-18-2300/src/
# cmsenv
# git cms-merge-topic 47629
# scram b -j 20

hltGetConfiguration /dev/CMSSW_15_0_0/GRun \
   --globaltag 150X_dataRun3_HLT_v1 \
   --data \
   --unprescale \
   --output minimal \
   --max-events 100 \
   --eras Run3_2024 --l1-emulator uGT --l1 L1Menu_Collisions2024_v1_3_0_xml \
   --customise RecoLocalTracker/SiStripClusterizer/customizeStripClustersFromRaw.customizeHLTStripClustersFromRaw_alpaka \
   --input /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root \
   > hltData.py

cmsRun hltData.py >& hltData.log

leads me to:

----- Begin Fatal Exception 19-Mar-2025 21:44:08 CET-----------------------
An exception of category 'RawToDigi' occurred while
   [0] Processing  Event run: 386593 lumi: 235 event: 535750267 stream: 2
   [1] Running path 'MC_ReducedIterativeTracking_v22'
   [2] Calling method for module SiStripRawToCluster@alpaka/'hltSiStripRawToClustersFacilityAlpaka'
Exception Message:
Unsupported readout mode: Zero suppressed lite (8 bit, top-stripped)
----- End Fatal Exception -------------------------------------------------

was this ever tested in recent Run 3 real data? @cms-sw/trk-dpg-l2 FYI

@pietroGru
Copy link
Contributor Author

sorry, a very naive first trial of this leads me to:

----- Begin Fatal Exception 19-Mar-2025 21:44:08 CET-----------------------
An exception of category 'RawToDigi' occurred while
   [0] Processing  Event run: 386593 lumi: 235 event: 535750267 stream: 2
   [1] Running path 'MC_ReducedIterativeTracking_v22'
   [2] Calling method for module SiStripRawToCluster@alpaka/'hltSiStripRawToClustersFacilityAlpaka'
Exception Message:
Unsupported readout mode: Zero suppressed lite (8 bit, top-stripped)
----- End Fatal Exception -------------------------------------------------

was this ever tested in recent Run 3 real data? @cms-sw/trk-dpg-l2 FYI

This is the same behaviour that we found when running on real data today. After this independent check (thank you) I am afraid that another bullet point should be inserted, in order to allow for the raw->digi kernel to unpack the ZS_LITE8, at the very least.

When I ran tests, I always used MC data as for example /RelValTTbar_14TeV/CMSSW_14_2_0-PU_142X_mcRun3_2025_realistic_v4_Winter25_PU_RV255-v2/GEN-SIM-DIGI-RAW. I will double check with some more recent MC but I guess it is possible that the MC still produce FEDcollections which are ZS 10-bit packed.

@mmusich
Copy link
Contributor

mmusich commented Mar 20, 2025

This is the same behaviour that we found when running on real data today. After this independent check (thank you) I am afraid that another bullet point should be inserted, in order to allow for the raw->digi kernel to unpack the ZS_LITE8, at the very least.

When I ran tests, I always used MC data as for example /RelValTTbar_14TeV/CMSSW_14_2_0-PU_142X_mcRun3_2025_realistic_v4_Winter25_PU_RV255-v2/GEN-SIM-DIGI-RAW . I will double check with some more recent MC but I guess it is possible that the MC still produce FEDcollections which are ZS 10-bit packed.

As far as I know (all of this information has been cross-checked with Tracker Ops):

  • the normal operations mode since beginning of Run 2 (in pp and cosmics during pp interfills data-taking) for packing the Strip Tracker data is ZS lite 8 bits with 2 highest bits being stripped (in principle we have another 2 modes for 8 bits with one high one / low strips and two low stripped, basically losing resolution instead of dynamic range);
  • in Heavy Ion data we use ZS 10 bits;
  • last year for a brief period of time we had been running without realizing in ZS normal but due to high dead-time on the FEDs most populated in TIB Layer 1 this was reverted and we've been running in ZS lite again since then (in Run 1 we were limited to 80 kHz when running in ZS Normal)
  • In MC simulation the Strip packer module, as far as I know has always been and still uses Standard ZS:

SiStripDigiToRaw = cms.EDProducer(
"SiStripDigiToRawModule",
InputDigis=cms.InputTag('simSiStripDigis', 'ZeroSuppressed'),
FedReadoutMode = cms.string('ZERO_SUPPRESSED'),
PacketCode = cms.string('ZERO_SUPPRESSED'),

@pietroGru
Copy link
Contributor Author

pietroGru commented Mar 20, 2025

Hi @dan131riley , can you comment on the motivation you had the ZS readout mode in your original PR with cuda implementation?

Thank you! Pietro

@slava77
Copy link
Contributor

slava77 commented Mar 21, 2025

https://mattermost.web.cern.ch/cms-exp/channels/sistrip-unpacking-on-gpu

this is in Italian, not very useful

@pietroGru
Copy link
Contributor Author

https://mattermost.web.cern.ch/cms-exp/channels/sistrip-unpacking-on-gpu

this is in Italian, not very useful

It is true: former discussion on the mattermost channel, as you noted, is in italian. This is about the stages from the cuda version to the alpaka one, leading to the 1:1 match of the cuda product in alpaka. This module is the subject of the PR.

However, the PR is in draft mode because - as clearly emerged from the previous comments - in order to integrate this module one has to go beyond 1:1 port of the cuda code. In fact, implementation of fed raw unpacking shall include at the very least the 8-bit ZS mode.

On the premise that (a) the material in the channel so far - indeed in italian - concers the "relatively-trivial" stages of the cuda-alpaka porting, I directly shared the link to the channel. Giving for granted that once this discussion on the additional features to append to the PR with you experts would have been by default in english.

Now that this background is more clear, would you recommend to create a fresh channel from scratch?

@slava77
Copy link
Contributor

slava77 commented Mar 21, 2025

Now that this background is more clear, would you recommend to create a fresh channel from scratch?

I think that it's more practical to discuss code specifics for what needs updates in an available PR thread (here).

Maybe for some future discussion the MM can be still useful

@fwyzard
Copy link
Contributor

fwyzard commented Mar 23, 2025

assign heterogeneous

@cmsbuild
Copy link
Contributor

New categories assigned: heterogeneous

@fwyzard,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47629/44214

  • Found files with invalid states:

    • CondFormats/SiStripObjects/interface/SiStripClusterizerConditionsSoA.h:
    • CondFormats/SiStripObjects/test/README.md:
    • CondFormats/SiStripObjects/test/TestSiStripMappingSoA.cc:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripMappingDevice.cc:
    • CondFormats/SiStripObjects/src/alpaka/T_EventSetup_SiStrip.cc:
    • CondFormats/SiStripObjects/interface/alpaka/SiStripMappingDevice.h:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripClusterizerConditionsDevice.dev.cc:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripClusterizerConditionsDevice.cc:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripClusterizerConditionsDevice.h:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripMappingDevice.h:
    • CondFormats/SiStripObjects/test/alpaka/TestSiStripMappingDevice.dev.cc:
    • CondFormats/SiStripObjects/test/TestSiStripClusterizerConditionsSoA.cc:
    • CondFormats/SiStripObjects/interface/SiStripClusterizerConditionsHost.h:
    • CondFormats/SiStripObjects/interface/SiStripMappingHost.h:
    • CondFormats/SiStripObjects/interface/alpaka/SiStripClusterizerConditionsDevice.h:
    • CondFormats/SiStripObjects/interface/SiStripMappingSoA.h:
  • There are other open Pull requests which might conflict with changes you have proposed:

@fwyzard
Copy link
Contributor

fwyzard commented Jan 13, 2026

please test

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47629/47429

@cmsbuild
Copy link
Contributor

Pull request #47629 was updated. @Moanwar, @jfernan2, @mandrenguyen, @srimanob can you please check and sign again.

@jfernan2
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @ftenchini, @sextonkennedy (and backports should be raised in the release meeting by the corresponding L2)

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals RelVals-NVIDIA_T4
Size: This PR adds an extra 24KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-75f374/50566/summary.html
COMMIT: 1893a31
CMSSW: CMSSW_16_1_X_2026-01-12-2300/el8_amd64_gcc13
Additional Tests: GPU,AMD_MI300X,AMD_W7900,NVIDIA_H100,NVIDIA_L40S,NVIDIA_T4
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/47629/50566/install.sh to create a dev area with all the needed externals and cmssw changes.

Failed RelVals

----- Begin Fatal Exception 13-Jan-2026 12:53:22 CET-----------------------
An exception of category 'OutOfBound' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 4 stream: 0
   [1] Running path 'HLTriggerFinalPath'
   [2] Prefetching for module TriggerSummaryProducerAOD/'hltTriggerSummaryAOD'
   [3] Prefetching for module L1HPSPFTauProducer/'l1tHPSPFTauProducer'
   [4] Prefetching for module L1TPFCandMultiMerger/'l1tLayer1'
   [5] Prefetching for module L1TCorrelatorLayer1Producer/'l1tLayer1HGCal'
   [6] Calling method for module HGCalBackendLayer2Producer/'l1tHGCalBackEndLayer2Producer'
Exception Message:
TC X1 = 0.0713466 out of the seeding histogram bounds 0.076 - 0.58
----- End Fatal Exception -------------------------------------------------

Failed RelVals-NVIDIA_T4

  • 34634.40334634.403_TTbar_14TeV+Run4D121PU_Patatrack_PixelOnlyAlpaka_Validation/step2_TTbar_14TeV+Run4D121PU_Patatrack_PixelOnlyAlpaka_Validation.log
  • 34634.40234634.402_TTbar_14TeV+Run4D121PU_Patatrack_PixelOnlyAlpaka/step2_TTbar_14TeV+Run4D121PU_Patatrack_PixelOnlyAlpaka.log
  • 34634.75134634.751_TTbar_14TeV+Run4D121PU_HLT75e33TimingAlpaka/step2_TTbar_14TeV+Run4D121PU_HLT75e33TimingAlpaka.log
Expand to see more relval errors ...

@fwyzard
Copy link
Contributor

fwyzard commented Jan 13, 2026

ignore tests-rejected with ib-failure

@mandrenguyen
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit eb84412 into cms-sw:master Jan 13, 2026
15 of 21 checks passed
@mmusich
Copy link
Contributor

mmusich commented Jan 13, 2026

@pietroGru can you please prepare a backport for 16.0.X?

pietroGru added a commit to pietroGru/cmssw that referenced this pull request Jan 13, 2026
- Kernels work divider of 256u from optimization (cms-sw#47629 (comment))
- Bug fix for events with `nStrips` = 0 (https://gist.github.com/mmusich/a7928a000b4eb6ea00ac5ab9cfa2238e)
-- Fix for packet code of non-lite ZS buffers (https://gist.github.com/mmusich/a7928a000b4eb6ea00ac5ab9cfa2238e)
- Use Acc1D directly (cms-sw#47629 (comment))
- Fix errors in static analysis (cms-sw#47629 (comment))

Co-authored-by: Andrea Bocci <[email protected]>
chrishanw pushed a commit to chrishanw/cmssw that referenced this pull request Jan 14, 2026
- Kernels work divider of 256u from optimization (cms-sw#47629 (comment))
- Bug fix for events with `nStrips` = 0 (https://gist.github.com/mmusich/a7928a000b4eb6ea00ac5ab9cfa2238e)
-- Fix for packet code of non-lite ZS buffers (https://gist.github.com/mmusich/a7928a000b4eb6ea00ac5ab9cfa2238e)
- Use Acc1D directly (cms-sw#47629 (comment))
- Fix errors in static analysis (cms-sw#47629 (comment))

Co-authored-by: Andrea Bocci <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.