Skip to content

Commit 721f120

Browse files
authored
Merge pull request #49340 from mmusich/mm_hlt_gpu_vs_cpu_comparisons_in_offline_dqm
Implement GPU vs CPU comparison for HLT pixel tracking heterogeneous products in patatrack workflows
2 parents edca2da + 0e98d60 commit 721f120

File tree

7 files changed

+63
-30
lines changed

7 files changed

+63
-30
lines changed

Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
13781378
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
13791379
},
13801380
harvest = {
1381-
'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'
1381+
'-s': 'HARVESTING:@ecalOnlyValidation+@ecal+@hltGPUvsCPU'
13821382
},
13831383
suffix = 'Patatrack_ECALOnlyAlpaka',
13841384
offset = 0.412,
@@ -1400,7 +1400,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
14001400
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
14011401
},
14021402
harvest = {
1403-
'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'
1403+
'-s': 'HARVESTING:@ecalOnlyValidation+@ecal+@hltGPUvsCPU'
14041404
},
14051405
suffix = 'Patatrack_ECALOnlyAlpakaValidation',
14061406
offset = 0.413,
@@ -1419,7 +1419,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
14191419
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
14201420
},
14211421
harvest = {
1422-
'-s': 'HARVESTING:@hcalOnlyValidation'
1422+
'-s': 'HARVESTING:@hcalOnlyValidation+@hltGPUvsCPU'
14231423
},
14241424
suffix = 'Patatrack_HCALOnlyAlpaka_Validation',
14251425
offset = 0.422,
@@ -1438,7 +1438,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
14381438
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
14391439
},
14401440
harvest = {
1441-
'-s': 'HARVESTING:@hcalOnlyValidation'
1441+
'-s': 'HARVESTING:@hcalOnlyValidation+@hltGPUvsCPU'
14421442
},
14431443
suffix = 'Patatrack_HCALOnlyGPUandAlpaka_Validation',
14441444
offset = 0.423,
@@ -1517,7 +1517,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
15171517
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
15181518
},
15191519
harvest = {
1520-
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
1520+
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@hltGPUvsCPU'
15211521
},
15221522
suffix = 'Patatrack_PixelOnlyAlpaka',
15231523
offset = 0.402,
@@ -1560,7 +1560,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
15601560
'--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling',
15611561
},
15621562
harvest = {
1563-
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
1563+
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@hltGPUvsCPU',
15641564
'--procModifiers': 'alpakaValidation',
15651565
},
15661566
suffix = 'Patatrack_PixelOnlyAlpaka_Validation',
@@ -1599,7 +1599,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
15991599
'--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling'
16001600
},
16011601
harvest = {
1602-
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
1602+
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@hltGPUvsCPU'
16031603
},
16041604
suffix = 'Patatrack_PixelOnlyTripletsAlpaka',
16051605
offset = 0.406,
@@ -1620,7 +1620,7 @@ def setup_(self, step, stepName, stepDict, k, properties):
16201620
'--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling'
16211621
},
16221622
harvest = {
1623-
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
1623+
'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@hltGPUvsCPU'
16241624
},
16251625
suffix = 'Patatrack_PixelOnlyTripletsAlpaka_Validation',
16261626
offset = 0.407,

DQM/SiPixelHeterogeneous/plugins/SiPixelCompareRecHits.cc

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -223,30 +223,30 @@ void SiPixelCompareRecHits::bookHistograms(DQMStore::IBooker& iBook,
223223

224224
// clang-format off
225225
//Global
226-
hnHits_ = iBook.book2I("nHits", "ReferencevsTarget RecHits per event;#Reference RecHits;#Target RecHits", 200, 0, 5000,200, 0, 5000);
226+
hnHits_ = iBook.book2I("nHits", "RecHits per event;#Reference RecHits;#Target RecHits", 200, 0, 5000,200, 0, 5000);
227227
//Barrel Layer
228228
for(unsigned int il=0;il<tkGeom_->numberOfLayers(PixelSubdetector::PixelBarrel);il++){
229-
hBchargeL_[il] = iBook.book2I(Form("recHitsBLay%dCharge",il+1), Form("ReferencevsTarget RecHits Charge Barrel Layer%d;Reference Charge;Target Charge",il+1), 250, 0, 100000, 250, 0, 100000);
230-
hBsizexL_[il] = iBook.book2I(Form("recHitsBLay%dSizex",il+1), Form("ReferencevsTarget RecHits SizeX Barrel Layer%d;Reference SizeX;Target SizeX",il+1), 30, 0, 30, 30, 0, 30);
231-
hBsizeyL_[il] = iBook.book2I(Form("recHitsBLay%dSizey",il+1), Form("ReferencevsTarget RecHits SizeY Barrel Layer%d;Reference SizeY;Target SizeY",il+1), 30, 0, 30, 30, 0, 30);
232-
hBposxL_[il] = iBook.book2D(Form("recHitsBLay%dPosx",il+1), Form("ReferencevsTarget RecHits x-pos in Barrel Layer%d;Reference pos x;Target pos x",il+1), 200, -5, 5, 200,-5,5);
233-
hBposyL_[il] = iBook.book2D(Form("recHitsBLay%dPosy",il+1), Form("ReferencevsTarget RecHits y-pos in Barrel Layer%d;Reference pos y;Target pos y",il+1), 200, -5, 5, 200,-5,5);
229+
hBchargeL_[il] = iBook.book2I(Form("recHitsBLay%dCharge",il+1), Form("RecHits Charge Barrel Layer%d;Reference Charge;Target Charge",il+1), 250, 0, 100000, 250, 0, 100000);
230+
hBsizexL_[il] = iBook.book2I(Form("recHitsBLay%dSizex",il+1), Form("RecHits SizeX Barrel Layer%d;Reference SizeX;Target SizeX",il+1), 30, 0, 30, 30, 0, 30);
231+
hBsizeyL_[il] = iBook.book2I(Form("recHitsBLay%dSizey",il+1), Form("RecHits SizeY Barrel Layer%d;Reference SizeY;Target SizeY",il+1), 30, 0, 30, 30, 0, 30);
232+
hBposxL_[il] = iBook.book2D(Form("recHitsBLay%dPosx",il+1), Form("RecHits x-pos in Barrel Layer%d;Reference pos x;Target pos x",il+1), 200, -5, 5, 200,-5,5);
233+
hBposyL_[il] = iBook.book2D(Form("recHitsBLay%dPosy",il+1), Form("RecHits y-pos in Barrel Layer%d;Reference pos y;Target pos y",il+1), 200, -5, 5, 200,-5,5);
234234
}
235235
//Endcaps
236236
//Endcaps Disk
237237
for(int is=0;is<2;is++){
238238
int sign=is==0? -1:1;
239239
for(unsigned int id=0;id<tkGeom_->numberOfLayers(PixelSubdetector::PixelEndcap);id++){
240-
hFchargeD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dCharge",id*sign+sign), Form("ReferencevsTarget RecHits Charge Endcaps Disk%+d;Reference Charge;Target Charge",id*sign+sign), 250, 0, 100000, 250, 0, 100000);
241-
hFsizexD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dSizex",id*sign+sign), Form("ReferencevsTarget RecHits SizeX Endcaps Disk%+d;Reference SizeX;Target SizeX",id*sign+sign), 30, 0, 30, 30, 0, 30);
242-
hFsizeyD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dSizey",id*sign+sign), Form("ReferencevsTarget RecHits SizeY Endcaps Disk%+d;Reference SizeY;Target SizeY",id*sign+sign), 30, 0, 30, 30, 0, 30);
243-
hFposxD_[is][id] = iBook.book2D(Form("recHitsFDisk%+dPosx",id*sign+sign), Form("ReferencevsTarget RecHits x-pos Endcaps Disk%+d;Reference pos x;Target pos x",id*sign+sign), 200, -5, 5, 200, -5, 5);
244-
hFposyD_[is][id] = iBook.book2D(Form("recHitsFDisk%+dPosy",id*sign+sign), Form("ReferencevsTarget RecHits y-pos Endcaps Disk%+d;Reference pos y;Target pos y",id*sign+sign), 200, -5, 5, 200, -5, 5);
240+
hFchargeD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dCharge",id*sign+sign), Form("RecHits Charge Endcaps Disk%+d;Reference Charge;Target Charge",id*sign+sign), 250, 0, 100000, 250, 0, 100000);
241+
hFsizexD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dSizex",id*sign+sign), Form("RecHits SizeX Endcaps Disk%+d;Reference SizeX;Target SizeX",id*sign+sign), 30, 0, 30, 30, 0, 30);
242+
hFsizeyD_[is][id] = iBook.book2I(Form("recHitsFDisk%+dSizey",id*sign+sign), Form("RecHits SizeY Endcaps Disk%+d;Reference SizeY;Target SizeY",id*sign+sign), 30, 0, 30, 30, 0, 30);
243+
hFposxD_[is][id] = iBook.book2D(Form("recHitsFDisk%+dPosx",id*sign+sign), Form("RecHits x-pos Endcaps Disk%+d;Reference pos x;Target pos x",id*sign+sign), 200, -5, 5, 200, -5, 5);
244+
hFposyD_[is][id] = iBook.book2D(Form("recHitsFDisk%+dPosy",id*sign+sign), Form("RecHits y-pos Endcaps Disk%+d;Reference pos y;Target pos y",id*sign+sign), 200, -5, 5, 200, -5, 5);
245245
}
246246
}
247247
//1D differences
248-
hBchargeDiff_ = iBook.book1D("rechitChargeDiffBpix","Charge differnce of rechits in BPix; rechit charge difference (Reference - Target)", 101, -50.5, 50.5);
249-
hFchargeDiff_ = iBook.book1D("rechitChargeDiffFpix","Charge differnce of rechits in FPix; rechit charge difference (Reference - Target)", 101, -50.5, 50.5);
248+
hBchargeDiff_ = iBook.book1D("rechitChargeDiffBpix","Charge difference of rechits in BPix; rechit charge difference (Reference - Target)", 101, -50.5, 50.5);
249+
hFchargeDiff_ = iBook.book1D("rechitChargeDiffFpix","Charge difference of rechits in FPix; rechit charge difference (Reference - Target)", 101, -50.5, 50.5);
250250
hBsizeXDiff_ = iBook.book1D("rechitsizeXDiffBpix","SizeX difference of rechits in BPix; rechit sizex difference (Reference - Target)", 21, -10.5, 10.5);
251251
hFsizeXDiff_ = iBook.book1D("rechitsizeXDiffFpix","SizeX difference of rechits in FPix; rechit sizex difference (Reference - Target)", 21, -10.5, 10.5);
252252
hBsizeYDiff_ = iBook.book1D("rechitsizeYDiffBpix","SizeY difference of rechits in BPix; rechit sizey difference (Reference - Target)", 21, -10.5, 10.5);

DQM/SiPixelHeterogeneous/plugins/SiPixelCompareRecHitsSoA.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ void SiPixelCompareRecHitsSoA<T>::bookHistograms(DQMStore::IBooker& iBook,
222222
}
223223
}
224224
//1D differences
225-
hBchargeDiff_ = iBook.book1D("rechitChargeDiffBpix","Charge differnce of rechits in BPix; rechit charge difference (CPU - GPU)", 101, -50.5, 50.5);
226-
hFchargeDiff_ = iBook.book1D("rechitChargeDiffFpix","Charge differnce of rechits in FPix; rechit charge difference (CPU - GPU)", 101, -50.5, 50.5);
225+
hBchargeDiff_ = iBook.book1D("rechitChargeDiffBpix","Charge difference of rechits in BPix; rechit charge difference (CPU - GPU)", 101, -50.5, 50.5);
226+
hFchargeDiff_ = iBook.book1D("rechitChargeDiffFpix","Charge difference of rechits in FPix; rechit charge difference (CPU - GPU)", 101, -50.5, 50.5);
227227
hBsizeXDiff_ = iBook.book1D("rechitsizeXDiffBpix","SizeX difference of rechits in BPix; rechit sizex difference (CPU - GPU)", 21, -10.5, 10.5);
228228
hFsizeXDiff_ = iBook.book1D("rechitsizeXDiffFpix","SizeX difference of rechits in FPix; rechit sizex difference (CPU - GPU)", 21, -10.5, 10.5);
229229
hBsizeYDiff_ = iBook.book1D("rechitsizeYDiffBpix","SizeY difference of rechits in BPix; rechit sizey difference (CPU - GPU)", 21, -10.5, 10.5);

DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
from DQMOffline.EGamma.egammaPostProcessing_cff import *
8888
from DQMOffline.HLTScouting.HLTScoutingPostProcessing_cff import *
8989
from DQMOffline.Trigger.DQMOffline_Trigger_Client_cff import *
90+
from DQMOffline.Trigger.HeterogeneousMonitoringClient_cff import *
9091
from DQMOffline.Trigger.DQMOffline_HLT_Client_cff import *
9192
from DQMOffline.RecoB.dqmCollector_cff import *
9293
from DQM.BeamMonitor.AlcaBeamMonitorClient_cff import *
@@ -101,6 +102,9 @@
101102
DQMOffline_SecondStepTrigger = cms.Sequence( triggerOfflineDQMClient *
102103
hltOfflineDQMClient )
103104

105+
# HLT Heterogeneous monitoring sequence
106+
DQMHarvestHLTGPUvsCPU = cms.Sequence( HLTHeterogeneousMonitoringHarvesting )
107+
104108
DQMOffline_SecondStepBTag = cms.Sequence( bTagCollectorSequenceDATA )
105109

106110
DQMOffline_SecondStepBeam = cms.Sequence( alcaBeamMonitorClient )

DQMOffline/Configuration/python/autoDQM.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233

234234
'hltGPUvsCPU' : ['DQMOfflineHLTGPUvsCPU',
235235
'PostDQMOffline',
236-
'dqmHarvesting'],
236+
'DQMHarvestHLTGPUvsCPU'],
237237

238238
'standardDQMExpress': ['DQMOfflineExpress',
239239
'PostDQMOffline',
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# Tracker
4+
from DQM.SiPixelHeterogeneous.siPixelTrackComparisonHarvester_cfi import *
5+
hltSiPixelTrackComparisonHarvester = siPixelTrackComparisonHarvester.clone(topFolderName = 'HLT/HeterogeneousComparisons/PixelTracks')
6+
7+
HLTHeterogeneousMonitoringHarvesting = cms.Sequence(hltSiPixelTrackComparisonHarvester)

DQMOffline/Trigger/python/HeterogeneousMonitoring_cff.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,28 @@
2828
from DQM.SiPixelHeterogeneous.SiPixelHeterogenousDQM_FirstStep_cff import *
2929

3030
hltSiPixelPhase1CompareDigiErrors = siPixelPhase1RawDataErrorComparator.clone(
31-
topFolderName = cms.string('HLT/HeterogeneousComparisons/PixelErrors'),
32-
pixelErrorSrcGPU = cms.InputTag("hltSiPixelDigiErrors"),
33-
pixelErrorSrcCPU = cms.InputTag("hltSiPixelDigiErrorsSerialSync")
31+
pixelErrorSrcGPU = 'hltSiPixelDigiErrors',
32+
pixelErrorSrcCPU = 'hltSiPixelDigiErrorsSerialSync',
33+
topFolderName = 'HLT/HeterogeneousComparisons/PixelErrors'
34+
)
35+
36+
hltSiPixelPhase1CompareRecHits = siPixelPhase1CompareRecHits.clone(
37+
pixelHitsReferenceSoA = 'hltSiPixelRecHitsSoASerialSync',
38+
pixelHitsTargetSoA = 'hltSiPixelRecHitsSoA',
39+
topFolderName = 'HLT/HeterogeneousComparisons/PixelRecHits'
40+
)
41+
42+
hltSiPixelPhase1CompareTracks = siPixelPhase1CompareTracks.clone(
43+
pixelTrackReferenceSoA = 'hltPixelTracksSoASerialSync',
44+
pixelTrackTargetSoA = 'hltPixelTracksSoA',
45+
topFolderName = 'HLT/HeterogeneousComparisons/PixelTracks'
46+
)
47+
48+
hltSiPixelCompareVertices = siPixelCompareVertices.clone(
49+
pixelVertexReferenceSoA = 'hltPixelVerticesSoASerialSync',
50+
pixelVertexTargetSoA = 'hltPixelVerticesSoA',
51+
beamSpotSrc = 'hltOnlineBeamSpot',
52+
topFolderName = 'HLT/HeterogeneousComparisons/PixelVertices'
3453
)
3554

3655
# Ecal
@@ -76,9 +95,12 @@
7695
)
7796

7897
HLTHeterogeneousMonitoringSequence = cms.Sequence(
79-
hltPfHcalGPUComparisonTask+
80-
hltSiPixelPhase1CompareDigiErrors+
81-
hltEcalMonitorTask+
98+
hltPfHcalGPUComparisonTask +
99+
hltSiPixelPhase1CompareDigiErrors +
100+
hltSiPixelPhase1CompareRecHits +
101+
hltSiPixelPhase1CompareTracks +
102+
hltSiPixelCompareVertices +
103+
hltEcalMonitorTask +
82104
hltHcalGPUComparisonTask
83105
)
84106

0 commit comments

Comments
 (0)