From 5d626de465a8139d645e3c047d7f4220ec61ba2d Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Tue, 3 Dec 2024 14:48:06 +0100 Subject: [PATCH] Removing CUDA/gpu from Pixel code configs, removing all CUDA wfs --- .../python/pixelNtupletFit_cff.py | 7 - Configuration/PyReleaseValidation/README.md | 17 - .../PyReleaseValidation/python/relval_gpu.py | 2 - .../python/upgradeWorkflowComponents.py | 647 +----------------- .../PyReleaseValidation/scripts/README.md | 113 ++- .../python/SiPixelRawToDigi_cfi.py | 25 +- .../python/siPixelDigis_cff.py | 35 - .../python/HILowPtConformalPixelTracks_cfi.py | 93 +-- .../SiPixelClusterizerPreSplitting_cfi.py | 25 +- .../python/SiPixelClusterizer_cfi.py | 7 +- .../python/siPixelClustersPreSplitting_cff.py | 92 +-- .../python/PixelCPEESProducers_cff.py | 3 - .../python/SiPixelRecHits_cfi.py | 122 +--- .../python/PixelTracks_cff.py | 113 --- .../BeamSpotProducer/python/BeamSpot_cff.py | 6 - .../python/RecoPixelVertexing_cff.py | 98 +-- 16 files changed, 122 insertions(+), 1283 deletions(-) delete mode 100644 Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py diff --git a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py b/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py deleted file mode 100644 index 94b14a4f5a6e3..0000000000000 --- a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This modifier is for replacing the legacy pixel tracks with the "Patatrack" pixel ntuplets, -# fishbone cleaning, and either the Broken Line fit (by default) or the Riemann fit. -# It also replaces the "gap" pixel vertices with a density-based vertex reconstruction algorithm. - -pixelNtupletFit = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index a114e81d7146c..626b7643e06f0 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -43,23 +43,6 @@ The offsets currently in use are: * 0.492: Alpaka, full reco with pixel quadruplets * 0.496: Alpaka, full reco with pixel triplets * 0.5: Pixel tracking only + 0.1 -* 0.501: Patatrack, pixel only quadruplets, on CPU -* 0.502: Patatrack, pixel only quadruplets, with automatic offload to GPU if available -* 0.504: Patatrack, pixel only quadruplets, GPU profiling -* 0.505: Patatrack, pixel only triplets, on CPU -* 0.506: Patatrack, pixel only triplets, with automatic offload to GPU if available -* 0.508: Patatrack, pixel only triplets, GPU profiling -* 0.511: Patatrack, ECAL only, on CPU -* 0.512: Patatrack, ECAL only, with automatic offload to GPU if available -* 0.513: Patatrack, ECAL only, GPU vs. CPU validation -* 0.514: Patatrack, ECAL only, GPU profiling -* 0.521: Patatrack, HCAL only, on CPU -* 0.522: Patatrack, HCAL only, with automatic offload to GPU if available -* 0.524: Patatrack, HCAL only, GPU profiling -* 0.591: Patatrack, full reco with pixel quadruplets, on CPU -* 0.592: Patatrack, full reco with pixel quadruplets, with automatic offload to GPU if available -* 0.595: Patatrack, full reco with pixel triplets, on CPU -* 0.596: Patatrack, full reco with pixel triplets, with automatic offload to GPU if available * 0.6: HE Collapse (old depth segmentation for 2018) * 0.601: HLT as separate step * 0.7: trackingMkFit modifier diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index e70d877c1daaa..a53086f4ae4bc 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -42,8 +42,6 @@ # Alpaka pixel-only: TTbar with PU: quadruplets any backend, any backend vs cpu validation, profiling numWFIB = [ - # 2023, Alpaka-based noPU - 12434.402,12434.403,12434.412,12434.422,12434.423, # 2024, Alpaka-based noPU 12834.402, 12834.403, 12834.404, diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 0dce1e1c1a852..080d5bc86a0d0 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1030,169 +1030,6 @@ def setup_(self, step, stepName, stepDict, k, properties): else: stepDict[stepName][k] = merge([self.__harvest, stepDict[step][k]]) -# Pixel-only quadruplets workflow running on CPU -# - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting - -upgradeWFs['PatatrackPixelOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyCPU', - offset = 0.501, -) - -# Pixel-only quadruplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyGPU', - offset = 0.502, -) - -# Pixel-only quadruplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_PixelOnlyGPU_Validation', - offset = 0.503, -) - -# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise' : 'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyGPU_Profiling', - offset = 0.504, -) - -# Pixel-only triplets workflow running on CPU -# - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyTripletsCPU', - offset = 0.505, -) - -# Pixel-only triplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyTripletsGPU', - offset = 0.506, -) - -# Pixel-only triplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation', - }, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Validation', - offset = 0.507, -) - -# Pixel-only triplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyTripletsGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Profiling', - offset = 0.508, -) # ECAL-only workflow running on CPU or GPU with Alpaka code # - HLT with Alpaka @@ -1201,7 +1038,6 @@ def setup_(self, step, stepName, stepDict, k, properties): upgradeWFs['PatatrackECALOnlyAlpaka'] = PatatrackWorkflow( digi = { # customize the ECAL Local Reco part of the HLT menu for Alpaka - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1216,168 +1052,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.412, ) -# ECAL-only workflow running on CPU -# - HLT on CPU -# - ECAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyCPU', - offset = 0.511, -) - -# ECAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU', - offset = 0.512, -) - -# ECAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - ECAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackECALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU_Validation', - offset = 0.513, -) - -# ECAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackECALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_ECALOnlyGPU_Profiling', - offset = 0.514, -) - -# HCAL-only workflow running on CPU -# - HLT on CPU -# - HCAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyCPU', - offset = 0.521, -) - -# HCAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyGPU', - offset = 0.522, -) - -# HCAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - HCAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcal' - }, - suffix = 'Patatrack_HCALOnlyGPU_Validation', - offset = 0.523, -) - -# HCAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackHCALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_HCALOnlyGPU_Profiling', - offset = 0.524, -) - # HCAL-PF Only workflow running HCAL local reco on GPU and PF with Alpaka with DQM and Validation # - HLT-alpaka # - HCAL-only reconstruction using Alpaka with DQM and Validation upgradeWFs['PatatrackHCALOnlyAlpakaValidation'] = PatatrackWorkflow( - digi = { - '--procModifiers': 'alpaka', + digi = { '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1397,7 +1076,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using GPU and Alpaka with DQM and Validation for PF Alpaka vs CPU comparisons upgradeWFs['PatatrackHCALOnlyGPUandAlpakaValidation'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1417,7 +1095,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using Alpaka upgradeWFs['PatatrackHCALOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', }, reco = { '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', @@ -1434,7 +1111,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - harvesting upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1454,9 +1130,9 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HLT on GPU (optional) # - reconstruction on Alpaka, with DQM and validation # - harvesting + upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1472,309 +1148,9 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.496, ) -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllCPU', - offset = 0.581, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllGPU', - offset = 0.582, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with DQM and validation # - harvesting -upgradeWFs['PatatrackAllGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllGPU_Validation', - offset = 0.583, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.584 to be implemented - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsCPU', - offset = 0.585, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsGPU', - offset = 0.586, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackAllTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllTripletsGPU_Validation', - offset = 0.587, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.588 to be implemented - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoCPU', - offset = 0.591, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU', - offset = 0.592, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU_Validation', - offset = 0.593, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsCPU', - offset = 0.595, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsCPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsCPUProdLike', - offset = 0.59521, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU', - offset = 0.596, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsGPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu', - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsGPUProdLike', - offset = 0.59621, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU_Validation', - offset = 0.597, -) upgradeWFs['PatatrackPixelOnlyAlpaka'] = PatatrackWorkflow( digi = { @@ -1793,6 +1169,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.402, ) +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1811,6 +1191,8 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.403, ) +# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking + upgradeWFs['PatatrackPixelOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1825,6 +1207,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.404, ) + +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpaka'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1842,6 +1229,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.406, ) +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', diff --git a/Configuration/PyReleaseValidation/scripts/README.md b/Configuration/PyReleaseValidation/scripts/README.md index 829b8f1288e59..291a170176e5e 100644 --- a/Configuration/PyReleaseValidation/scripts/README.md +++ b/Configuration/PyReleaseValidation/scripts/README.md @@ -227,63 +227,62 @@ premix nano matrix> showWorkflow gpu -140.065506 Run3-2023_JetMET2022D_RecoPixelOnlyTripletsGPU -140.065512 Run3-2023_JetMET2022D_RecoECALOnlyGPU -140.065522 Run3-2023_JetMET2022D_RecoHCALOnlyGPU -11634.502 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU -11634.503 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Validation -11634.504 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Profiling -11634.506 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU -11634.507 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11634.508 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -11634.512 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU -11634.513 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Validation -11634.514 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Profiling -11634.522 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU -11634.523 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Validation -11634.524 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Profiling -11634.582 TTbar_14TeV+2021_Patatrack_AllGPU -11634.583 TTbar_14TeV+2021_Patatrack_AllGPU_Validation -11634.586 TTbar_14TeV+2021_Patatrack_AllTripletsGPU -11634.587 TTbar_14TeV+2021_Patatrack_AllTripletsGPU_Validation -11634.592 TTbar_14TeV+2021_Patatrack_FullRecoGPU -11634.593 TTbar_14TeV+2021_Patatrack_FullRecoGPU_Validation -11634.596 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU -11634.597 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU_Validation -11650.502 ZMM_14+2021_Patatrack_PixelOnlyGPU -11650.503 ZMM_14+2021_Patatrack_PixelOnlyGPU_Validation -11650.504 ZMM_14+2021_Patatrack_PixelOnlyGPU_Profiling -11650.506 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU -11650.507 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11650.508 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.502 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU -12434.503 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Validation -12434.504 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Profiling -12434.506 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU -12434.507 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12434.508 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.512 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU -12434.513 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Validation -12434.514 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Profiling -12434.522 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU -12434.523 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Validation -12434.524 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Profiling -12434.582 TTbar_14TeV+2023_Patatrack_AllGPU -12434.583 TTbar_14TeV+2023_Patatrack_AllGPU_Validation -12434.586 TTbar_14TeV+2023_Patatrack_AllTripletsGPU -12434.587 TTbar_14TeV+2023_Patatrack_AllTripletsGPU_Validation -12434.592 TTbar_14TeV+2023_Patatrack_FullRecoGPU -12434.593 TTbar_14TeV+2023_Patatrack_FullRecoGPU_Validation -12434.596 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU -12434.597 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU_Validation -12450.502 ZMM_14+2023_Patatrack_PixelOnlyGPU -12450.503 ZMM_14+2023_Patatrack_PixelOnlyGPU_Validation -12450.504 ZMM_14+2023_Patatrack_PixelOnlyGPU_Profiling -12450.506 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU -12450.507 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12450.508 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -gpu contains 55 workflows -matrix> +141.008506 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU +141.008507 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Validation +141.008508 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Profiling +141.008512 Run3-2023_JetMET2023B_RecoECALOnlyGPU +141.008513 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Validation +141.008514 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Profiling +141.008522 Run3-2023_JetMET2023B_RecoHCALOnlyGPU +141.008523 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Validation +141.008524 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Profiling +141.008583 Run3-2023_JetMET2023B_GPUValidation +160.03502 HydjetQ_MinBias_5362GeV_2023_ppReco +12450.406 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka +12450.407 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Validation +12450.408 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.402 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka +12834.403 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Validation +12834.404 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Profiling +12834.406 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka +12834.407 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Validation +12834.408 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.412 TTbar_14TeV+2024_Patatrack_ECALOnlyAlpaka +12834.422 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Validation +12834.423 TTbar_14TeV+2024_Patatrack_HCALOnlyGPUandAlpaka_Validation +12834.424 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Profiling +12850.402 ZMM_14+2024_Patatrack_PixelOnlyAlpaka +12850.403 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Validation +12850.404 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Profiling +12861.402 NuGun+2024_Patatrack_PixelOnlyAlpaka +13034.402 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka +13034.403 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13034.404 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13034.406 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13034.407 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13034.408 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13034.412 TTbar_14TeV+2024PU_Patatrack_ECALOnlyAlpaka +13034.422 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Validation +13034.423 TTbar_14TeV+2024PU_Patatrack_HCALOnlyGPUandAlpaka_Validation +13034.424 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Profiling +13050.402 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka +13050.403 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13050.404 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13050.406 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13050.407 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13050.408 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13061.402 NuGun+2024PU_Patatrack_PixelOnlyAlpaka +24834.704 TTbar_14TeV+Run4D98_lstOnGPUIters01TrackingOnly +29634.402 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka +29634.403 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Validation +29634.404 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Profiling +29634.406 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyTripletsAlpaka +29661.402 NuGun+Run4D110_Patatrack_PixelOnlyAlpaka +29834.402 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka +29834.403 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Validation +29834.404 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Profiling +gpu contains 54 workflows +matrix> ``` All commands come with dynamic TAB-completion. There's also a transient history diff --git a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py index 26136836c7b5f..18eed6451c252 100644 --- a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py +++ b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py @@ -1,36 +1,17 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu # legacy pixel unpacker from EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi import siPixelRawToDigi as _siPixelRawToDigi -siPixelDigis = SwitchProducerCUDA( - cpu = _siPixelRawToDigi.clone() -) +siPixelDigis = _siPixelRawToDigi.clone() # use the Phase 1 settings from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigis.cpu, +phase1Pixel.toModify(siPixelDigis, UsePhase1 = True ) from Configuration.ProcessModifiers.siPixelQualityRawToDigi_cff import siPixelQualityRawToDigi -siPixelQualityRawToDigi.toModify(siPixelDigis.cpu, +siPixelQualityRawToDigi.toModify(siPixelDigis, UseQualityInfo = True, SiPixelQualityLabel = 'forRawToDigi', ) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA -(gpu & ~phase2_tracker).toModify(siPixelDigis, - cuda = cms.EDAlias( - siPixelDigiErrors = cms.VPSet( - cms.PSet(type = cms.string("DetIdedmEDCollection")), - cms.PSet(type = cms.string("SiPixelRawDataErroredmDetSetVector")), - cms.PSet(type = cms.string("PixelFEDChanneledmNewDetSetVector")) - ), - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("PixelDigiedmDetSetVector")) - ) - ) -) diff --git a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py index b5484afd2fafa..da34b3d7ee662 100644 --- a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py +++ b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py @@ -7,40 +7,5 @@ siPixelDigis ) -# copy the pixel digis (except errors) and clusters to the host -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# copy the pixel digis errors to the host -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA -siPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# convert the pixel digis errors to the legacy format -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA -siPixelDigiErrors = _siPixelDigiErrorsFromSoA.clone() - -# use the Phase 1 settings -from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigiErrors, - UsePhase1 = True -) - -from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(gpu & ~phase2_tracker).toReplaceWith(siPixelDigisTask, cms.Task( - # copy the pixel digis (except errors) and clusters to the host - siPixelDigisSoA, - # copy the pixel digis errors to the host - siPixelDigiErrorsSoA, - # convert the pixel digis errors to the legacy format - siPixelDigiErrors, - # SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA - siPixelDigisTask.copy() -)) - # Remove siPixelDigis until we have phase2 pixel digis phase2_tracker.toReplaceWith(siPixelDigisTask, cms.Task()) #FIXME diff --git a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py index 146bfe0bbf071..d2a9af667a117 100644 --- a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py +++ b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py @@ -132,66 +132,27 @@ hiConformalPixelTracks ) -from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoA -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoA - -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA - -hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, - ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, - onGPU = True, - dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, - CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 1.8, - tripletMinPt = 0.1, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.1, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -hiPixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCPU", - idealConditions = False, - doPtCut = False, - ptmin = 0.25, - hardCurvCut = 0.0756, - onGPU = False, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 8, - tripletMinPt = 0.5, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.3, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) -) - -gpu.toModify(hiPixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone(src="hiPixelTracksCUDA") -) +## These are the parameters used for the offline CUDA HI Pixel Tracks +## leaving them here for the records until we have the Alpaka equivalent + +# hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, +# ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, +# onGPU = True, +# dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, +# CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, +# phiCuts = cms.vint32(19*[900]), #19 pairs +# trackQualityCuts = dict( +# chi2MaxPt = 10, +# chi2Coeff = [0.9,1.8], +# chi2Scale = 1.8, +# tripletMinPt = 0.1, +# tripletMaxTip = 0.3, +# tripletMaxZip = 12, +# quadrupletMinPt = 0.1, +# quadrupletMaxTip = 0.5, +# quadrupletMaxZip = 12 +# )) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracks,_pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", - trackSrc = "hiPixelTracksSoA", - minQuality = "highPurity" -)) hiConformalPixelTracksTaskPhase1 = cms.Task( @@ -204,20 +165,6 @@ hiConformalPixelTracks ) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the CPU - hiPixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - hiConformalPixelTracks -)) - -(gpu & pixelNtupletFit).toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - hiPixelTracksCUDA, - # just copying the task above - hiConformalPixelTracksTaskPhase1.copy() -)) - phase1Pixel.toReplaceWith(hiConformalPixelTracksTask, hiConformalPixelTracksTaskPhase1) from Configuration.Eras.Modifier_run3_upc_cff import run3_upc diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py index 2732b4641da19..68161bddd572e 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py @@ -1,34 +1,11 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA # SiPixelGainCalibrationServiceParameters from CondTools.SiPixel.SiPixelGainCalibrationService_cfi import * # legacy pixel cluster producer from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters -siPixelClustersPreSplitting = SwitchProducerCUDA( - cpu = _siPixelClusters.clone() -) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -from Configuration.ProcessModifiers.gpu_cff import gpu - -# ensure the same results when running on GPU (which supports only the 'HLT' payload) and CPU -# but not for phase-2 where we don't calibrate digis in the clusterizer (yet) -(gpu & ~phase2_tracker).toModify(siPixelClustersPreSplitting, - cpu = dict( - payloadType = 'HLT' - ) -) - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -gpu.toModify(siPixelClustersPreSplitting, - cuda = cms.EDAlias( - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector")) - ) - ) -) +siPixelClustersPreSplitting = _siPixelClusters.clone() from Configuration.ProcessModifiers.siPixelDigiMorphing_cff import siPixelDigiMorphing siPixelDigiMorphing.toModify( diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py index 1bbaef1910a19..9226180d24c46 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py @@ -17,8 +17,7 @@ ) # Run3, changes in the gain calibration scheme -#from Configuration.Eras.Era_Run3_cff import Run3 -#Run3.toModify(siPixelClusters, + from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify(siPixelClusters, VCaltoElectronGain = 1, # all gains=1, pedestals=0 @@ -46,7 +45,3 @@ (premix_stage2 & phase2_tracker).toModify(siPixelClusters, src = "mixData:Pixel" ) -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -(phase2_tracker & pixelNtupletFit).toModify(siPixelClusters, #at the moment the duplicate dropping is not imnplemented in Phase2 - DropDuplicates = False -) diff --git a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py index 71d2ff35cadce..127d251a57deb 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py @@ -1,101 +1,20 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * from Configuration.Eras.Modifier_run3_common_cff import run3_common -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka -# conditions used *only* by the modules running on GPU -from CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi import siPixelROCsStatusAndMappingWrapperESProducer -from CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi import siPixelGainCalibrationForHLTGPU - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting - -siPixelClustersPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting -) - -# reconstruct the pixel digis and clusters on the gpu -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAPhase1_cfi import siPixelRawToClusterCUDAPhase1 as _siPixelRawToClusterCUDA -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAHIonPhase1_cfi import siPixelRawToClusterCUDAHIonPhase1 as _siPixelRawToClusterCUDAHIonPhase1 - -siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() - # HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA # Phase 2 Tracker Modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelClustersPreSplittingCUDA, _siPixelRawToClusterCUDAHIonPhase1.clone()) - -run3_common.toModify(siPixelClustersPreSplittingCUDA, - # use the pixel channel calibrations scheme for Run 3 - clusterThreshold_layer1 = 4000, - VCaltoElectronGain = 1, # all gains=1, pedestals=0 - VCaltoElectronGain_L1 = 1, - VCaltoElectronOffset = 0, - VCaltoElectronOffset_L1 = 0) - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase1_cfi import siPixelDigisClustersFromSoAPhase1 as _siPixelDigisClustersFromSoAPhase1 -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase2_cfi import siPixelDigisClustersFromSoAPhase2 as _siPixelDigisClustersFromSoAPhase2 - -siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoAPhase1.clone() - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAHIonPhase1_cfi import siPixelDigisClustersFromSoAHIonPhase1 as _siPixelDigisClustersFromSoAHIonPhase1 -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAHIonPhase1.clone()) - - -run3_common.toModify(siPixelDigisClustersPreSplitting, - clusterThreshold_layer1 = 4000) - -gpu.toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # conditions used *only* by the modules running on GPU - siPixelROCsStatusAndMappingWrapperESProducer, - siPixelGainCalibrationForHLTGPU, - # reconstruct the pixel digis and clusters on the gpu - siPixelClustersPreSplittingCUDA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplittingTask.copy() -)) - -from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToClusterCUDA_cfi import siPixelPhase2DigiToClusterCUDA as _siPixelPhase2DigiToClusterCUDA -# for phase2 no pixel raw2digi is available at the moment -# so we skip the raw2digi step and run on pixel digis copied to gpu - -from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon - -phase2_tracker.toReplaceWith(siPixelClustersPreSplittingCUDA,_siPixelPhase2DigiToClusterCUDA.clone( - Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # Flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction - Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), #Same for barrel and endcap - Phase2KinkADC = 8, - ElectronPerADCGain = PixelDigitizerAlgorithmCommon.ElectronPerAdc.value() -)) +# The legacy pixel cluster producer +from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisPhase2SoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" +siPixelClustersPreSplittingTask = cms.Task( + siPixelClustersPreSplitting ) -phase2_tracker.toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAPhase2.clone( - clusterThreshold_layer1 = 4000, - clusterThreshold_otherLayers = 4000, - src = "siPixelDigisPhase2SoA", - #produceDigis = False - )) - -(gpu & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # reconstruct the pixel clusters on the gpu from copied digis - siPixelClustersPreSplittingCUDA, - # copy from gpu to cpu - siPixelDigisPhase2SoA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting)) - ###################################################################### ### Alpaka Pixel Clusters Reco @@ -127,6 +46,9 @@ def _addProcessCalibTrackerAlpakaES(process): from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToCluster_cfi import siPixelPhase2DigiToCluster as _siPixelPhase2DigiToCluster +# for phase2 no pixel raw2digi is available at the moment +# so we skip the raw2digi step and run on pixel digis copied to gpu + (alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingAlpaka, _siPixelPhase2DigiToCluster.clone( Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), # same for barrel and endcap diff --git a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py index 054e8b7c461ea..d0532d33ff260 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py +++ b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py @@ -11,9 +11,6 @@ # 2. Pixel Generic CPE # from RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase1_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase2_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerHIonPhase1_cfi import * # # 3. ESProducer for the Magnetic-field dependent template records # diff --git a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py index cb539a2b1c6e4..fcf50c72041ed 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py +++ b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py @@ -1,130 +1,24 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka -# legacy pixel rechit producer +# HIon Modifiers +from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker + +# The legacy pixel rechit producer siPixelRecHits = cms.EDProducer("SiPixelRecHitConverter", src = cms.InputTag("siPixelClusters"), CPE = cms.string('PixelCPEGeneric'), VerboseLevel = cms.untracked.int32(0) ) -# SwitchProducer wrapping the legacy pixel rechit producer -siPixelRecHitsPreSplitting = SwitchProducerCUDA( - cpu = siPixelRecHits.clone( +# The legacy pixel rechit producer +siPixelRecHitsPreSplitting = siPixelRecHits.clone( src = 'siPixelClustersPreSplitting' - ) -) - -# phase 2 tracker modifier -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# HIon modifiers -from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA - -# convert the pixel rechits from legacy to SoA format on CPU -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase1_cfi import siPixelRecHitSoAFromLegacyPhase1 as _siPixelRecHitsPreSplittingSoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase2_cfi import siPixelRecHitSoAFromLegacyPhase2 as _siPixelRecHitsPreSplittingSoAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyHIonPhase1_cfi import siPixelRecHitSoAFromLegacyHIonPhase1 as _siPixelRecHitsPreSplittingSoAHIonPhase1 - -siPixelRecHitsPreSplittingCPU = _siPixelRecHitsPreSplittingSoA.clone(convertToLegacy=True) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAHIonPhase1.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastHIonPhase1'))) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAPhase2.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastPhase2'))) - -# modifier used to prompt patatrack pixel tracks reconstruction on cpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -pixelNtupletFit.toModify(siPixelRecHitsPreSplitting, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("SiPixelRecHitedmNewDetSetVector")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ) -)) - - -siPixelRecHitsPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel rechit producer or the cpu SoA producer - siPixelRecHitsPreSplitting -) - -# reconstruct the pixel rechits on the gpu -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase1_cfi import siPixelRecHitCUDAPhase1 as _siPixelRecHitCUDAPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase2_cfi import siPixelRecHitCUDAPhase2 as _siPixelRecHitCUDAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAHIonPhase1_cfi import siPixelRecHitCUDAHIonPhase1 as _siPixelRecHitCUDAHIonPhase1 - -siPixelRecHitsPreSplittingCUDA = _siPixelRecHitCUDAPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAHIonPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAPhase2.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) - -#this is an alias for the SoA on GPU or CPU to be used for DQM -siPixelRecHitsPreSplittingSoA = SwitchProducerCUDA( - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - )), ) -(pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyHIonPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -phase2_tracker.toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase2TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase1_cfi import siPixelRecHitSoAFromCUDAPhase1 as _siPixelRecHitSoAFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAHIonPhase1_cfi import siPixelRecHitSoAFromCUDAHIonPhase1 as _siPixelRecHitSoAFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase2_cfi import siPixelRecHitSoAFromCUDAPhase2 as _siPixelRecHitSoAFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDA.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDAPhase2.clone()) - -# transfer the pixel rechits to the host and convert them from SoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase1_cfi import siPixelRecHitFromCUDAPhase1 as _siPixelRecHitFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAHIonPhase1_cfi import siPixelRecHitFromCUDAHIonPhase1 as _siPixelRecHitFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase2_cfi import siPixelRecHitFromCUDAPhase2 as _siPixelRecHitFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDA.clone()) -(gpu & pixelNtupletFit & pp_on_AA).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAHIonPhase1.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAPhase2.clone()) - - -pixelNtupletFit.toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - cms.Task( - # reconstruct the pixel rechits on the cpu - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA) - ) - ) - -(gpu & pixelNtupletFit).toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - # reconstruct the pixel rechits on the gpu or on the cpu - # (normally only one of the two is run because only one is consumed from later stages) - siPixelRecHitsPreSplittingCUDA, - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA -)) - ###################################################################### ### Alpaka Pixel Hits Reco diff --git a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py index c8c3719edfc84..79b257ab64fa3 100644 --- a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py +++ b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoLocalTracker.SiStripRecHitConverter.StripCPEfromTrackAngle_cfi import * from RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitMatcher_cfi import * @@ -88,123 +87,11 @@ _pixelTracksTask_lowPU.replace(pixelTracksHitQuadruplets, pixelTracksHitTriplets) trackingLowPU.toReplaceWith(pixelTracksTask, _pixelTracksTask_lowPU) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit - -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase1_cfi import caHitNtupletCUDAPhase1 as _pixelTracksCUDA -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase2_cfi import caHitNtupletCUDAPhase2 as _pixelTracksCUDAPhase2 -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDAHIonPhase1 - # Phase 2 modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker # HIon modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA -# SwitchProducer providing the pixel tracks in SoA format on the CPU -pixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - idealConditions = False, - onGPU = False - ) -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksSoA.cpu, - idealConditions = True -) - -# convert the pixel tracks from SoA to legacy format -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase1_cfi import pixelTrackProducerFromSoAPhase1 as _pixelTrackProducerFromSoA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase2_cfi import pixelTrackProducerFromSoAPhase2 as _pixelTrackProducerFromSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoAHIonPhase1 - -pixelNtupletFit.toReplaceWith(pixelTracks, _pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & phase2_tracker).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAPhase2.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & pp_on_AA).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAHIonPhase1.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -pixelNtupletFit.toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - pixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - pixelTracks -)) - -# "Patatrack" sequence running on GPU (or CPU if not available) -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build the pixel ntuplets and pixel tracks in SoA format on the GPU -pixelTracksCUDA = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - idealConditions = False, - onGPU = True, -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksCUDA, - idealConditions = True -) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase1_cfi import pixelTrackSoAFromCUDAPhase1 as _pixelTracksSoA -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase2_cfi import pixelTrackSoAFromCUDAPhase2 as _pixelTracksSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoAHIonPhase1 - -gpu.toModify(pixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone() -) - -(gpu & phase2_tracker).toModify(pixelTracksSoA,cuda = _pixelTracksSoAPhase2.clone( -)) - -(gpu & pp_on_AA).toModify(pixelTracksSoA,cuda = _pixelTracksSoAHIonPhase1.clone( -)) - -phase2_tracker.toModify(pixelTracksSoA,cpu = _pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelTracksSoA,cpu = _pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -phase2_tracker.toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pixelNtupletFit & gpu).toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and pixel tracks in SoA format on the GPU - pixelTracksCUDA, - # transfer the pixel tracks in SoA format to the CPU, and convert them to legacy format - pixelTracksTask.copy() -)) - -## GPU vs CPU validation -# force CPU vertexing to use hit SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelTracksSoA.cpu, - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA@cpu" - ) - ###################################################################### ### Alpaka Pixel Track Reco diff --git a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py index 5c17275c17274..03775db850083 100644 --- a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py +++ b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py @@ -1,16 +1,10 @@ import FWCore.ParameterSet.Config as cms from RecoVertex.BeamSpotProducer.BeamSpot_cfi import * -from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA from RecoVertex.BeamSpotProducer.beamSpotDeviceProducer_cfi import beamSpotDeviceProducer as _beamSpotDeviceProducer offlineBeamSpotTask = cms.Task(offlineBeamSpot) -from Configuration.ProcessModifiers.gpu_cff import gpu -_offlineBeamSpotTask_gpu = offlineBeamSpotTask.copy() -_offlineBeamSpotTask_gpu.add(offlineBeamSpotToCUDA) -gpu.toReplaceWith(offlineBeamSpotTask, _offlineBeamSpotTask_gpu) - from Configuration.ProcessModifiers.alpaka_cff import alpaka _offlineBeamSpotTask_alpaka = offlineBeamSpotTask.copy() offlineBeamSpotDevice = _beamSpotDeviceProducer.clone(src = cms.InputTag('offlineBeamSpot')) diff --git a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py index 0a2bb0d2b63b7..96dec2b62dd1b 100644 --- a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py +++ b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py @@ -1,105 +1,21 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoTracker.PixelTrackFitting.PixelTracks_cff import * from RecoVertex.PixelVertexFinding.PixelVertices_cff import * -# legacy pixel vertex reconsruction using the divisive vertex finder -pixelVerticesTask = cms.Task( - pixelVertices -) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker - -# HIon modifiers +# HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# build the pixel vertices in SoA format on the CPU -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase1_cfi import pixelVertexProducerCUDAPhase1 as _pixelVerticesCUDA -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase2_cfi import pixelVertexProducerCUDAPhase2 as _pixelVerticesCUDAPhase2 -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAHIonPhase1_cfi import pixelVertexProducerCUDAHIonPhase1 as _pixelVerticesCUDAHIonPhase1 - -pixelVerticesSoA = SwitchProducerCUDA( - cpu = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False - ) -) - -phase2_tracker.toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksSoA", - doSplitting = False, - onGPU = False, -)) - -# convert the pixel vertices from SoA to legacy format -from RecoVertex.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA - -(pixelNtupletFit).toReplaceWith(pixelVertices, _pixelVertexFromSoA.clone( - src = "pixelVerticesSoA" -)) - -(pixelNtupletFit).toReplaceWith(pixelVerticesTask, cms.Task( - # build the pixel vertices in SoA format on the CPU - pixelVerticesSoA, - # convert the pixel vertices from SoA to legacy format +# legacy pixel vertex reconsruction using the divisive vertex finder +pixelVerticesTask = cms.Task( pixelVertices -)) - - -# "Patatrack" sequence running on the GPU -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build pixel vertices in SoA format on the GPU -pixelVerticesCUDA = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True ) -phase2_tracker.toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksCUDA", - doSplitting = False, - onGPU = True -)) - -# transfer the pixel vertices in SoA format to the CPU -from RecoVertex.PixelVertexFinding.pixelVerticesSoA_cfi import pixelVerticesSoA as _pixelVerticesSoA -gpu.toModify(pixelVerticesSoA, - cuda = _pixelVerticesSoA.clone( - src = cms.InputTag("pixelVerticesCUDA") - ) -) - -## GPU vs CPU validation -# force CPU vertexing to use track SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelVerticesSoA.cpu, - pixelTrackSrc = "pixelTracksSoA@cpu" -) - -(pixelNtupletFit & gpu).toReplaceWith(pixelVerticesTask, cms.Task( - # build pixel vertices in SoA format on the GPU - pixelVerticesCUDA, - # transfer the pixel vertices in SoA format to the CPU and convert them to legacy format - pixelVerticesTask.copy() -)) - -## pixel vertex reconstruction with Alpaka +############################################################ +## Pixel vertex reconstruction with Alpaka # pixel vertex SoA producer with alpaka on the device from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaPhase1_cfi import pixelVertexProducerAlpakaPhase1 as _pixelVerticesAlpakaPhase1