Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
alpakaValidationEcal.toModify(ecalGpuTask.params, runGpuTask = True)
alpakaValidationEcal.toModify(ecalMonitorTask.workers, func = lambda workers: workers.append("GpuTask"))
alpakaValidationEcal.toModify(ecalMonitorTask, workerParameters = dict(GpuTask = ecalGpuTask))
alpakaValidationEcal.toModify(ecalDQMCollectionTags, EBCpuDigi = "ecalDigisSerialSync:ebDigis")
alpakaValidationEcal.toModify(ecalDQMCollectionTags, EECpuDigi = "ecalDigisSerialSync:eeDigis")
alpakaValidationEcal.toModify(ecalDQMCollectionTags, EBCpuUncalibRecHit = "ecalMultiFitUncalibRecHitSerialSync:EcalUncalibRecHitsEB")
alpakaValidationEcal.toModify(ecalDQMCollectionTags, EECpuUncalibRecHit = "ecalMultiFitUncalibRecHitSerialSync:EcalUncalibRecHitsEE")

# Skip consuming and running over the EcalRawData collection for all GPU WFs
# This is to be used as long as the GPU unpacker unpacks a dummy EcalRawData collection
Expand Down
22 changes: 20 additions & 2 deletions DQMOffline/Trigger/python/HeterogeneousMonitoring_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,29 @@
from DQM.EcalMonitorTasks.EcalMonitorTask_cfi import *
from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask as _ecalGpuTask

hltEcalGpuTask = _ecalGpuTask.clone(
_hltdir = 'HLT/HeterogeneousComparisons/'
_remove = '%(prefix)sGpuTask/'

def cloneMEsWithPathFix(srcMEs, prefix):
clones = {}
for name, me in srcMEs.parameters_().items():
if hasattr(me, 'path'):
old = me.path.value()
# remove the unwanted component if present
new = old.replace(_remove, '')
# prepend the HLT directory if not already there
new = prefix + new
clones[name] = me.clone(path = new)
else:
clones[name] = me.clone()
return clones

hltEcalGpuTask = _ecalGpuTask.clone(
params = _ecalGpuTask.params.clone(
runGpuTask = True,
enableRecHit = False
)
),
MEs = cloneMEsWithPathFix(_ecalGpuTask.MEs, _hltdir)
)

hltEcalMonitorTask = ecalMonitorTask.clone(
Expand Down
18 changes: 15 additions & 3 deletions EventFilter/EcalRawToDigi/python/ecalDigis_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,21 @@

alpaka.toReplaceWith(ecalDigisTask, ecalDigisTask_alpaka)

# for alpaka validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
# for GPU validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal
_ecalDigisTaskValidation = ecalDigisTask_alpaka.copy()
_ecalDigisTaskValidation.add(ecalDigisLegacy)
alpakaValidationEcal.toReplaceWith(ecalDigisTask, _ecalDigisTaskValidation)
gpuValidationEcal.toReplaceWith(ecalDigisTask, _ecalDigisTaskValidation)

# for alpaka validation compare alpaka serial with alpaka
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
from HeterogeneousCore.AlpakaCore.functions import makeSerialClone
ecalDigisPortableSerialSync = makeSerialClone(ecalDigisPortable)
ecalDigisSerialSync = _ecalDigisFromPortable.clone(
digisInLabelEB = 'ecalDigisPortableSerialSync:ebDigis',
digisInLabelEE = 'ecalDigisPortableSerialSync:eeDigis'
)
_ecalDigisTaskValidation = ecalDigisTask_alpaka.copy()
_ecalDigisTaskValidation.add(ecalDigisPortableSerialSync)
_ecalDigisTaskValidation.add(ecalDigisSerialSync)
alpakaValidationEcal.toReplaceWith(ecalDigisTask, _ecalDigisTaskValidation)
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,21 @@
ecalMultiFitUncalibRecHit,
))

# for alpaka validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
# for GPU validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal
_ecalMultiFitUncalibRecHitTaskValidation = ecalMultiFitUncalibRecHitTask.copy()
_ecalMultiFitUncalibRecHitTaskValidation.add(ecalMultiFitUncalibRecHitLegacy)
gpuValidationEcal.toReplaceWith(ecalMultiFitUncalibRecHitTask, _ecalMultiFitUncalibRecHitTaskValidation)

# for alpaka validation compare alpaka serial with alpaka
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
from HeterogeneousCore.AlpakaCore.functions import makeSerialClone
ecalMultiFitUncalibRecHitPortableSerialSync = makeSerialClone(ecalMultiFitUncalibRecHitPortable)
ecalMultiFitUncalibRecHitSerialSync = _ecalUncalibRecHitSoAToLegacy.clone(
inputCollectionEB = 'ecalMultiFitUncalibRecHitPortableSerialSync:EcalUncalibRecHitsEB',
inputCollectionEE = 'ecalMultiFitUncalibRecHitPortableSerialSync:EcalUncalibRecHitsEE'
)
_ecalMultiFitUncalibRecHitTaskValidation = ecalMultiFitUncalibRecHitTask.copy()
_ecalMultiFitUncalibRecHitTaskValidation.add(ecalMultiFitUncalibRecHitPortableSerialSync)
_ecalMultiFitUncalibRecHitTaskValidation.add(ecalMultiFitUncalibRecHitSerialSync)
alpakaValidationEcal.toReplaceWith(ecalMultiFitUncalibRecHitTask, _ecalMultiFitUncalibRecHitTaskValidation)
17 changes: 15 additions & 2 deletions RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,23 @@
ecalRecHit,
))

# for alpaka validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
# for gpu validation compare the legacy CPU module with the alpaka module
from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal
_ecalCalibratedRecHitTaskValidation = ecalCalibratedRecHitTask.copy()
_ecalCalibratedRecHitTaskValidation.add()
gpuValidationEcal.toReplaceWith(ecalCalibratedRecHitTask, _ecalCalibratedRecHitTaskValidation)

# for alpaka validation compare alpaka serial with alpaka
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal
from HeterogeneousCore.AlpakaCore.functions import makeSerialClone
ecalRecHitPortableSerialSync = makeSerialClone(ecalRecHitPortable)
ecalRecHitSerialSync = _ecalRecHitSoAToLegacy.clone(
inputCollectionEB = 'ecalRecHitPortableSerialSync:EcalRecHitsEB',
inputCollectionEE = 'ecalRecHitPortableSerialSync:EcalRecHitsEE',
)
_ecalCalibratedRecHitTaskValidation = ecalCalibratedRecHitTask.copy()
_ecalCalibratedRecHitTaskValidation.add(ecalRecHitPortableSerialSync)
_ecalCalibratedRecHitTaskValidation.add(ecalRecHitSerialSync)
alpakaValidationEcal.toReplaceWith(ecalCalibratedRecHitTask, _ecalCalibratedRecHitTaskValidation)

from Configuration.Eras.Modifier_phase2_ecal_devel_cff import phase2_ecal_devel
Expand Down