diff --git a/CalibTracker/SiPixelESProducers/BuildFile.xml b/CalibTracker/SiPixelESProducers/BuildFile.xml index db1e6be8279dc..d873bd7aa0bc0 100644 --- a/CalibTracker/SiPixelESProducers/BuildFile.xml +++ b/CalibTracker/SiPixelESProducers/BuildFile.xml @@ -1,4 +1,3 @@ - @@ -6,7 +5,6 @@ - diff --git a/CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h b/CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h deleted file mode 100644 index aea0f4d8b0c63..0000000000000 --- a/CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CalibTracker_SiPixelESProducers_interface_SiPixelGainCalibrationForHLTGPU_h -#define CalibTracker_SiPixelESProducers_interface_SiPixelGainCalibrationForHLTGPU_h - -#include "CondFormats/SiPixelObjects/interface/SiPixelGainCalibrationForHLT.h" -#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" - -class SiPixelGainCalibrationForHLT; -class SiPixelGainForHLTonGPU; -struct SiPixelGainForHLTonGPU_DecodingStructure; -class TrackerGeometry; - -class SiPixelGainCalibrationForHLTGPU { -public: - explicit SiPixelGainCalibrationForHLTGPU(const SiPixelGainCalibrationForHLT &gains, const TrackerGeometry &geom); - ~SiPixelGainCalibrationForHLTGPU(); - - const SiPixelGainForHLTonGPU *getGPUProductAsync(cudaStream_t cudaStream) const; - const SiPixelGainForHLTonGPU *cpuProduct() const { return gainForHLTonHost_; } - const SiPixelGainCalibrationForHLT *originalProduct() { return gains_; } - -private: - const SiPixelGainCalibrationForHLT *gains_ = nullptr; - SiPixelGainForHLTonGPU *gainForHLTonHost_ = nullptr; - struct GPUData { - ~GPUData(); - SiPixelGainForHLTonGPU *gainForHLTonGPU = nullptr; - SiPixelGainForHLTonGPU_DecodingStructure *gainDataOnGPU = nullptr; - }; - cms::cuda::ESProduct gpuData_; -}; - -#endif // CalibTracker_SiPixelESProducers_interface_SiPixelGainCalibrationForHLTGPU_h diff --git a/CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h b/CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h deleted file mode 100644 index f7555a75d9bec..0000000000000 --- a/CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef CalibTracker_SiPixelESProducers_interface_SiPixelROCsStatusAndMappingWrapper_h -#define CalibTracker_SiPixelESProducers_interface_SiPixelROCsStatusAndMappingWrapper_h - -#include - -#include - -#include "CondFormats/SiPixelObjects/interface/SiPixelROCsStatusAndMapping.h" -#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" -#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" -#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" - -class SiPixelFedCablingMap; -class TrackerGeometry; -class SiPixelQuality; - -class SiPixelROCsStatusAndMappingWrapper { -public: - SiPixelROCsStatusAndMappingWrapper(SiPixelFedCablingMap const &cablingMap, - TrackerGeometry const &trackerGeom, - SiPixelQuality const *badPixelInfo); - ~SiPixelROCsStatusAndMappingWrapper(); - - bool hasQuality() const { return hasQuality_; } - - // returns pointer to GPU memory - const SiPixelROCsStatusAndMapping *getGPUProductAsync(cudaStream_t cudaStream) const; - - // returns pointer to GPU memory - const unsigned char *getModToUnpAllAsync(cudaStream_t cudaStream) const; - cms::cuda::device::unique_ptr getModToUnpRegionalAsync(std::set const &modules, - cudaStream_t cudaStream) const; - -private: - const SiPixelFedCablingMap *cablingMap_; - std::vector> modToUnpDefault; - unsigned int size; - bool hasQuality_; - - SiPixelROCsStatusAndMapping *cablingMapHost = nullptr; // pointer to struct in CPU - - struct GPUData { - ~GPUData(); - SiPixelROCsStatusAndMapping *cablingMapDevice = nullptr; // pointer to struct in GPU - }; - cms::cuda::ESProduct gpuData_; - - struct ModulesToUnpack { - ~ModulesToUnpack(); - unsigned char *modToUnpDefault = nullptr; // pointer to GPU - }; - cms::cuda::ESProduct modToUnp_; -}; - -#endif // CalibTracker_SiPixelESProducers_interface_SiPixelROCsStatusAndMappingWrapper_h diff --git a/CalibTracker/SiPixelESProducers/plugins/BuildFile.xml b/CalibTracker/SiPixelESProducers/plugins/BuildFile.xml index 8de546ff8856b..428d83de70a0b 100644 --- a/CalibTracker/SiPixelESProducers/plugins/BuildFile.xml +++ b/CalibTracker/SiPixelESProducers/plugins/BuildFile.xml @@ -12,7 +12,6 @@ - diff --git a/CalibTracker/SiPixelESProducers/plugins/SiPixelGainCalibrationForHLTGPUESProducer.cc b/CalibTracker/SiPixelESProducers/plugins/SiPixelGainCalibrationForHLTGPUESProducer.cc deleted file mode 100644 index 37055ea3e00ca..0000000000000 --- a/CalibTracker/SiPixelESProducers/plugins/SiPixelGainCalibrationForHLTGPUESProducer.cc +++ /dev/null @@ -1,49 +0,0 @@ -#include "CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h" -#include "CalibTracker/Records/interface/SiPixelGainCalibrationForHLTGPURcd.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelGainCalibrationForHLT.h" -#include "CondFormats/DataRecord/interface/SiPixelGainCalibrationForHLTRcd.h" -#include "FWCore/Framework/interface/ESProducer.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ModuleFactory.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" - -#include - -class SiPixelGainCalibrationForHLTGPUESProducer : public edm::ESProducer { -public: - explicit SiPixelGainCalibrationForHLTGPUESProducer(const edm::ParameterSet& iConfig); - std::unique_ptr produce(const SiPixelGainCalibrationForHLTGPURcd& iRecord); - - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - -private: - edm::ESGetToken gainsToken_; - edm::ESGetToken geometryToken_; -}; - -SiPixelGainCalibrationForHLTGPUESProducer::SiPixelGainCalibrationForHLTGPUESProducer(const edm::ParameterSet& iConfig) { - auto cc = setWhatProduced(this); - gainsToken_ = cc.consumes(); - geometryToken_ = cc.consumes(); -} - -void SiPixelGainCalibrationForHLTGPUESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - descriptions.add("siPixelGainCalibrationForHLTGPU", desc); -} - -std::unique_ptr SiPixelGainCalibrationForHLTGPUESProducer::produce( - const SiPixelGainCalibrationForHLTGPURcd& iRecord) { - auto gains = iRecord.getHandle(gainsToken_); - auto geom = iRecord.getHandle(geometryToken_); - return std::make_unique(*gains, *geom); -} - -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Utilities/interface/typelookup.h" -#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" - -DEFINE_FWK_EVENTSETUP_MODULE(SiPixelGainCalibrationForHLTGPUESProducer); diff --git a/CalibTracker/SiPixelESProducers/plugins/SiPixelROCsStatusAndMappingWrapperESProducer.cc b/CalibTracker/SiPixelESProducers/plugins/SiPixelROCsStatusAndMappingWrapperESProducer.cc deleted file mode 100644 index 9c37860ca9ffe..0000000000000 --- a/CalibTracker/SiPixelESProducers/plugins/SiPixelROCsStatusAndMappingWrapperESProducer.cc +++ /dev/null @@ -1,68 +0,0 @@ -#include - -#include "CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h" -#include "CondFormats/DataRecord/interface/SiPixelFedCablingMapRcd.h" -#include "CondFormats/DataRecord/interface/SiPixelQualityRcd.h" -#include "FWCore/Framework/interface/ESProducer.h" -#include "FWCore/Framework/interface/ESTransientHandle.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ModuleFactory.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "RecoTracker/Record/interface/CkfComponentsRecord.h" // TODO: eventually use something more limited - -class SiPixelROCsStatusAndMappingWrapperESProducer : public edm::ESProducer { -public: - explicit SiPixelROCsStatusAndMappingWrapperESProducer(const edm::ParameterSet& iConfig); - std::unique_ptr produce(const CkfComponentsRecord& iRecord); - - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - -private: - edm::ESGetToken cablingMapToken_; - edm::ESGetToken qualityToken_; - edm::ESGetToken geometryToken_; - bool useQuality_; -}; - -SiPixelROCsStatusAndMappingWrapperESProducer::SiPixelROCsStatusAndMappingWrapperESProducer( - const edm::ParameterSet& iConfig) - : useQuality_(iConfig.getParameter("UseQualityInfo")) { - auto const& component = iConfig.getParameter("ComponentName"); - auto cc = setWhatProduced(this, component); - cablingMapToken_ = cc.consumes(edm::ESInputTag{"", iConfig.getParameter("CablingMapLabel")}); - if (useQuality_) { - qualityToken_ = cc.consumes(); - } - geometryToken_ = cc.consumes(); -} - -void SiPixelROCsStatusAndMappingWrapperESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - desc.add("ComponentName", ""); - desc.add("CablingMapLabel", "")->setComment("CablingMap label"); - desc.add("UseQualityInfo", false); - descriptions.addWithDefaultLabel(desc); -} - -std::unique_ptr SiPixelROCsStatusAndMappingWrapperESProducer::produce( - const CkfComponentsRecord& iRecord) { - auto cablingMap = iRecord.getTransientHandle(cablingMapToken_); - - const SiPixelQuality* quality = nullptr; - if (useQuality_) { - auto qualityInfo = iRecord.getTransientHandle(qualityToken_); - quality = qualityInfo.product(); - } - - auto geom = iRecord.getTransientHandle(geometryToken_); - - return std::make_unique(*cablingMap, *geom, quality); -} - -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Utilities/interface/typelookup.h" -#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" - -DEFINE_FWK_EVENTSETUP_MODULE(SiPixelROCsStatusAndMappingWrapperESProducer); diff --git a/CalibTracker/SiPixelESProducers/src/ES_SiPixelGainCalibrationForHLTGPU.cc b/CalibTracker/SiPixelESProducers/src/ES_SiPixelGainCalibrationForHLTGPU.cc deleted file mode 100644 index 80932fb468f71..0000000000000 --- a/CalibTracker/SiPixelESProducers/src/ES_SiPixelGainCalibrationForHLTGPU.cc +++ /dev/null @@ -1,4 +0,0 @@ -#include "CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h" -#include "FWCore/Utilities/interface/typelookup.h" - -TYPELOOKUP_DATA_REG(SiPixelGainCalibrationForHLTGPU); diff --git a/CalibTracker/SiPixelESProducers/src/ES_SiPixelROCsStatusAndMappingWrapper.cc b/CalibTracker/SiPixelESProducers/src/ES_SiPixelROCsStatusAndMappingWrapper.cc deleted file mode 100644 index 45767102b5958..0000000000000 --- a/CalibTracker/SiPixelESProducers/src/ES_SiPixelROCsStatusAndMappingWrapper.cc +++ /dev/null @@ -1,4 +0,0 @@ -#include "CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h" -#include "FWCore/Utilities/interface/typelookup.h" - -TYPELOOKUP_DATA_REG(SiPixelROCsStatusAndMappingWrapper); diff --git a/CalibTracker/SiPixelESProducers/src/SiPixelGainCalibrationForHLTGPU.cc b/CalibTracker/SiPixelESProducers/src/SiPixelGainCalibrationForHLTGPU.cc deleted file mode 100644 index 66b8d9594353b..0000000000000 --- a/CalibTracker/SiPixelESProducers/src/SiPixelGainCalibrationForHLTGPU.cc +++ /dev/null @@ -1,101 +0,0 @@ -#include - -#include "CalibTracker/SiPixelESProducers/interface/SiPixelGainCalibrationForHLTGPU.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelGainCalibrationForHLT.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelGainForHLTonGPU.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "Geometry/CommonDetUnit/interface/GeomDetType.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -SiPixelGainCalibrationForHLTGPU::SiPixelGainCalibrationForHLTGPU(const SiPixelGainCalibrationForHLT& gains, - const TrackerGeometry& geom) - : gains_(&gains) { - // bizzarre logic (looking for fist strip-det) don't ask - auto const& dus = geom.detUnits(); - unsigned int n_detectors = dus.size(); - for (unsigned int i = 1; i < 7; ++i) { - const auto offset = geom.offsetDU(GeomDetEnumerators::tkDetEnum[i]); - if (offset != dus.size() && dus[offset]->type().isTrackerStrip()) { - if (n_detectors > offset) - n_detectors = offset; - } - } - - LogDebug("SiPixelGainCalibrationForHLTGPU") - << "caching calibs for " << n_detectors << " pixel detectors of size " << gains.data().size() << '\n' - << "sizes " << sizeof(char) << ' ' << sizeof(uint8_t) << ' ' << sizeof(SiPixelGainForHLTonGPU::DecodingStructure); - - cudaCheck(cudaMallocHost((void**)&gainForHLTonHost_, sizeof(SiPixelGainForHLTonGPU))); - gainForHLTonHost_->v_pedestals_ = - (SiPixelGainForHLTonGPU_DecodingStructure*)this->gains_->data().data(); // so it can be used on CPU as well... - - // do not read back from the (possibly write-combined) memory buffer - auto minPed = gains.getPedLow(); - auto maxPed = gains.getPedHigh(); - auto minGain = gains.getGainLow(); - auto maxGain = gains.getGainHigh(); - auto nBinsToUseForEncoding = 253; - - // we will simplify later (not everything is needed....) - gainForHLTonHost_->minPed_ = minPed; - gainForHLTonHost_->maxPed_ = maxPed; - gainForHLTonHost_->minGain_ = minGain; - gainForHLTonHost_->maxGain_ = maxGain; - - gainForHLTonHost_->numberOfRowsAveragedOver_ = 80; - gainForHLTonHost_->nBinsToUseForEncoding_ = nBinsToUseForEncoding; - gainForHLTonHost_->deadFlag_ = 255; - gainForHLTonHost_->noisyFlag_ = 254; - - gainForHLTonHost_->pedPrecision_ = static_cast(maxPed - minPed) / nBinsToUseForEncoding; - gainForHLTonHost_->gainPrecision_ = static_cast(maxGain - minGain) / nBinsToUseForEncoding; - - LogDebug("SiPixelGainCalibrationForHLTGPU") - << "precisions g " << gainForHLTonHost_->pedPrecision_ << ' ' << gainForHLTonHost_->gainPrecision_; - - // fill the index map - auto const& ind = gains.getIndexes(); - LogDebug("SiPixelGainCalibrationForHLTGPU") << ind.size() << " " << n_detectors; - - for (auto i = 0U; i < n_detectors; ++i) { - auto p = std::lower_bound( - ind.begin(), ind.end(), dus[i]->geographicalId().rawId(), SiPixelGainCalibrationForHLT::StrictWeakOrdering()); - assert(p != ind.end() && p->detid == dus[i]->geographicalId()); - assert(p->iend <= gains.data().size()); - assert(p->iend >= p->ibegin); - assert(0 == p->ibegin % 2); - assert(0 == p->iend % 2); - assert(p->ibegin != p->iend); - assert(p->ncols > 0); - gainForHLTonHost_->rangeAndCols_[i] = std::make_pair(SiPixelGainForHLTonGPU::Range(p->ibegin, p->iend), p->ncols); - if (ind[i].detid != dus[i]->geographicalId()) - LogDebug("SiPixelGainCalibrationForHLTGPU") << ind[i].detid << "!=" << dus[i]->geographicalId(); - } -} - -SiPixelGainCalibrationForHLTGPU::~SiPixelGainCalibrationForHLTGPU() { cudaCheck(cudaFreeHost(gainForHLTonHost_)); } - -SiPixelGainCalibrationForHLTGPU::GPUData::~GPUData() { - cudaCheck(cudaFree(gainForHLTonGPU)); - cudaCheck(cudaFree(gainDataOnGPU)); -} - -const SiPixelGainForHLTonGPU* SiPixelGainCalibrationForHLTGPU::getGPUProductAsync(cudaStream_t cudaStream) const { - const auto& data = gpuData_.dataForCurrentDeviceAsync(cudaStream, [this](GPUData& data, cudaStream_t stream) { - cudaCheck(cudaMalloc((void**)&data.gainForHLTonGPU, sizeof(SiPixelGainForHLTonGPU))); - cudaCheck(cudaMalloc((void**)&data.gainDataOnGPU, this->gains_->data().size())); - // gains.data().data() is used also for non-GPU code, we cannot allocate it on aligned and write-combined memory - cudaCheck(cudaMemcpyAsync( - data.gainDataOnGPU, this->gains_->data().data(), this->gains_->data().size(), cudaMemcpyDefault, stream)); - - cudaCheck(cudaMemcpyAsync( - data.gainForHLTonGPU, this->gainForHLTonHost_, sizeof(SiPixelGainForHLTonGPU), cudaMemcpyDefault, stream)); - cudaCheck(cudaMemcpyAsync(&(data.gainForHLTonGPU->v_pedestals_), - &(data.gainDataOnGPU), - sizeof(SiPixelGainForHLTonGPU_DecodingStructure*), - cudaMemcpyDefault, - stream)); - }); - return data.gainForHLTonGPU; -} diff --git a/CalibTracker/SiPixelESProducers/src/SiPixelROCsStatusAndMappingWrapper.cc b/CalibTracker/SiPixelESProducers/src/SiPixelROCsStatusAndMappingWrapper.cc deleted file mode 100644 index 3b7d9a84b91f1..0000000000000 --- a/CalibTracker/SiPixelESProducers/src/SiPixelROCsStatusAndMappingWrapper.cc +++ /dev/null @@ -1,171 +0,0 @@ -// C++ includes -#include -#include -#include -#include - -// CUDA includes -#include - -// CMSSW includes -#include "CalibTracker/SiPixelESProducers/interface/SiPixelROCsStatusAndMappingWrapper.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingMap.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingTree.h" -#include "CondFormats/SiPixelObjects/interface/SiPixelQuality.h" -#include "DataFormats/SiPixelClusterSoA/interface/ClusteringConstants.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "Geometry/CommonDetUnit/interface/GeomDetType.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" -#include "HeterogeneousCore/CUDAUtilities/interface/host_unique_ptr.h" - -SiPixelROCsStatusAndMappingWrapper::SiPixelROCsStatusAndMappingWrapper(SiPixelFedCablingMap const& cablingMap, - TrackerGeometry const& trackerGeom, - SiPixelQuality const* badPixelInfo) - : cablingMap_(&cablingMap), modToUnpDefault(pixelgpudetails::MAX_SIZE), hasQuality_(badPixelInfo != nullptr) { - cudaCheck(cudaMallocHost(&cablingMapHost, sizeof(SiPixelROCsStatusAndMapping))); - - std::vector const& fedIds = cablingMap.fedIds(); - std::unique_ptr const& cabling = cablingMap.cablingTree(); - - unsigned int startFed = *(fedIds.begin()); - unsigned int endFed = *(fedIds.end() - 1); - - sipixelobjects::CablingPathToDetUnit path; - int index = 1; - - for (unsigned int fed = startFed; fed <= endFed; fed++) { - for (unsigned int link = 1; link <= pixelgpudetails::MAX_LINK; link++) { - for (unsigned int roc = 1; roc <= pixelgpudetails::MAX_ROC; roc++) { - path = {fed, link, roc}; - const sipixelobjects::PixelROC* pixelRoc = cabling->findItem(path); - cablingMapHost->fed[index] = fed; - cablingMapHost->link[index] = link; - cablingMapHost->roc[index] = roc; - if (pixelRoc != nullptr) { - cablingMapHost->rawId[index] = pixelRoc->rawId(); - cablingMapHost->rocInDet[index] = pixelRoc->idInDetUnit(); - modToUnpDefault[index] = false; - if (badPixelInfo != nullptr) - cablingMapHost->badRocs[index] = badPixelInfo->IsRocBad(pixelRoc->rawId(), pixelRoc->idInDetUnit()); - else - cablingMapHost->badRocs[index] = false; - } else { // store some dummy number - cablingMapHost->rawId[index] = pixelClustering::invalidModuleId; - cablingMapHost->rocInDet[index] = pixelClustering::invalidModuleId; - cablingMapHost->badRocs[index] = true; - modToUnpDefault[index] = true; - } - index++; - } - } - } // end of FED loop - - // Given FedId, Link and idinLnk; use the following formula - // to get the rawId and idinDU - // index = (FedID-1200) * MAX_LINK* MAX_ROC + (Link-1)* MAX_ROC + idinLnk; - // where, MAX_LINK = 48, MAX_ROC = 8 for Phase1 as mentioned Danek's email - // FedID varies between 1200 to 1338 (In total 108 FED's) - // Link varies between 1 to 48 - // idinLnk varies between 1 to 8 - - for (int i = 1; i < index; i++) { - if (cablingMapHost->rawId[i] == pixelClustering::invalidModuleId) { - cablingMapHost->moduleId[i] = pixelClustering::invalidModuleId; - } else { - /* - std::cout << cablingMapHost->rawId[i] << std::endl; - */ - auto gdet = trackerGeom.idToDetUnit(cablingMapHost->rawId[i]); - if (!gdet) { - LogDebug("SiPixelROCsStatusAndMapping") << " Not found: " << cablingMapHost->rawId[i] << std::endl; - continue; - } - cablingMapHost->moduleId[i] = gdet->index(); - } - LogDebug("SiPixelROCsStatusAndMapping") - << "----------------------------------------------------------------------------" << std::endl; - LogDebug("SiPixelROCsStatusAndMapping") - << i << std::setw(20) << cablingMapHost->fed[i] << std::setw(20) << cablingMapHost->link[i] << std::setw(20) - << cablingMapHost->roc[i] << std::endl; - LogDebug("SiPixelROCsStatusAndMapping") - << i << std::setw(20) << cablingMapHost->rawId[i] << std::setw(20) << cablingMapHost->rocInDet[i] - << std::setw(20) << cablingMapHost->moduleId[i] << std::endl; - LogDebug("SiPixelROCsStatusAndMapping") - << i << std::setw(20) << (bool)cablingMapHost->badRocs[i] << std::setw(20) << std::endl; - LogDebug("SiPixelROCsStatusAndMapping") - << "----------------------------------------------------------------------------" << std::endl; - } - - cablingMapHost->size = index - 1; -} - -SiPixelROCsStatusAndMappingWrapper::~SiPixelROCsStatusAndMappingWrapper() { cudaCheck(cudaFreeHost(cablingMapHost)); } - -const SiPixelROCsStatusAndMapping* SiPixelROCsStatusAndMappingWrapper::getGPUProductAsync( - cudaStream_t cudaStream) const { - const auto& data = gpuData_.dataForCurrentDeviceAsync(cudaStream, [this](GPUData& data, cudaStream_t stream) { - // allocate - cudaCheck(cudaMalloc(&data.cablingMapDevice, sizeof(SiPixelROCsStatusAndMapping))); - - // transfer - cudaCheck(cudaMemcpyAsync( - data.cablingMapDevice, this->cablingMapHost, sizeof(SiPixelROCsStatusAndMapping), cudaMemcpyDefault, stream)); - }); - return data.cablingMapDevice; -} - -const unsigned char* SiPixelROCsStatusAndMappingWrapper::getModToUnpAllAsync(cudaStream_t cudaStream) const { - const auto& data = - modToUnp_.dataForCurrentDeviceAsync(cudaStream, [this](ModulesToUnpack& data, cudaStream_t stream) { - cudaCheck(cudaMalloc((void**)&data.modToUnpDefault, pixelgpudetails::MAX_SIZE_BYTE_BOOL)); - cudaCheck(cudaMemcpyAsync(data.modToUnpDefault, - this->modToUnpDefault.data(), - this->modToUnpDefault.size() * sizeof(unsigned char), - cudaMemcpyDefault, - stream)); - }); - return data.modToUnpDefault; -} - -cms::cuda::device::unique_ptr SiPixelROCsStatusAndMappingWrapper::getModToUnpRegionalAsync( - std::set const& modules, cudaStream_t cudaStream) const { - auto modToUnpDevice = cms::cuda::make_device_unique(pixelgpudetails::MAX_SIZE, cudaStream); - auto modToUnpHost = cms::cuda::make_host_unique(pixelgpudetails::MAX_SIZE, cudaStream); - - std::vector const& fedIds = cablingMap_->fedIds(); - std::unique_ptr const& cabling = cablingMap_->cablingTree(); - - unsigned int startFed = *(fedIds.begin()); - unsigned int endFed = *(fedIds.end() - 1); - - sipixelobjects::CablingPathToDetUnit path; - int index = 1; - - for (unsigned int fed = startFed; fed <= endFed; fed++) { - for (unsigned int link = 1; link <= pixelgpudetails::MAX_LINK; link++) { - for (unsigned int roc = 1; roc <= pixelgpudetails::MAX_ROC; roc++) { - path = {fed, link, roc}; - const sipixelobjects::PixelROC* pixelRoc = cabling->findItem(path); - if (pixelRoc != nullptr) { - modToUnpHost[index] = (not modules.empty()) and (modules.find(pixelRoc->rawId()) == modules.end()); - } else { // store some dummy number - modToUnpHost[index] = true; - } - index++; - } - } - } - - cudaCheck(cudaMemcpyAsync(modToUnpDevice.get(), - modToUnpHost.get(), - pixelgpudetails::MAX_SIZE * sizeof(unsigned char), - cudaMemcpyHostToDevice, - cudaStream)); - return modToUnpDevice; -} - -SiPixelROCsStatusAndMappingWrapper::GPUData::~GPUData() { cudaCheck(cudaFree(cablingMapDevice)); } - -SiPixelROCsStatusAndMappingWrapper::ModulesToUnpack::~ModulesToUnpack() { cudaCheck(cudaFree(modToUnpDefault)); } diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index bf0bc345665ba..bfa9c2f94cb14 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -198,6 +198,18 @@ def customizeHLTfor49436(process): return process + +def customizeHLTfor49799(process): + """Remove obsolete CUDA pixel ESProducers""" + + if hasattr(process, "siPixelGainCalibrationForHLTGPU"): + del process.siPixelGainCalibrationForHLTGPU + if hasattr(process, "siPixelROCsStatusAndMappingWrapperESProducer"): + del process.siPixelROCsStatusAndMappingWrapperESProducer + + return process + + # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -207,4 +219,6 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # process = customizeHLTfor49436(process) + process = customizeHLTfor49799(process) + return process