Skip to content

Commit

Permalink
Suppress asserts in the GPU code, unless GPU_DEBUG is defined (#186)
Browse files Browse the repository at this point in the history
  • Loading branch information
fwyzard committed Oct 20, 2020
1 parent 3982993 commit 7f89fb7
Show file tree
Hide file tree
Showing 21 changed files with 190 additions and 87 deletions.
2 changes: 2 additions & 0 deletions CalibTracker/SiPixelESProducers/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
<use name="DataFormats/SiPixelDigi"/>
<use name="CalibTracker/Records"/>
<use name="MagneticField/VolumeBasedEngine"/>
<use name="HeterogeneousCore/CUDACore"/>
<use name="boost"/>
<use name="cuda-api-wrappers"/>
<export>
<lib name="1"/>
</export>
2 changes: 2 additions & 0 deletions CalibTracker/SiPixelESProducers/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<use name="Geometry/Records"/>
<use name="Geometry/TrackerGeometryBuilder"/>
<use name="CalibTracker/SiPixelESProducers"/>
<use name="HeterogeneousCore/CUDACore"/>
<use name="cuda-api-wrappers"/>
<library file="*.cc" name="CalibTrackerSiPixelESProducersPlugins">
<flags EDM_PLUGIN="1"/>
</library>
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#ifndef CondFormats_SiPixelObjects_SiPixelGainForHLTonGPU_h
#define CondFormats_SiPixelObjects_SiPixelGainForHLTonGPU_h

#include <cassert>
#include <cstdint>
#include <cstdio>
#include <tuple>

#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h"

struct SiPixelGainForHLTonGPU_DecodingStructure{
uint8_t gain;
uint8_t ped;
Expand Down
3 changes: 2 additions & 1 deletion Configuration/StandardSequences/python/RawToDigi_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@
RawToDigi_pixelOnly = cms.Sequence(siPixelDigis)

scalersRawToDigi.scalersInputTag = 'rawDataCollector'
siPixelDigis.InputLabel = 'rawDataCollector'
from Configuration.ProcessModifiers.gpu_cff import gpu
(~gpu).toModify(siPixelDigis, InputLabel = 'rawDataCollector')
#false by default anyways ecalDigis.DoRegional = False
ecalDigis.InputLabel = 'rawDataCollector'
ecalPreshowerDigis.sourceTag = 'rawDataCollector'
Expand Down
157 changes: 100 additions & 57 deletions DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,40 +63,13 @@


#----------------------------
# Tracking General Configuration
#----------------------------
process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
process.load("RecoLocalTracker.Configuration.RecoLocalTracker_cff")
process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")


#----------------------------
# Pixel-Tracks&Vertices Config
#----------------------------
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(src = 'siPixelClustersPreSplitting')
process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi")
process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff")
process.pixelVertices.TkFilterParameters.minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin
process.pixelTracksTrackingRegions.RegionPSet.originRadius = cms.double(0.4)
process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = cms.double(15.)
process.pixelTracksTrackingRegions.RegionPSet.originXPos = cms.double(0.08)
process.pixelTracksTrackingRegions.RegionPSet.originYPos = cms.double(-0.03)
process.pixelTracksTrackingRegions.RegionPSet.originZPos = cms.double(0.)


#----------------------------
# Proton-Proton Specific Section
# Proton-Proton Specific Part
#----------------------------
if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1 or
process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1 or
process.runType.getRunType() == process.runType.hpu_run):
print "[beampixel_dqm_sourceclient-live_cfg]::running pp"


#----------------------------
# Tracking Configuration
#----------------------------
process.castorDigis.InputLabel = cms.InputTag("rawDataCollector")
process.csctfDigis.producer = cms.InputTag("rawDataCollector")
process.dttfDigis.DTTF_FED_Source = cms.InputTag("rawDataCollector")
Expand All @@ -112,6 +85,10 @@
process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector")
process.siStripDigis.ProductLabel = cms.InputTag("rawDataCollector")

process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
process.load("RecoLocalTracker.Configuration.RecoLocalTracker_cff")
process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")


#----------------------------
# pixelVertexDQM Config
Expand All @@ -138,18 +115,55 @@
minVxDoF = cms.double(10.0),
minVxWgt = cms.double(0.5),
fileName = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt"))
if process.dqmRunConfig.type.value() is "production":
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmpro/BeamMonitorDQM/BeamPixelResults.txt")
else:
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt")
print "[beampixel_dqm_sourceclient-live_cfg]::saving DIP file into " + str(process.pixelVertexDQM.fileName)


#----------------------------
# Pixel-Tracks&Vertices Config
#----------------------------
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(src = 'siPixelClustersPreSplitting')
process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi")
process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff")
process.pixelVertices.TkFilterParameters.minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin
process.pixelTracksTrackingRegions.RegionPSet.originRadius = 0.4
process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = 15.
process.pixelTracksTrackingRegions.RegionPSet.originXPos = 0.08
process.pixelTracksTrackingRegions.RegionPSet.originYPos = -0.03
process.pixelTracksTrackingRegions.RegionPSet.originZPos = 0.


#----------------------------
# Pixel-Tracks&Vertices Reco
#----------------------------
process.reconstructionStep = cms.Sequence(process.siPixelDigis*
process.siStripDigis*
process.striptrackerlocalreco*
process.offlineBeamSpot*
process.siPixelClustersPreSplitting*
process.siPixelRecHitsPreSplitting*
process.siPixelClusterShapeCachePreSplitting*
process.recopixelvertexing)


#----------------------------
# Define Path
#----------------------------
process.p = cms.Path(process.scalersRawToDigi*process.physTrigger*process.reconstructionStep*process.pixelVertexDQM*process.dqmModules)




#----------------------------
# Heavy Ion Specific Section
# Heavy Ion Specific Part
#----------------------------
if (process.runType.getRunType() == process.runType.hi_run):
print "[beampixel_dqm_sourceclient-live_cfg]::running HI"


#----------------------------
# Tracking Configuration
#----------------------------
process.castorDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.csctfDigis.producer = cms.InputTag("rawDataRepacker")
process.dttfDigis.DTTF_FED_Source = cms.InputTag("rawDataRepacker")
Expand All @@ -165,12 +179,16 @@
process.siPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.siStripDigis.ProductLabel = cms.InputTag("rawDataRepacker")

process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
process.load("Configuration.StandardSequences.ReconstructionHeavyIons_cff")
process.load("RecoLocalTracker.Configuration.RecoLocalTrackerHeavyIons_cff")


#----------------------------
# pixelVertexDQM Config
#----------------------------
process.pixelVertexDQM = DQMEDAnalyzer('Vx3DHLTAnalyzer',
vertexCollection = cms.untracked.InputTag("pixelVertices"),
vertexCollection = cms.untracked.InputTag("hiSelectedVertexPreSplitting"),
pixelHitCollection = cms.untracked.InputTag("siPixelRecHitsPreSplitting"),
debugMode = cms.bool(True),
nLumiFit = cms.uint32(5),
Expand All @@ -191,32 +209,57 @@
minVxDoF = cms.double(10.0),
minVxWgt = cms.double(0.5),
fileName = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt"))
if process.dqmRunConfig.type.value() is "production":
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmpro/BeamMonitorDQM/BeamPixelResults.txt")
else:
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt")
print "[beampixel_dqm_sourceclient-live_cfg]::saving DIP file into " + str(process.pixelVertexDQM.fileName)


#----------------------------
# File to save beamspot info
#----------------------------
if process.dqmRunConfig.type.value() is "production":
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmpro/BeamMonitorDQM/BeamPixelResults.txt")
else:
process.pixelVertexDQM.fileName = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt")
print "[beampixel_dqm_sourceclient-live_cfg]::saving DIP file into " + str(process.pixelVertexDQM.fileName)
#----------------------------
# Pixel-Tracks&Vertices Config
#----------------------------
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(src = 'siPixelClustersPreSplitting')

from RecoHI.HiTracking.HIPixelVerticesPreSplitting_cff import *
process.PixelLayerTriplets.BPix.HitProducer = cms.string("siPixelRecHitsPreSplitting")
process.PixelLayerTriplets.FPix.HitProducer = cms.string("siPixelRecHitsPreSplitting")

process.hiPixel3PrimTracksFilter = process.hiFilter.clone(VertexCollection = cms.InputTag("hiSelectedVertexPreSplitting"),
clusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCachePreSplitting"))
process.hiPixel3PrimTracks.Filter = cms.InputTag("hiPixel3PrimTracksFilter")
process.hiPixel3PrimTracks.ComponentName = cms.string("GlobalTrackingRegionWithVerticesProducer")
process.hiPixel3PrimTracks.VertexCollection = cms.InputTag("hiSelectedVertexPreSplitting")
process.hiPixel3PrimTracks.ptMin = cms.double(0.9)
process.hiPixel3PrimTracks.clusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCachePreSplitting")
process.hiPixel3ProtoTracksPreSplitting.originRadius = cms.double(0.4)
process.hiPixelAdaptiveVertexPreSplitting.vertexCollections.useBeamConstraint = cms.bool(False)

process.hiPixel3ProtoTracksPreSplitting.RegionFactoryPSet.RegionPSet.originRadius = 0.2 # default 0.2
process.hiPixel3ProtoTracksPreSplitting.RegionFactoryPSet.RegionPSet.fixedError = 0.5 # default 3.0
process.hiSelectedProtoTracksPreSplitting.maxD0Significance = 100 # default 5.0
process.hiPixelAdaptiveVertexPreSplitting.TkFilterParameters.maxD0Significance = 100 # default 3.0
process.hiPixelAdaptiveVertexPreSplitting.vertexCollections.useBeamConstraint = False # default False
process.hiPixelAdaptiveVertexPreSplitting.vertexCollections.maxDistanceToBeam = 1.0 # default 0.1


#----------------------------
# Pixel-Tracks&Vertices Reco
#----------------------------
process.reconstructionStep = cms.Sequence(process.siPixelDigis*
process.siStripDigis*
process.striptrackerlocalreco*
process.offlineBeamSpot*
process.siPixelClustersPreSplitting*
process.siPixelRecHitsPreSplitting*
process.siPixelClusterShapeCachePreSplitting*
process.recopixelvertexing)
#----------------------------
# Pixel-Tracks&Vertices Reco
#----------------------------
process.reconstructionStep = cms.Sequence(process.siPixelDigis*
process.offlineBeamSpot*
process.pixeltrackerlocalreco*
process.siPixelClusterShapeCachePreSplitting*
process.hiPixelVerticesPreSplitting*
process.PixelLayerTriplets*
process.pixelFitterByHelixProjections*
process.hiPixel3PrimTracksFilter*
process.hiPixel3PrimTracks)


#----------------------------
# Define Path
#----------------------------
process.p = cms.Path(process.scalersRawToDigi*process.physTrigger*process.reconstructionStep*process.pixelVertexDQM*process.dqmModules)
#----------------------------
# Define Path
#----------------------------
process.p = cms.Path(process.scalersRawToDigi*process.physTrigger*process.reconstructionStep*process.pixelVertexDQM*process.dqmModules)
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,9 @@
# Heavy-Ion run
if (process.runType.getRunType() == process.runType.hi_run):
process.DQMStore.referenceFileName = "/dqmdata/dqm/reference/l1t_reference_hi.root"
process.onlineMetaDataDigis.onlineMetaDataInputLabel = cms.InputTag("rawDataRepacker")
process.onlineMetaDataRawToDigi.onlineMetaDataInputLabel = cms.InputTag("rawDataRepacker")
process.castorDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ctppsDiamondRawToDigi.rawDataTag = cms.InputTag("rawDataRepacker")
process.ctppsPixelDigis.inputLabel = cms.InputTag("rawDataRepacker")
process.ctppsPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ecalDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ecalPreshowerDigis.sourceTag = cms.InputTag("rawDataRepacker")
process.hcalDigis.InputLabel = cms.InputTag("rawDataRepacker")
Expand All @@ -144,15 +142,12 @@
process.omtfStage2Digis.inputLabel = cms.InputTag("rawDataRepacker")
process.emtfStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.gmtStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloLayer1Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloStage1Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.gtStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.l1tStage2CaloLayer1.fedRawDataLabel = cms.InputTag("rawDataRepacker")
process.l1tStage2uGMTZeroSupp.rawData = cms.InputTag("rawDataRepacker")
process.l1tStage2uGMTZeroSuppFatEvts.rawData = cms.InputTag("rawDataRepacker")
process.l1tStage2BmtfZeroSupp.rawData = cms.InputTag("rawDataRepacker")
process.l1tStage2BmtfZeroSuppFatEvts.rawData = cms.InputTag("rawDataRepacker")
process.selfFatEventFilter.rawInput = cms.InputTag("rawDataRepacker")

#--------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,9 @@

# Heavy-Ion run
if (process.runType.getRunType() == process.runType.hi_run):
process.onlineMetaDataDigis.onlineMetaDataInputLabel = cms.InputTag("rawDataRepacker")
process.onlineMetaDataRawToDigi.onlineMetaDataInputLabel = cms.InputTag("rawDataRepacker")
process.castorDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ctppsDiamondRawToDigi.rawDataTag = cms.InputTag("rawDataRepacker")
process.ctppsPixelDigis.inputLabel = cms.InputTag("rawDataRepacker")
process.ctppsPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ecalDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.ecalPreshowerDigis.sourceTag = cms.InputTag("rawDataRepacker")
process.hcalDigis.InputLabel = cms.InputTag("rawDataRepacker")
Expand All @@ -140,7 +138,6 @@
process.omtfStage2Digis.inputLabel = cms.InputTag("rawDataRepacker")
process.emtfStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.gmtStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloLayer1Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloStage1Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.caloStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")
process.simHcalTriggerPrimitiveDigis.InputTagFEDRaw = cms.InputTag("rawDataRepacker")
Expand Down
8 changes: 8 additions & 0 deletions EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import FWCore.ParameterSet.Config as cms
import EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi
import RecoLocalTracker.SiPixelClusterizer.siPixelDigiHeterogeneousConverter_cfi

siPixelDigis = EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi.siPixelRawToDigi.clone()
siPixelDigis.Timing = cms.untracked.bool(False)
Expand All @@ -20,3 +21,10 @@

from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
phase1Pixel.toModify(siPixelDigis, UsePhase1=True)

_siPixelDigis_gpu = RecoLocalTracker.SiPixelClusterizer.siPixelDigiHeterogeneousConverter_cfi.siPixelDigiHeterogeneousConverter.clone()
_siPixelDigis_gpu.includeErrors = cms.bool(True)

from Configuration.ProcessModifiers.gpu_cff import gpu
gpu.toReplaceWith(siPixelDigis, _siPixelDigis_gpu)

Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@ namespace phase1PixelTopology {

constexpr uint32_t numPixsInModule = uint32_t(numRowsInModule)* uint32_t(numColsInModule);

constexpr uint32_t numberOfModules = 1856;

constexpr uint32_t layerStart[11] = {0,96,320,672,1184,1296,1408,1520,1632,1744,1856};
constexpr char const * layerName[10] = {"BL1","BL2","BL3","BL4",
"E+1", "E+2", "E+3",
"E-1", "E-2", "E-3"
};


// this is for the ROC n<512 (upgrade 1024)
constexpr inline
uint16_t divu52(uint16_t n) {
Expand Down
4 changes: 4 additions & 0 deletions RecoLocalTracker/Configuration/python/RecoLocalTracker_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
striptrackerlocalreco = cms.Sequence(siStripZeroSuppression*siStripClusters*siStripMatchedRecHits)
trackerlocalreco = cms.Sequence(pixeltrackerlocalreco*striptrackerlocalreco*clusterSummaryProducer)

from Configuration.ProcessModifiers.gpu_cff import gpu
from RecoLocalTracker.SiPixelRecHits.siPixelRecHitHeterogeneous_cfi import siPixelRecHitHeterogeneous as _siPixelRecHitHeterogeneous
gpu.toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitHeterogeneous)

from RecoLocalTracker.SiPhase2Clusterizer.phase2TrackerClusterizer_cfi import *
from RecoLocalTracker.Phase2TrackerRecHits.Phase2StripCPEGeometricESProducer_cfi import *

Expand Down
11 changes: 10 additions & 1 deletion RecoLocalTracker/SiPixelClusterizer/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,16 @@
<use name="DataFormats/SiPixelDetId"/>
<use name="DataFormats/SiPixelCluster"/>
<use name="boost_serialization"/>
<use name="RecoLocalTracker/SiPixelClusterizer"/>
<use name="RecoTracker/Record"/>
<use name="CalibTracker/SiPixelESProducers"/>
<library file="*.cc" name="RecoLocalTrackerSiPixelClusterizerPlugins">
<use name="EventFilter/SiPixelRawToDigi"/>
<use name="HeterogeneousCore/Producer"/>
<use name="HeterogeneousCore/Product"/>
<use name="HeterogeneousCore/CUDACore"/>
<use name="cuda"/>
<use name="cuda-api-wrappers"/>
<use name="cub"/>
<library file="*.cc *.cu" name="RecoLocalTrackerSiPixelClusterizerPlugins">
<flags EDM_PLUGIN="1"/>
</library>
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#ifndef RecoLocalTracker_SiPixelClusterizer_plugins_gpuCalibPixel_h
#define RecoLocalTracker_SiPixelClusterizer_plugins_gpuCalibPixel_h

#include <cassert>
#include <cstdint>
#include <cstdio>

#include "CondFormats/SiPixelObjects/interface/SiPixelGainForHLTonGPU.h"
#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h"

namespace gpuCalibPixel {

Expand Down
Loading

0 comments on commit 7f89fb7

Please sign in to comment.