-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Load CUDAService from Services_cff, and only if gpu modifier is active #432
Load CUDAService from Services_cff, and only if gpu modifier is active #432
Conversation
Validation summaryReference release CMSSW_11_0_0_pre13 at 91be707 Validation plots/RelValTTbar_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_realistic_v4-v1/GEN-SIM-DIGI-RAW
/RelValZMM_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_realistic_v4-v1/GEN-SIM-DIGI-RAW
/RelValTTbar_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_design_v3-v1/GEN-SIM-DIGI-RAW
Throughput plots/EphemeralHLTPhysics1/Run2018D-v1/RAW run=323775 lumi=53logs and
|
This breaks the |
Thanks. So this cmssw/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py Lines 8 to 11 in e41560b
should be changed to something along offlineBeamSpotTask = cms.Task(offlineBeamSpot)
_offlineBeamSpotTask_gpu = offlineBeamSpotTask.clone()
_offlineBeamSpotTask_gpu.add(offlineBeamSpotCUDA)
gpu.toReplaceWith(offlineBeamSpotTask, _offlineBeamSpotTask_gpu) I'll include that in this PR once I finish updating #429. |
Done. |
🚧 Validation running at fu-c2a02-37-02:/data/user/adiflori/patatrack-validation/run.lDELclKDOR ...
|
Validation summaryReference release CMSSW_11_0_0_pre13 at 91be707 Validation plots/RelValTTbar_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_realistic_v4-v1/GEN-SIM-DIGI-RAW
/RelValZMM_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_realistic_v4-v1/GEN-SIM-DIGI-RAW
/RelValTTbar_13/CMSSW_10_6_0-PU25ns_106X_upgrade2018_design_v3-v1/GEN-SIM-DIGI-RAW
Throughput plots/EphemeralHLTPhysics1/Run2018D-v1/RAW run=323775 lumi=53logs and
|
Thanks, the |
offlineBeamSpotCUDA | ||
) | ||
from Configuration.ProcessModifiers.gpu_cff import gpu | ||
offlineBeamSpotCUDA = _beamSpotToCUDA.clone() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not suggesting to change this, just trying to understand: would it be equivalent to replace
from RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi import beamSpotToCUDA as _beamSpotToCUDA
offlineBeamSpotCUDA = _beamSpotToCUDA.clone()
with
from RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi import beamSpotToCUDA as offlineBeamSpotCUDA
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The two are not equivalent. The first one creates a copy/clone of RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi.beamSpotToCUDA
, so if the BeamSpot_cff.py
would do something along
offlineBeamSpotCUDA.src = "foo"
that change does not propagate to other configurations making use of RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi.beamSpotToCUDA
.
The second one uses the very same object as RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi.beamSpotToCUDA
, and any changes to offlineBeamSpotCUDA
do propagate to other configurations making use of RecoVertex.BeamSpotProducer.beamSpotToCUDA_cfi.beamSpotToCUDA
, which could be perceived as unexpected.
In this specific case there is little practical difference, so the choice of cloning is more of a following the recommended general pattern (and also protects for the case that someone else would use the second approach and modify a parameter).
PR description:
Addresses cms-sw#28575.
PR validation:
Unit tests run, profiling workflow runs (without explicit load of
CUDAService
).