cmssw icon indicating copy to clipboard operation
cmssw copied to clipboard

Alpaka implementation of Hcal Local Reconstruction (Mahi)

Open kakwok opened this issue 1 year ago • 49 comments

PR description:

This PR port the CUDA implementation of Hcal Local Reconstruction (Mahi) to using Alpaka. Custom SoA data structure used in CUDA for HCAL condition data and rechits are replaced with PortableCollection. The current Alpaka implementation aims at reproducing the results from the CUDA implementation, no algorithmic changes are made.

There are 4 main pieces involved in the migration:

  • digiConverter(hcalDigisProducerPortable): Convert CPU digis into SoA format
  • Produce HCAL condition data in SoA format (Multiple producers)
  • Mahi kernels (Mahi.dev.cc)
  • Convert rechits from SoA to legacy format (HcalRecHitSoAToLegacy)

More details on code design are presented in the recent HLT GPU development meetings: https://indico.cern.ch/event/1350955/ https://indico.cern.ch/event/1350953/ https://indico.cern.ch/event/1350952/ https://indico.cern.ch/event/1230377/ https://indico.cern.ch/event/1230374/

PR validation:

Alpaka GPU and CPU rechit energies are validated with slightly modified workflow 12434.523 (ttbar simulation). More validation comparisons are being worked on.

kakwok avatar May 06 '24 18:05 kakwok

cms-bot internal usage

cmsbuild avatar May 06 '24 18:05 cmsbuild

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40188

  • This PR adds an extra 248KB to repository

Code check has found code style and quality issues which could be resolved by applying following patch(s)

  • code-format: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40188/code-format.patch e.g. curl -k https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40188/code-format.patch | patch -p1 You can also run scram build code-format to apply code format directly

cmsbuild avatar May 06 '24 18:05 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40189

  • This PR adds an extra 248KB to repository

cmsbuild avatar May 06 '24 18:05 cmsbuild

A new Pull Request was created by @kakwok for master.

It involves the following packages:

  • CondFormats/DataRecord (db, alca)
  • CondFormats/HcalObjects (db, alca)
  • DQM/HcalTasks (dqm)
  • DataFormats/HcalDigi (simulation)
  • DataFormats/HcalRecHit (reconstruction)
  • EventFilter/HcalRawToDigi (reconstruction)
  • HeterogeneousCore/AlpakaInterface (heterogeneous)
  • RecoLocalCalo/Configuration (reconstruction)
  • RecoLocalCalo/HcalRecAlgos (reconstruction)
  • RecoLocalCalo/HcalRecProducers (reconstruction)

@syuvivida, @francescobrivio, @makortel, @rvenditti, @mandrenguyen, @fwyzard, @tjavaid, @mdhildreth, @saumyaphor4252, @perrotta, @consuegs, @jfernan2, @cmsbuild, @civanch, @nothingface0, @antoniovagnerini can you please review it and eventually sign? Thanks. @argiro, @DryRun, @rsreds, @Martin-Grunewald, @PonIlya, @JanChyczynski, @rovere, @makortel, @missirol, @yuanchao, @tocheng, @bsunanda, @apsallid, @mmusich, @ReyerBand, @wang0jin, @sameasy, @thomreis, @mariadalfonso, @youyingli, @abdoulline, @rchatter, @seemasharmafnal this is something you requested to watch as well. @sextonkennedy, @antoniovilela, @rappoccio you are the release manager for this.

cms-bot commands are listed here

cmsbuild avatar May 06 '24 18:05 cmsbuild

type hcal

fwyzard avatar May 06 '24 21:05 fwyzard

@kakwok before going through the changes - why do you target only the cuda back-end, and exclude the rocm back-end ?

fwyzard avatar May 06 '24 21:05 fwyzard

@kakwok before going through the changes - why do you target only the cuda back-end, and exclude the rocm back-end ?

@fwyzard Quick reply before addressing other comments. Thanks for spotting this. Those are the settings during some tests. I will include rocm in a clean up commit.

kakwok avatar May 06 '24 22:05 kakwok

Alpaka GPU and CPU rechit energies are validated with slightly modified workflow 12434.523 (ttbar simulation).

@kakwok please provide a recipe to test this code either on data or Run3 MC. Thank you.

mmusich avatar May 07 '24 15:05 mmusich

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40218

  • This PR adds an extra 224KB to repository

cmsbuild avatar May 09 '24 20:05 cmsbuild

Pull request #44910 was updated. @jfernan2, @fwyzard, @tjavaid, @antoniovagnerini, @consuegs, @syuvivida, @perrotta, @makortel, @rvenditti, @saumyaphor4252, @francescobrivio, @mdhildreth, @cmsbuild, @civanch, @nothingface0, @mandrenguyen can you please check and sign again.

cmsbuild avatar May 09 '24 20:05 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40224

  • This PR adds an extra 56KB to repository

cmsbuild avatar May 10 '24 18:05 cmsbuild

Pull request #44910 was updated. @nothingface0, @tjavaid, @makortel, @saumyaphor4252, @perrotta, @cmsbuild, @rvenditti, @francescobrivio, @mdhildreth, @mandrenguyen, @fwyzard, @jfernan2, @syuvivida, @consuegs, @civanch, @antoniovagnerini can you please check and sign again.

cmsbuild avatar May 10 '24 18:05 cmsbuild

OK, I think I've gone through all the code.

Some general remarks, in addition to the comments left along the code, that could be addressed in follow-up PRs:

  • some CondFormats are in the hcal namespace, while most are not; would it make sense to move all of them to the hcal namespace ?
  • the utilities in DataFormats/HcalDigi/interface/alpaka/HcalDigiDeviceCollection.h could use some clean up to make the interface for the different "Flavors" more consistent; since they are independent from the actual collection, maybe it would make more sense to move them to DataFormats/HcalDigi/interface/HcalDigiSoA.h, or a separate header file ?

Other than addressing the latest round of comments, I think the next steps should be

  • implement or update a runTheMatrix workflow to test the code in the "patatrack" workflows
  • implement a customisation to use the new code at HLT

Finally, the interaction with the PF code should be simplified to avoid the SoA-to-legacy-to-SoA back and forth. Also this can be done in a separate PR, with the help of (or by) the PF experts.

fwyzard avatar May 11 '24 10:05 fwyzard

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40241

  • This PR adds an extra 256KB to repository

  • There are other open Pull requests which might conflict with changes you have proposed:

    • File EventFilter/HcalRawToDigi/plugins/BuildFile.xml modified in PR(s): #44955

Code check has found code style and quality issues which could be resolved by applying following patch(s)

  • code-format: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40241/code-format.patch e.g. curl -k https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40241/code-format.patch | patch -p1 You can also run scram build code-format to apply code format directly

cmsbuild avatar May 13 '24 22:05 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40242

  • This PR adds an extra 444KB to repository

  • There are other open Pull requests which might conflict with changes you have proposed:

    • File EventFilter/HcalRawToDigi/plugins/BuildFile.xml modified in PR(s): #44955

cmsbuild avatar May 13 '24 22:05 cmsbuild

Pull request #44910 was updated. @consuegs, @mdhildreth, @makortel, @rvenditti, @mandrenguyen, @syuvivida, @perrotta, @civanch, @jfernan2, @tjavaid, @fwyzard, @antoniovagnerini, @cmsbuild, @saumyaphor4252, @francescobrivio, @nothingface0 can you please check and sign again.

cmsbuild avatar May 13 '24 22:05 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40254

  • This PR adds an extra 48KB to repository

  • There are other open Pull requests which might conflict with changes you have proposed:

    • File EventFilter/HcalRawToDigi/plugins/BuildFile.xml modified in PR(s): #44955

cmsbuild avatar May 14 '24 19:05 cmsbuild

Pull request #44910 was updated. @antoniovagnerini, @francescobrivio, @civanch, @jfernan2, @tjavaid, @perrotta, @syuvivida, @mandrenguyen, @fwyzard, @mdhildreth, @saumyaphor4252, @consuegs, @rvenditti, @makortel, @cmsbuild, @nothingface0 can you please check and sign again.

cmsbuild avatar May 14 '24 19:05 cmsbuild

Alpaka GPU and CPU rechit energies are validated with slightly modified workflow 12434.523 (ttbar simulation).

@kakwok please provide a recipe to test this code either on data or Run3 MC. Thank you.

ciao on top of the above request by STORM (which I think we really need to have in order to proceed w/ the integration of this PR) I would ask you to test the Alpaka code on recent data, where we experienced issues during the data taking

in particular

  • HCAL misconfiguration, cms-sw/cmssw#44541 /eos/cms/store/group/tsg/FOG/error_stream_root/run378366/*root
  • HCAL out of global, cms-sw/cmssw#44668 /eos/cms/store/group/tsg/FOG/error_stream_root/run379174/*root

since the data were collected with a different L1 menu, in order to perform this test you will need to re-emulate the uGT in order to pick the L1 menu compatible w/ the HLT menu in the release

for instance, you can run the following code hltGetConfiguration /dev/CMSSW_14_0_0/GRun --globaltag 140X_dataRun3_HLT_for2024TSGStudies_v1 --data --unprescale --output minimal --max-events 100 --eras Run3 --l1-emulator uGT --l1 L1Menu_Collisions2024_v1_2_0_xml --input '/store/group/tsg/FOG/error_stream_root/run379174/run379174_ls0045_index000002_fu-c2b01-20-01_pid494514.root' --max-events 10 > hltData.py

thanks in advance mia

mtosi avatar May 16 '24 13:05 mtosi

---globaltag 140X_dataRun3_HLT_for2024TSGStudies_v1

can't we just use the actual data-taking GlobalTag (if the tests has to be performed on 2024 data)? That'd be 140X_dataRun3_HLT_v3.

Also about this:

HCAL out of global,https://github.com/cms-sw/cmssw/issues/44668 /eos/cms/store/group/tsg/FOG/error_stream_root/run379174/*root

there's actually no need to go in search for error stream files, one can easily mimic offline by removing the HCAL FEDs via e.g. setup at https://github.com/cms-sw/cmssw/issues/44668#issuecomment-2045506118

mmusich avatar May 16 '24 14:05 mmusich

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40269

  • This PR adds an extra 36KB to repository

cmsbuild avatar May 16 '24 19:05 cmsbuild

Pull request #44910 was updated. @civanch, @consuegs, @antoniovagnerini, @mandrenguyen, @makortel, @mdhildreth, @francescobrivio, @syuvivida, @cmsbuild, @fwyzard, @jfernan2, @nothingface0, @perrotta, @rvenditti, @saumyaphor4252, @tjavaid can you please check and sign again.

cmsbuild avatar May 16 '24 19:05 cmsbuild

@kakwok here is a working customisation for the HLT:

def customizeHLTforAlpakaHcalLocalReco(process):

    # EventSetup modules
    process.load('RecoLocalCalo.HcalRecProducers.hcalMahiConditionsESProducer_cfi')
    process.load('RecoLocalCalo.HcalRecProducers.hcalMahiPulseOffsetsESProducer_cfi')
    process.load('RecoLocalCalo.HcalRecProducers.hcalSiPMCharacteristicsESProducer_cfi')
    process.load('RecoLocalCalo.HcalRecAlgos.hcalRecoParamWithPulseShapeESProducer_cfi')

    # the JobConfigurationGPURecord is provided by the hltESSJobConfigurationGPURecord ESSource


    # convert the HCAL digis to SoA format
    from EventFilter.HcalRawToDigi.hcalDigisProducerPortable_cfi import hcalDigisProducerPortable as _hcalDigisProducerPortable

    # convert the HCAL digis to SoA format, and copies them to the device
    process.hltHcalDigisSoA = _hcalDigisProducerPortable.clone(
      hbheDigisLabel = 'hltHcalDigis',
      qie11DigiLabel = 'hltHcalDigis'
    )

    # convert the HCAL digis to SoA format, and copies them to the host
    process.hltHcalDigisSoASerialSync = makeSerialClone(process.hltHcalDigisSoA)


    # run the HCAL local reconstruction (MAHI) and produce the rechits in SoA format
    from RecoLocalCalo.HcalRecProducers.hbheRecHitProducerPortable_cfi import hbheRecHitProducerPortable as _hbheRecHitProducerPortable

    # run the HCAL local reconstruction (MAHI) and produce the rechits in SoA format on the device, and optionally copy the rechits to the host
    process.hltHbheRecoSoA = _hbheRecHitProducerPortable.clone(
      digisLabelF01HE = ('hltHcalDigisSoA', 'f01HEDigisGPU'),
      digisLabelF5HB = ('hltHcalDigisSoA', 'f5HBDigisGPU'),
      digisLabelF3HB = ('hltHcalDigisSoA', 'f3HBDigisGPU'),
      recHitsLabelM0HBHE = '',
      mahiPulseOffSets = 'hcalMahiPulseOffsetsESProducer:'
    )

    # run the HCAL local reconstruction (MAHI) and produce the rechits in SoA format on the host
    process.hltHbheRecoSoASerialSync = makeSerialClone(process.hltHbheRecoSoA,
      digisLabelF01HE = ('hltHcalDigisSoASerialSync', 'f01HEDigisGPU'),
      digisLabelF5HB = ('hltHcalDigisSoASerialSync', 'f5HBDigisGPU'),
      digisLabelF3HB = ('hltHcalDigisSoASerialSync', 'f3HBDigisGPU'),
    )


    # convert the rechits in SoA format on the host to legacy format
    from RecoLocalCalo.HcalRecProducers.hcalRecHitSoAToLegacy_cfi import hcalRecHitSoAToLegacy as _hcalRecHitSoAToLegacy

    # convert the rechits in SoA format on the host to legacy format
    process.hltHbhereco = _hcalRecHitSoAToLegacy.clone(
      src = 'hltHbheRecoSoA'
    )

    # convert the rechits in SoA format on the host to legacy format
    process.hltHbherecoSerialSync = process.hltHbhereco.clone(
      src = 'hltHbheRecoSoASerialSync'
    )

    # update the label of the rechits produced on the host
    process.hltTowerMakerForAllSerialSync.hbheInput = "hltHbherecoSerialSync"
    process.hltAK4CaloJetsIDPassedSerialSync.JetIDParams.hbheRecHitsColl = "hltHbherecoSerialSync"
    process.hltHbheRecHitSoASerialSync.src = "hltHbherecoSerialSync"
    process.hltMuonsSerialSync.TrackAssociatorParameters.HBHERecHitCollectionLabel = "hltHbherecoSerialSync"
    process.hltMuonsSerialSync.CaloExtractorPSet.TrackAssociatorParameters.HBHERecHitCollectionLabel = "hltHbherecoSerialSync"
    process.hltMuonsSerialSync.JetExtractorPSet.TrackAssociatorParameters.HBHERecHitCollectionLabel = "hltHbherecoSerialSync"

    # run the HCAL local reconstruction, potentially offloading the MHI step to the device
    process.HLTDoLocalHcalSequence = cms.Sequence(
      process.hltHcalDigis +
      process.hltHcalDigisSoA +
      process.hltHbheRecoSoA +
      process.hltHbhereco +
      process.hltHfprereco +
      process.hltHfreco +
      process.hltHoreco )

    # run the HCAL local reconstruction on the host
    process.HLTDoLocalHcalSequenceSerialSync = cms.Sequence(
      process.hltHcalDigis +
      process.hltHcalDigisSoASerialSync +
      process.hltHbheRecoSoASerialSync +
      process.hltHbherecoSerialSync +
      process.hltHfprereco +
      process.hltHfreco +
      process.hltHoreco )

    # run the HBHE local reconstruction, potentially offloading the MHI step to the device
    process.HLTStoppedHSCPLocalHcalReco = cms.Sequence(
      process.hltHcalDigis +
      process.hltHcalDigisSoA +
      process.hltHbheRecoSoA +
      process.hltHbhereco )

    # PFJet reconstruction running on the host
    process.HLTPFHcalClusteringSerialSync = cms.Sequence(
      process.hltHbheRecHitSoASerialSync +
      process.hltParticleFlowRecHitHBHESoASerialSync +
      process.hltParticleFlowRecHitHBHESerialSync +
      process.hltParticleFlowClusterHBHESoASerialSync +
      process.hltParticleFlowClusterHBHESerialSync +
      process.hltParticleFlowClusterHCALSerialSync )

    process.AlCa_PFJet40_CPUOnly_v7 = cms.Path(
      process.HLTBeginSequence +
      process.hltL1sZeroBias +
      process.hltPreAlCaPFJet40CPUOnly +
      process.HLTDoLocalHcalSequenceSerialSync +
      process.HLTAK4CaloJetsSequenceSerialSync +
      process.hltSingleCaloJet10SerialSync +
      process.HLTAK4PFJetsSequenceSerialSync +
      process.hltPFJetsCorrectedMatchedToCaloJets10SerialSync +
      process.hltSinglePFJet40SerialSync +
      process.HLTEndSequence )

    # compare the HCAL local reconstruction running on the device and on the host
    process.DQM_HcalReconstruction_v8 = cms.Path(
      process.HLTBeginSequence +
      process.hltL1sDQMHcalReconstruction +
      process.hltPreDQMHcalReconstruction +
      process.hltBackend +
      process.hltStatusOnGPUFilter +
      process.HLTDoLocalHcalSequence +
      process.HLTDoLocalHcalSequenceSerialSync +
      process.HLTPFHcalClustering +
      process.HLTPFHcalClusteringSerialSync +
      process.HLTEndSequence )

    # delete the obsolete modules and tasks
    del process.hcalMahiPulseOffsetsGPUESProducer
    del process.hcalChannelQualityGPUESProducer
    del process.hcalConvertedEffectivePedestalWidthsGPUESProducer
    del process.hcalConvertedEffectivePedestalsGPUESProducer
    del process.hcalConvertedPedestalWidthsGPUESProducer
    del process.hcalConvertedPedestalsGPUESProducer
    del process.hcalElectronicsMappingGPUESProducer
    del process.hcalGainWidthsGPUESProducer
    del process.hcalGainsGPUESProducer
    del process.hcalLUTCorrsGPUESProducer
    del process.hcalQIECodersGPUESProducer
    del process.hcalQIETypesGPUESProducer
    del process.hcalRecoParamsWithPulseShapesGPUESProducer
    del process.hcalRespCorrsGPUESProducer
    del process.hcalSiPMCharacteristicsGPUESProducer
    del process.hcalSiPMParametersGPUESProducer
    del process.hcalTimeCorrsGPUESProducer

    del process.hltHbherecoLegacy
    del process.hltHcalDigisGPU
    del process.hltHbherecoGPU
    del process.hltHbherecoFromGPU
    del process.hltHcalConsumerCPU
    del process.hltHcalConsumerGPU

    del process.HLTDoLocalHcalTask
    del process.HLTStoppedHSCPLocalHcalRecoTask

    return process

I've tested it with the HLT menu /cdaq/physics/Run2024/2e34/v1.1.4/HLT/V1 over some data from run 380647 and it runs. I have not tested the impact on the HLT results, yet.

@missirol @mmusich I guess this customisation should be added to HLTrigger/Configuration/python/customizeHLTforAlpaka.py and called from customizeHLTforAlpaka() ? What else is needed on the HLT side ?

fwyzard avatar May 17 '24 23:05 fwyzard

I guess this customisation should be added to HLTrigger/Configuration/python/customizeHLTforAlpaka.py and called from customizeHLTforAlpaka() ? What else is needed on the HLT side ?

Thanks @fwyzard ! Just a few comments.

  • I guess the HCAL collections in the EventContent of the (HI|)DQMGPUvsCPU streams should also be updated (with the non-SoA collections, unless the online-dqm client will be updated to read the SoA ones).
  • I think HLTDoLocalHcalSequenceSerialSync should also be used in HLTDoCaloSequenceSerialSync and HLTDoCaloSequencePFSerialSync (and at that point one should not need to modify AlCa_PFJet40_CPUOnly_v explicitly).
  • The Path DQM_HIHcalReconstruction_v should also be updated in the customisation (when we integrate this in ConfDB, we apply the customisation to the combined table).
  • Modulo the points above, I think this customisation is enough to parse a config in ConfDB and integrate the changes there (once we have a release with all the plugins), but if the customisation also needs to be used for a time in CMSSW workflows we should probably add some safeguards like we did for previous functions (such that it bails on menus without HCAL reconstruction, it doesn't use explicitly the "version numbers" of the Paths, it works even if applied more than once, etc). In the existing customisations for PF/ECAL/Pixel (here), there are examples of how we did this so far.

missirol avatar May 18 '24 09:05 missirol

From a first comparison with this customisation, running with all paths unprescaled over 46k events, I see quite a large amount of differences in the HLT results:

      Events    Accepted      Gained        Lost   Trigger
       46620          42          +5          -5   AlCa_PFJet40_v28
       46620          42          +5          -4   AlCa_PFJet40_CPUOnly_v7
       46620         466         +43         -31   AlCa_AK8PFJet40_v23
       46620         283           -          -7   DST_PFScouting_DoubleEG_v2
       46620         737          +8          -8   DST_PFScouting_DatasetMuon_v2
       46620        1860        +169          -4   HLT_HT300_Beamspot_v19
       46620           0          +1           -   HLT_PFJet40_GPUvsCPU_v5
       46620          14           -          -1   HLT_AK8PFJet380_SoftDropMass30_v2
       46620          11           -          -1   HLT_AK8PFJet400_SoftDropMass30_v2
       46620           8          +1          -2   HLT_AK8PFJet425_SoftDropMass30_v2
       46620           7           -          -1   HLT_AK8PFJet450_SoftDropMass30_v2
       46620          18          +3          -1   HLT_AK8DiPFJet250_250_SoftDropMass40_v2
       46620          11          +4           -   HLT_AK8DiPFJet250_250_SoftDropMass50_v2
       46620          17          +3          -1   HLT_AK8DiPFJet260_260_SoftDropMass30_v2
       46620          16          +1          -2   HLT_AK8DiPFJet260_260_SoftDropMass40_v2
       46620          14          +1           -   HLT_AK8DiPFJet270_270_SoftDropMass30_v2
       46620          11          +3           -   HLT_AK8DiPFJet280_280_SoftDropMass30_v8
       46620           7          +2           -   HLT_AK8DiPFJet290_290_SoftDropMass30_v2
       46620          13           -          -1   HLT_DoubleMu4_3_Photon4_BsToMMG_v8
       46620          30           -          -1   HLT_DoublePhoton33_CaloIdL_v15
       46620           7           -          -1   HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v12
       46620          86          +1          -1   HLT_Ele30_WPTight_Gsf_v9
       46620          77          +1          -1   HLT_Ele32_WPTight_Gsf_v23
       46620          67           -          -1   HLT_Ele35_WPTight_Gsf_v17
       46620          55           -          -1   HLT_Ele38_WPTight_Gsf_v17
       46620          46           -          -1   HLT_Ele40_WPTight_Gsf_v17
       46620          78          +1          -1   HLT_Ele32_WPTight_Gsf_L1DoubleEG_v17
       46620          19          +1          -2   HLT_DiPFJetAve40_v22
       46620         105           -          -1   HLT_DiPFJetAve260_v22
       46620          41          +1           -   HLT_DiPFJetAve320_v22
       46620          13          +3          -2   HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v2
       46620         466         +43         -31   HLT_AK8PFJet40_v24
       46620          65         +15         -15   HLT_AK8PFJet60_v23
       46620           9          +3          -2   HLT_AK8PFJet80_v24
       46620         238         +26          -2   HLT_AK8PFJet260_v24
       46620          87          +5           -   HLT_AK8PFJet320_v24
       46620          28          +4           -   HLT_AK8PFJet400_v24
       46620          16          +1           -   HLT_AK8PFJet450_v24
       46620          42          +5          -5   HLT_PFJet40_v29
       46620         184         +12          -1   HLT_PFJet260_v28
       46620          69          +5           -   HLT_PFJet320_v28
       46620           9          +2          -1   HLT_PFJetFwd40_v27
       46620           0          +1           -   HLT_PFJetFwd320_v27
       46620         315         +36         -60   HLT_AK8PFJetFwd40_v23
       46620          43          +3         -14   HLT_AK8PFJetFwd60_v22
       46620          11           -          -1   HLT_AK8PFJetFwd80_v22
       46620           1           -          -1   HLT_AK8PFJetFwd140_v22
       46620           9           -          -1   HLT_AK8PFJetFwd260_v23
       46620         233         +17          -4   HLT_PFHT510_v25
       46620         117          +7          -3   HLT_PFHT590_v25
       46620          67          +5           -   HLT_PFHT680_v25
       46620          31          +3           -   HLT_PFHT780_v25
       46620          22          +1           -   HLT_PFHT890_v25
       46620           7          +1           -   HLT_PFHT1050_v26
       46620           7           -          -1   HLT_PFHT500_PFMET100_PFMHT100_IDTight_v20
       46620           3          +2          -1   HLT_PFHT500_PFMET110_PFMHT110_IDTight_v20
       46620           8          +2          -2   HLT_PFHT700_PFMET85_PFMHT85_IDTight_v20
       46620           2          +3           -   HLT_PFHT800_PFMET75_PFMHT75_IDTight_v20
       46620          46          +7         -15   HLT_PFMET120_PFMHT120_IDTight_v28
       46620          19          +7          -3   HLT_PFMET130_PFMHT130_IDTight_v28
       46620          11          +2          -2   HLT_PFMET140_PFMHT140_IDTight_v28
       46620          18          +2          -5   HLT_PFMET120_PFMHT120_IDTight_PFHT60_v17
       46620          18          +2          -5   HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v17
       46620          12          +5          -2   HLT_PFMETTypeOne140_PFMHT140_IDTight_v19
       46620          45          +8         -15   HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v28
       46620          19          +7          -3   HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v27
       46620          11          +2          -2   HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v27
       46620          72         +11         -18   HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v8
       46620          42          +7         -15   HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v8
       46620          18          +4          -2   HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v8
       46620          11          +2          -2   HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v8
       46620         671        +104         -91   HLT_CaloMHT90_v12
       46620         505         +26         -22   HLT_CaloMET90_NotCleaned_v12
       46620           3          +1           -   HLT_PFMET200_NotCleaned_v17
       46620           1          +1           -   HLT_PFMET200_BeamHaloCleaned_v17
       46620           4          +2           -   HLT_PFMETTypeOne200_BeamHaloCleaned_v17
       46620           1          +1           -   HLT_MET120_IsoTrk50_v17
       46620          26          +4           -   HLT_BTagMu_AK4DiJet20_Mu5_v21
       46620          10          +1           -   HLT_BTagMu_AK4DiJet70_Mu5_v21
       46620           8          +1           -   HLT_BTagMu_AK4DiJet110_Mu5_v21
       46620          10          +1           -   HLT_BTagMu_AK4DiJet170_Mu5_v20
       46620           4          +1           -   HLT_BTagMu_AK4Jet300_Mu5_v20
       46620          17          +1           -   HLT_BTagMu_AK8DiJet170_Mu5_v17
       46620           6          +2           -   HLT_BTagMu_AK8Jet300_Mu5_v20
       46620        1072           -         -11   HLT_Photon50_v21
       46620         265           -          -3   HLT_Photon75_v21
       46620         129           -          -2   HLT_Photon90_v21
       46620          94          +2          -2   HLT_Photon50EB_TightID_TightIso_PFJet30_v2
       46620          94          +2          -2   HLT_Photon50EB_TightID_TightIso_CaloJet30_v1
       46620          94          +2          -2   HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v1
       46620          94          +2          -2   HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v1
       46620          94          +2          -2   HLT_Photon50EB_TightID_TightIso_v6
       46620          69          +2          -2   HLT_Photon55EB_TightID_TightIso_v2
       46620          20           -          -1   HLT_Photon75EB_TightID_TightIso_v6
       46620         213          +1          -2   HLT_Photon50_R9Id90_HE10_IsoM_v22
       46620          45           -          -1   HLT_Photon75_R9Id90_HE10_IsoM_v22
       46620          21           -          -1   HLT_Photon90_R9Id90_HE10_IsoM_v22
       46620          22           -          -1   HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v21
       46620          18           -          -1   HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v21
       46620          59          +1          -1   HLT_IsoMu24_TwoProngs35_v9
       46620          13          +4          -2   HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v18
       46620           7          +3           -   HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v18
       46620          33          +2          -2   HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v21
       46620          15          +1          -1   HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v21
       46620           1           -          -1   HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v24
       46620           3           -          -1   HLT_Ele15_IsoVVVL_PFHT450_v24
       46620          12          +1          -2   HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v10
       46620           9          +1          -2   HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v10
       46620           4          +1          -1   HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v10
       46620          20          +3          -3   HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v10
       46620          13          +2          -3   HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v10
       46620           6          +2          -1   HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v10
       46620           5           -          -1   HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v1
       46620           4          +1          -1   HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v26
       46620         407         +52         -12   HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v17
       46620          72         +12          -7   HLT_PFHT400_SixPFJet32_v17
       46620          15          +1          -4   HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v5
       46620          37          +4          -3   HLT_PFHT450_SixPFJet36_v16
       46620          14          +1          -1   HLT_PFHT450_SixPFJet36_PNetBTag0p35_v5
       46620          97         +19          -6   HLT_PFHT400_FivePFJet_120_120_60_30_30_v2
       46620        1169        +111         -14   HLT_PFHT350_v27
       46620         139          +1          -2   HLT_DiSC30_18_EIso_AND_HE_Mass70_v22
       46620          11          +5          -2   HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v18
       46620          16          +6          -3   HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v2
       46620          38         +10          -5   HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v2
       46620         574         +45         -14   HLT_QuadPFJet103_88_75_15_v13
       46620         543         +45         -16   HLT_QuadPFJet105_88_76_15_v13
       46620         435         +30         -12   HLT_QuadPFJet111_90_80_15_v13
       46620          11           -          -2   HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v9
       46620          10           -          -1   HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v9
       46620          32          +3          -2   HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v8
       46620          14          +3          -1   HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v2
       46620          10          +2           -   HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v2
       46620          15          +1          -2   HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v2
       46620          15          +2           -   HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v2
       46620          14          +2          -2   HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v2
       46620          14          +3           -   HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v2
       46620          13          +2          -2   HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v2
       46620          12          +3          -2   HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v2
       46620        1503        +136         -43   HLT_PFHT250_QuadPFJet25_v2
       46620          68         +10          -6   HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v2
       46620          37          +6          -7   HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v2
       46620          58          +6          -1   HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v2
       46620          32          +6          -6   HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v2
       46620          27          +6          -5   HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v2
       46620        1009        +109         -26   HLT_PFHT280_QuadPFJet30_v5
       46620          54          +5          -1   HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v5
       46620          45          +4          -1   HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v5
       46620          33          +7          -1   HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v5
       46620           8          +3           -   HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v6
       46620         520         +57         -14   HLT_QuadPFJet100_88_70_30_v6
       46620         422         +45         -11   HLT_QuadPFJet105_88_75_30_v5
       46620         335         +37         -14   HLT_QuadPFJet111_90_80_30_v5
       46620          11           -          -1   HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v6
       46620          11           -          -1   HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v6
       46620           5           -          -1   HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v6
       46620         219         +36          -9   HLT_AK8PFJet220_SoftDropMass40_v9
       46620           4           -          -1   HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v5
       46620           4           -          -1   HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v5
       46620           3           -          -1   HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v5
       46620           2           -          -1   HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v5
       46620         182         +29          -6   HLT_AK8PFJet230_SoftDropMass40_v9
       46620          10           -          -1   HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v5
       46620           5          +1           -   HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v5
       46620           1          +1           -   HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v5
       46620           1          +1           -   HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v5
       46620           8           -          -1   HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v5
       46620           3          +1           -   HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v5
       46620           7           -          -1   HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v5
       46620           2          +1           -   HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v5
       46620           1           -          -1   HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v2
       46620           1           -          -1   HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v2
       46620          14          +1          -1   HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v8
       46620          10          +1          -1   HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v8
       46620          94           -          -2   HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v2
       46620          18          +4          -3   HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v2
       46620          15          +4          -5   HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v2
       46620           4          +2          -2   HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v2
       46620           4          +1          -2   HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v2
       46620           8          +2          -1   HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v2
       46620           7           -          -1   HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v2
       46620           7           -          -1   HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v2
       46620           2          +1           -   HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v9
       46620          33          +2           -   HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v4
       46620          14          +2          -2   HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v5
       46620          10          +2          -2   HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v5
       46620           6          +2          -1   HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v5
       46620          76         +13           -   HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v7
       46620          22          +5          -2   HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v7
       46620          16          +4          -2   HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v5
       46620          12          +3           -   HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v5
       46620           8          +1          -1   HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v5
       46620           6          +2          -1   HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v7
       46620           4          +2           -   HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v7
       46620           3          +1           -   HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v9
       46620           8          +3           -   HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v8
       46620           0          +1           -   HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v9
       46620           0          +1           -   HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v5
       46620          15          +1           -   HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v5
       46620          33          +2          -1   HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v7
       46620           7          +2           -   HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v7
       46620           5          +3           -   HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v9
       46620           7          +4           -   HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v9
       46620           3          +2          -1   HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v9
       46620           5          +2           -   HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v9
       46620           1          +1           -   HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v9
       46620        1076         +79          -5   HLT_HT350_v5
       46620         468         +55          -1   HLT_HT425_v17
       46620          38          +9          -1   HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v5
       46620          31          +6          -1   HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v5
       46620          24          +6          -1   HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v5
       46620          19          +4          -1   HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v5
       46620          20          +5          -1   HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v5
       46620          13          +6           -   HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v9
       46620           2          +1           -   HLT_HT550_DisplacedDijet60_Inclusive_v21
       46620          25          +1          -1   HLT_CaloMET60_DTCluster50_v9
       46620           1          +1           -   HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v9
       46620           1          +1           -   HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v9
       46620           1          +1           -   HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v9
       46620          14          +3           -   HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v9
       46620          11          +2           -   HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v6
       46620           8          +2           -   HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v6
       46620           2          +1           -   HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v9
       46620           1          +1           -   HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v9
       46620           0          +1           -   HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v9
       46620           0          +1           -   HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v9
       46620           9          +1           -   HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v2
       46620        1789           -         -83   HLT_DiPhoton10_CaloIdL_v8
       46620          20           -          -2   HLT_DoubleEle6p5_eta1p22_mMax6_v8
       46620          16           -          -1   HLT_DoubleEle8_eta1p22_mMax6_v8
       46620         158           -          -8   HLT_SingleEle8_v7
       46620          39           -          -1   HLT_SingleEle8_SingleEGL1_v7
       46620          12           -          -3   HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v8
       46620          11           -          -3   HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v8
       46620           9           -          -1   HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v8
       46620           8           -          -1   HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v8
       46620          68          +1          -1   HLT_IsoMu24_OneProng32_v5
       46620          19          +1           -   HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v4
       46620         317         +13          -7   HLT_VBF_DiPFJet125_45_Mjj1050_v4
       46620         236          +9          -8   HLT_VBF_DiPFJet125_45_Mjj1200_v2
       46620         167          +7          -4   HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v2
       46620         154          +9          -4   HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v2
       46620          77          +7          -3   HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v2
       46620          63          +6          -2   HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v2
       46620          43          +4           -   HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v2
       46620          33          +3           -   HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v2
       46620          31          +2          -1   HLT_VBF_DiPFJet50_Mjj650_Photon22_v2
       46620          27          +1          -1   HLT_VBF_DiPFJet50_Mjj750_Photon22_v2
       46620          21           -          -3   HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v2
       46620          15           -          -3   HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v2
       46620          18           -          -1   HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v2
       46620          14           -          -1   HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v2
       46620          13          +1           -   HLT_PFJet200_TimeLtNeg2p5ns_v6

I'm re-running at least two times both the reference configuration and the customised one on cpu and on gpu to get a feeling of the stability of the results.

fwyzard avatar May 18 '24 09:05 fwyzard

  • running twice the current HLT menu on CPU, I get identical results
  • running twice the current HLT menu on GPU, I get +/-1 event on less than 20 paths
  • comparing the current HLT menu on GPU vs CPU, I get +/- 2 events on less than 60 paths

  • running twice the customised HLT menu on CPU, I get discrepancies in over 100 paths, some above 10%
  • running twice the customised HLT menu on GPU, I get +/- 1 event on less than 20 paths
  • comparing the customised HLT menu on GPU vs CPU, I get discrepancies in over 250 paths, mostly based on HT an jets, some above 10%

  • comparing the customised vs current HLT menu on CPU, I get similar discrepancies as above

So, looks like there is something wrong with the new implementation, especially running on CPU.

fwyzard avatar May 18 '24 12:05 fwyzard

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40307

  • This PR adds an extra 336KB to repository

  • Found files with invalid states:

    • EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisProducerPortable.cc:
      • Added: 79beb3caa6d4fd835485d1c86b4f3042b31fd74f
      • Modified: d82fbab148b71abb6a6e518b9fc121b41f043efc, 715105876f8999402d3e30f2fa94579275479978
      • Deleted: 6ba6f2400bad40a6f2c057fda1e488559181d93a
  • There are other open Pull requests which might conflict with changes you have proposed:

    • File Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py modified in PR(s): #33532, #43761, #43964, #44785, #44964, #45005

Code check has found code style and quality issues which could be resolved by applying following patch(s)

  • code-format: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40307/code-format.patch e.g. curl -k https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-44910/40307/code-format.patch | patch -p1 You can also run scram build code-format to apply code format directly

cmsbuild avatar May 22 '24 19:05 cmsbuild

This commit 366edd90ff83c3c8b12b92b783945dffd9eb609e adds the legacy workflow for comparing Alpaka result to legacy CPU result. The following workflow compares Alpaka GPU and Legacy CPU:

runTheMatrix.py -w upgrade -l 12434.423

I do see the discrepancies at low energies. I'm trying to debug this now. Ideas for how to debug are welcome. image image

kakwok avatar May 22 '24 19:05 kakwok

Ideas for how to debug are welcome.

Given that I observed different results running the same job twice, I suspect some uninitialised memory usage.

You could try running (on CPU) using the ASAN IBs, or (on GPU) with the NVIDIA compute-sanitizer.

fwyzard avatar May 22 '24 21:05 fwyzard

@kakwok @fwyzard

I have been trying to run some basic HLT menu testing including this PR in the following way:

#!/bin/bash

cmsrel CMSSW_14_0_7_MULTIARCHS
cd  CMSSW_14_0_7_MULTIARCHS/src
cmsenv
git cms-addpkg CondFormats/DataRecord
git cms-addpkg CondFormats/HcalObjects 
git cms-addpkg DQM/HcalTasks 
git cms-addpkg DataFormats/HcalDigi
git cms-addpkg DataFormats/HcalRecHit 
git cms-addpkg EventFilter/HcalRawToDigi 
git cms-addpkg HeterogeneousCore/AlpakaInterface 
git cms-addpkg RecoLocalCalo/Configuration 
git cms-addpkg RecoLocalCalo/HcalRecAlgos 
git cms-addpkg RecoLocalCalo/HcalRecProducers
git cms-addpkg Configuration/PyReleaseValidation
wget https://patch-diff.githubusercontent.com/raw/cms-sw/cmssw/pull/44910.diff
git apply 44910.diff
git cms-checkdeps -a
scram b -j 20

(not merging this topic, to avoid having too many packages to recompile) and then using the customization function at https://github.com/cms-sw/cmssw/pull/44910#issuecomment-2118482271 (slightly modified to comply with the latest modifications in this PR - you can find it at this commit https://github.com/mmusich/cmssw/commit/15ea9750359193d75e9e406d80d17d7c48b78788 ).

Then I tried running on 2024 data with:

hltGetConfiguration /dev/CMSSW_14_0_0/GRun --unprescale --output minimal --globaltag 140X_dataRun3_HLT_v3 --mc --max-events 10000 --input root://eoscms.cern.ch//eos/cms/tier0/store/data/Run2024E/HLTPhysics/RAW/v1/000/381/070/00000/3b87e7a8-9e8e-4b8c-830f-f14d65a40086.root --customise HLTrigger/Configuration/customizeHLTforAlpaka.customizeHLTforAlpaka > hlt_data.py

and didn't observe any issues.

On the other hand trying to run on (2023) MC with this recipe:

 hltGetConfiguration /dev/CMSSW_14_0_0/GRun --unprescale --output minimal --globaltag auto:phase1_2024_realistic --mc --max-events 100 --eras Run3 --l1-emulator uGT --l1 L1Menu_Collisions2024_v1_2_0_xml --input /store/mc/Run3Winter24Digi/TT_TuneCP5_13p6TeV_powheg-pythia8/GEN-SIM-RAW/133X_mcRun3_2024_realistic_v8-v2/80000/dc984f7f-2e54-48c4-8950-5daa848b6db9.root --customise HLTrigger/Configuration/customizeHLTforAlpaka.customizeHLTforAlpaka > hlt_mc.py

I get an assertion failure:

cmsRun: src/RecoLocalCalo/HcalRecProducers/plugins/alpaka/Mahi.dev.cc:368: void alpaka_serial_sync::hcal::reconstruction::mahi::Kernel_prep1d_sameNumberOfSamples::operator()(const TAcc&, PortableHostColl
ection<hcal::HcalRecHitSoALayout<> >::View, PortableHostCollection<hcal::HcalPhase1DigiSoALayout<> >::ConstView, PortableHostCollection<hcal::HcalPhase0DigiSoALayout<> >::ConstView, PortableHostCollectio
n<hcal::HcalPhase1DigiSoALayout<> >::ConstView, PortableHostCollection<hcal::HcalMahiConditionsSoALayout<> >::ConstView, PortableHostCollection<hcal::HcalSiPMCharacteristicsSoALayout<> >::ConstView, hcal
::HcalRecoParamWithPulseShapeT<alpaka::DevCpu>::ConstView, bool, int, int, int, float, float*, float*, float*, int8_t*, int) const [with TAcc = alpaka::AccCpuSerial<std::integral_constant<long unsigned i
nt, 2>, unsigned int>; <template-parameter-1-2> = void; PortableHostCollection<hcal::HcalRecHitSoALayout<> >::View = hcal::HcalRecHitSoALayout<>::ViewTemplateFreeParams<128, false, true, false>; Portable
HostCollection<hcal::HcalPhase1DigiSoALayout<> >::ConstView = hcal::HcalPhase1DigiSoALayout<>::ConstViewTemplateFreeParams<128, false, true, false>; PortableHostCollection<hcal::HcalPhase0DigiSoALayout<>
 >::ConstView = hcal::HcalPhase0DigiSoALayout<>::ConstViewTemplateFreeParams<128, false, true, false>; PortableHostCollection<hcal::HcalMahiConditionsSoALayout<> >::ConstView = hcal::HcalMahiConditionsSo
ALayout<>::ConstViewTemplateFreeParams<128, false, true, false>; PortableHostCollection<hcal::HcalSiPMCharacteristicsSoALayout<> >::ConstView = hcal::HcalSiPMCharacteristicsSoALayout<>::ConstViewTemplate
FreeParams<128, false, true, false>; int8_t = signed char]: Assertion `nsamples == nsamplesForCompute || nsamples - startingSample == nsamplesForCompute' failed.

I've tried several MC input files (including 2024 relval TTbar) and always obtained the same assertion. I can't exclude an issue in my setup, though I would be curious to understand if this was tested (at HLT) also in simulation. Thank you!

mmusich avatar May 23 '24 20:05 mmusich