Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
6de171e
Implement a Heterogeneous version of Raw2Cluster and RecHit (cms-pata…
makortel Jun 4, 2018
b7e339b
Prototype for EventSetup data on GPUs (cms-patatrack#77)
makortel Jun 14, 2018
9af927e
Synchronise with CMSSW_10_2_0
fwyzard Aug 1, 2018
a4c526b
Synchronise with CMSSW_10_4_0_pre2
fwyzard Nov 14, 2018
fcf8d67
Synchronise with CMSSW_10_4_0_pre3
fwyzard Dec 7, 2018
fa62e7d
Next prototype of the framework integration (cms-patatrack#100)
makortel Mar 13, 2019
795efee
Various updates to pixel track/vertex DQM and MTV (cms-patatrack#285)
makortel Mar 15, 2019
7006648
Reimplement the ECAL multifit with CUDA, for an HLT-like configuratio…
vkhristenko Jun 25, 2019
b803812
Extend the ECAL validation on GPU (cms-patatrack#359)
fwyzard Jun 25, 2019
6e015d3
Add a converter for ECAL uncalibrated RecHit from SoA to legacy forma…
vkhristenko Jun 26, 2019
4d43970
Apply clang-format style formatting
fwyzard Sep 11, 2019
249aa64
Synchronise with CMSSW_11_0_0_pre7
fwyzard Sep 12, 2019
8f7fc7a
Remove unused class_def rules
fwyzard Sep 12, 2019
419aa82
Fix clang warnings (cms-patatrack#387)
makortel Oct 23, 2019
93dd141
Replace use of API wrapper stream and event with plain CUDA, part 1 (…
makortel Oct 26, 2019
7cd3e8e
Implement changes from the CUDA framework review (cms-patatrack#429)
makortel Jan 17, 2020
b00d983
Synchronise with CMSSW_11_1_0_pre5
fwyzard Mar 26, 2020
6be25f4
Implement the ECAL unpacker on GPUs (cms-patatrack#443)
vkhristenko Apr 3, 2020
823d7fe
Clean up ECAL unapcker code (cms-patatrack#444)
fwyzard Apr 3, 2020
ed9326c
Backport remove unneeded dependencies in Reco subsystems (#29295)
fwyzard Apr 6, 2020
92f357b
Apply code formatting fixes from upstream integration (cms-patatrack#…
fwyzard Apr 6, 2020
b426a89
Synchronise with CMSSW_11_1_0_pre7
fwyzard May 11, 2020
2c85634
Update the ECAL local reconstruction Tasks and Sequences
fwyzard May 8, 2020
e4df1da
Implement the ECAL-only gpu workflows (cms-patatrack#450)
fwyzard May 11, 2020
a48be4c
Simplify producing dummy collections in EcalCPUDigisProducer (cms-pat…
fwyzard May 12, 2020
6299135
ecalDigis: do not explicitly set default value (cms-sw#29836)
fwyzard May 14, 2020
7f23bbf
EcalUncalibRecHitProducerGPU: remove unused "shouldTransferToHost" pa…
fwyzard May 18, 2020
da82b8d
Rename CUDAHostAllocator to cms::cuda::HostAllocator (cms-patatrack#464)
fwyzard May 20, 2020
33690a2
Synchronise with CMSSW_11_1_0_pre8
fwyzard May 23, 2020
bd26eba
Add customisations for profiling the ECAL-only workflow (cms-patatrac…
fwyzard Jun 4, 2020
3360c67
Implement ECAL rechits on GPU (cms-patatrack#462)
amassiro Jun 4, 2020
b370e33
Enable ECAL rechits reconstruction on GPUs (cms-patatrack#473)
fwyzard Jun 10, 2020
7833581
Fixes for ECAL rechits on GPU (cms-patatrack#475)
amassiro Jun 11, 2020
a63a202
Enable ECAL rechits reconstruction on GPUs at HLT (cms-patatrack#477)
amassiro Jun 11, 2020
e481300
Restructure code to work around CUDA build limitations (cms-patatrack…
vkhristenko Jun 15, 2020
244cfa0
Apply code formatting (cms-patatrack#486)
makortel Jun 17, 2020
228625e
Comment unused variable eps_diff (cms-patatrack#490)
makortel Jun 18, 2020
167fd46
Remove duplicate dictionary definitions (cms-patatrack#489)
makortel Jun 18, 2020
3d9b272
Backport: add ECAL-only and HCAL-only workflows for MC and data (#30350)
mariadalfonso Jun 5, 2020
765a48f
Update ECAL and HCAL reconstruction to run on multple GPUs [1/3] (cms…
vkhristenko Jul 12, 2020
3079f23
Update ECAL and HCAL reconstruction to run on multple GPUs [2/3] (cms…
fwyzard Jul 12, 2020
2a384fa
Update ECAL and HCAL reconstruction to run on multple GPUs [3/3] (cms…
amassiro Jul 12, 2020
3bbc28f
Apply code formatting
fwyzard Jul 12, 2020
8a663d1
Migrate EcalUncalibRecHitProducerGPU to use ESGetToken's (cms-patatra…
fwyzard Jul 18, 2020
f384542
Configure the number of ECAL barrel and endcap channels separately (c…
amassiro Jul 21, 2020
0962cd4
Apply code formatting (cms-patatrack#524)
VinInn Jul 30, 2020
c15e453
Refactor common ECAL and HCAL code (cms-patatrack#523)
mariadalfonso Jul 30, 2020
2567694
Synchronise with CMSSW_11_2_0_pre7
fwyzard Oct 2, 2020
20731ea
Further clean up after merging CMSSW_11_2_0_pre7 (cms-patatrack#556)
fwyzard Oct 5, 2020
240d1d8
Move multifit/MAHI common code to DataFormats/CaloRecHit (cms-patatra…
mariadalfonso Oct 20, 2020
3bef19e
Address ECAL review comments regarding preprocessor directives (cms-p…
fwyzard Oct 20, 2020
9e3750f
Reduce code duplication in CPU and GPU modules (cms-patatrack#566)
fwyzard Nov 6, 2020
f5ad690
Address ECAL review comments regarding python files (cms-patatrack#563)
fwyzard Nov 10, 2020
04f3c46
Move common ESProducer templates to ConvertingESProducer(WithDependen…
fwyzard Nov 12, 2020
e52e730
Apply clang-format style formatting
fwyzard Nov 15, 2020
16b46a5
Refactor ECAL and HCAL chi2 code (cms-patatrack#567)
mariadalfonso Nov 9, 2020
0214a0f
Clean up ECAL local reconstruction code (cms-patatrack#591)
thomreis Dec 21, 2020
9a1a0a8
Do not use the ECAL calibrated rechits from the GPU workflow (cms-pat…
fwyzard Dec 21, 2020
e0092bd
Use CMS_UNROLL_LOOP instead of #pragma unroll in ECAL code (cms-patat…
fwyzard Dec 21, 2020
9666459
Update the default configuration of ECAL modules (cms-patatrack#598)
fwyzard Dec 23, 2020
01c1f96
Apply code formatting
fwyzard Dec 25, 2020
92f3342
Synchronise with CMSSW_11_3_X_2021-01-14-2300
fwyzard Jan 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CUDADataFormats/EcalDigi/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<use name="CUDADataFormats/Common"/>
<use name="CUDADataFormats/CaloCommon"/>
<use name="DataFormats/Common"/>
<use name="HeterogeneousCore/CUDAUtilities"/>

<export>
<lib name="1"/>
</export>
24 changes: 24 additions & 0 deletions CUDADataFormats/EcalDigi/interface/DigisCollection.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#ifndef CUDADataFormats_EcalDigi_interface_DigisCollection_h
#define CUDADataFormats_EcalDigi_interface_DigisCollection_h

#include "CUDADataFormats/CaloCommon/interface/Common.h"

namespace ecal {

template <typename StoragePolicy>
struct DigisCollection : public ::calo::common::AddSize<typename StoragePolicy::TagType> {
DigisCollection() = default;
DigisCollection(DigisCollection const &) = default;
DigisCollection &operator=(DigisCollection const &) = default;

DigisCollection(DigisCollection &&) = default;
DigisCollection &operator=(DigisCollection &&) = default;

// stride is statically known
typename StoragePolicy::template StorageSelector<uint32_t>::type ids;
typename StoragePolicy::template StorageSelector<uint16_t>::type data;
};

} // namespace ecal

#endif // CUDADataFormats_EcalDigi_interface_DigisCollection_h
3 changes: 3 additions & 0 deletions CUDADataFormats/EcalDigi/src/classes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include "CUDADataFormats/Common/interface/Product.h"
#include "CUDADataFormats/EcalDigi/interface/DigisCollection.h"
#include "DataFormats/Common/interface/Wrapper.h"
6 changes: 6 additions & 0 deletions CUDADataFormats/EcalDigi/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<lcgdict>
<class name="cms::cuda::Product<ecal::DigisCollection<calo::common::ViewStoragePolicy>>" persistent="false" />
<class name="cms::cuda::Product<ecal::DigisCollection<calo::common::DevStoragePolicy>>" persistent="false" />
<class name="edm::Wrapper<cms::cuda::Product<ecal::DigisCollection<calo::common::ViewStoragePolicy>>>" persistent="false"/>
<class name="edm::Wrapper<cms::cuda::Product<ecal::DigisCollection<calo::common::DevStoragePolicy>>>" persistent="false"/>
</lcgdict>
10 changes: 10 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<use name="cuda"/>
<use name="CUDADataFormats/Common"/>
<use name="CUDADataFormats/CaloCommon"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/EcalDigi"/>
<use name="HeterogeneousCore/CUDAUtilities"/>

<export>
<lib name="1"/>
</export>
45 changes: 45 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/interface/EcalRecHit.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#ifndef CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h
#define CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h

#include <array>
#include <vector>

#include "CUDADataFormats/CaloCommon/interface/Common.h"
#include "CUDADataFormats/EcalRecHitSoA/interface/RecoTypes.h"
#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h"

namespace ecal {

template <typename StoragePolicy>
struct RecHit : public ::calo::common::AddSize<typename StoragePolicy::TagType> {
RecHit() = default;
RecHit(const RecHit&) = default;
RecHit& operator=(const RecHit&) = default;

RecHit(RecHit&&) = default;
RecHit& operator=(RecHit&&) = default;

typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type energy;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type time;
// should we remove the following, since already included in "extra" ?
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type chi2;
typename StoragePolicy::template StorageSelector<uint32_t>::type
extra; // packed uint32_t for timeError, chi2, energyError
typename StoragePolicy::template StorageSelector<uint32_t>::type
flagBits; // store rechit condition (see Flags enum) in a bit-wise way
typename StoragePolicy::template StorageSelector<uint32_t>::type did;

template <typename U = typename StoragePolicy::TagType>
typename std::enable_if<std::is_same<U, ::calo::common::tags::Vec>::value, void>::type resize(size_t size) {
energy.resize(size);
time.resize(size);
chi2.resize(size);
extra.resize(size);
flagBits.resize(size);
did.resize(size);
}
};

} // namespace ecal

#endif // CUDADataFormats_EcalRecHitSoA_interface_EcalRecHit_h
46 changes: 46 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/interface/EcalUncalibratedRecHit.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#ifndef CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h
#define CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h

#include <array>
#include <vector>

#include "CUDADataFormats/CaloCommon/interface/Common.h"
#include "CUDADataFormats/EcalRecHitSoA/interface/RecoTypes.h"
#include "DataFormats/EcalDigi/interface/EcalDataFrame.h"

namespace ecal {

template <typename StoragePolicy>
struct UncalibratedRecHit : public ::calo::common::AddSize<typename StoragePolicy::TagType> {
UncalibratedRecHit() = default;
UncalibratedRecHit(const UncalibratedRecHit&) = default;
UncalibratedRecHit& operator=(const UncalibratedRecHit&) = default;

UncalibratedRecHit(UncalibratedRecHit&&) = default;
UncalibratedRecHit& operator=(UncalibratedRecHit&&) = default;

typename StoragePolicy::template StorageSelector<reco::ComputationScalarType>::type amplitudesAll;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type amplitude;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type chi2;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type pedestal;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type jitter;
typename StoragePolicy::template StorageSelector<reco::StorageScalarType>::type jitterError;
typename StoragePolicy::template StorageSelector<uint32_t>::type did;
typename StoragePolicy::template StorageSelector<uint32_t>::type flags;

template <typename U = typename StoragePolicy::TagType>
typename std::enable_if<std::is_same<U, ::calo::common::tags::Vec>::value, void>::type resize(size_t size) {
amplitudesAll.resize(size * EcalDataFrame::MAXSAMPLES);
amplitude.resize(size);
pedestal.resize(size);
chi2.resize(size);
did.resize(size);
flags.resize(size);
jitter.resize(size);
jitterError.resize(size);
}
};

} // namespace ecal

#endif // CUDADataFormats_EcalRecHitSoA_interface_EcalUncalibratedRecHit_h
13 changes: 13 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/interface/RecoTypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h
#define CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h

namespace ecal {
namespace reco {

using ComputationScalarType = float;
using StorageScalarType = float;

} // namespace reco
} // namespace ecal

#endif // CUDADataFormats_EcalRecHitSoA_interface_RecoTypes_h
4 changes: 4 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/src/classes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "CUDADataFormats/Common/interface/Product.h"
#include "CUDADataFormats/EcalRecHitSoA/interface/EcalRecHit.h"
#include "CUDADataFormats/EcalRecHitSoA/interface/EcalUncalibratedRecHit.h"
#include "DataFormats/Common/interface/Wrapper.h"
20 changes: 20 additions & 0 deletions CUDADataFormats/EcalRecHitSoA/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<lcgdict>
<class name="cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::ViewStoragePolicy>>" persistent="false"/>
<class name="cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::DevStoragePolicy>>" persistent="false"/>
<class name="edm::Wrapper<cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::ViewStoragePolicy>>>" persistent="false"/>
<class name="edm::Wrapper<cms::cuda::Product<ecal::UncalibratedRecHit<calo::common::DevStoragePolicy>>>" persistent="false"/>

<class name="cms::cuda::Product<ecal::RecHit<calo::common::ViewStoragePolicy>>" persistent="false"/>
<class name="cms::cuda::Product<ecal::RecHit<calo::common::DevStoragePolicy>>" persistent="false"/>
<class name="edm::Wrapper<cms::cuda::Product<ecal::RecHit<calo::common::ViewStoragePolicy>>>" persistent="false"/>
<class name="edm::Wrapper<cms::cuda::Product<ecal::RecHit<calo::common::DevStoragePolicy>>>" persistent="false"/>

<class name="ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>" persistent="false"/>
<class name="edm::Wrapper<ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>>" persistent="false"/>
<class name="ecal::RecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>" persistent="false"/>
<class name="edm::Wrapper<ecal::RecHit<calo::common::VecStoragePolicy<calo::common::CUDAHostAllocatorAlias>>>" persistent="false"/>
<class name="ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<std::allocator>>" persistent="false"/>
<class name="edm::Wrapper<ecal::UncalibratedRecHit<calo::common::VecStoragePolicy<std::allocator>>>" persistent="false"/>
<class name="ecal::RecHit<calo::common::VecStoragePolicy<std::allocator>>" persistent="false"/>
<class name="edm::Wrapper<ecal::RecHit<calo::common::VecStoragePolicy<std::allocator>>>" persistent="false"/>
</lcgdict>
3 changes: 2 additions & 1 deletion Configuration/StandardSequences/python/RawToDigi_cff.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import FWCore.ParameterSet.Config as cms
from Configuration.ProcessModifiers.gpu_cff import gpu

# This object is used to selectively make changes for different running
# scenarios. In this case it makes changes for Run 2.
Expand Down Expand Up @@ -74,7 +75,7 @@

scalersRawToDigi.scalersInputTag = 'rawDataCollector'
siPixelDigis.cpu.InputLabel = 'rawDataCollector'
ecalDigis.InputLabel = 'rawDataCollector'
(~gpu).toModify(ecalDigis, InputLabel='rawDataCollector')
ecalPreshowerDigis.sourceTag = 'rawDataCollector'
hcalDigis.InputLabel = 'rawDataCollector'
muonCSCDigis.InputObjects = 'rawDataCollector'
Expand Down
8 changes: 6 additions & 2 deletions EventFilter/EcalRawToDigi/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
<use name="FWCore/Framework"/>
<use name="FWCore/ParameterSet"/>
<use name="boost"/>
<use name="cuda"/>
<use name="CUDADataFormats/EcalDigi" />
<use name="CondFormats/EcalObjects"/>
<use name="DataFormats/EcalDetId"/>
<use name="DataFormats/EcalDigi"/>
<use name="DataFormats/EcalRawData"/>
<use name="DataFormats/EcalRecHit"/>
<use name="DataFormats/FEDRawData"/>
<use name="FWCore/Framework"/>
<use name="FWCore/MessageLogger"/>
<use name="FWCore/ParameterSet"/>
<use name="Geometry/EcalMapping"/>
<use name="HeterogeneousCore/CUDACore"/>
<use name="HeterogeneousCore/CUDAUtilities"/>
<use name="Utilities/StorageFactory"/>
<export>
<lib name="1"/>
Expand Down
7 changes: 7 additions & 0 deletions EventFilter/EcalRawToDigi/bin/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<bin name="makeEcalRaw2DigiGpuValidationPlots" file="makeEcalRaw2DigiGpuValidationPlots.cpp">
<use name="root"/>
<use name="rootgraphics"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/EcalDigi"/>
<use name="DataFormats/EcalDetId"/>
</bin>
Loading