Skip to content

Commit f96dada

Browse files
committed
Second round of comments - part II
1 parent d54eb7d commit f96dada

File tree

8 files changed

+42
-24
lines changed

8 files changed

+42
-24
lines changed

DataFormats/TrackSoA/interface/TracksSoA.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ namespace reco {
5454
auto end = tracks[i].hitOffsets();
5555
auto hitId = hits[start].id();
5656
int nl = 1;
57-
auto ol = 0;
57+
int ol = 0;
5858
while (hitId >= layerStarts[ol + 1] and ol < maxLayers)
5959
++ol;
6060
++start;
6161
for (; start < end; ++start) {
6262
hitId = hits[start].id();
63-
auto il = 0;
63+
int il = 0;
6464
while (hitId >= layerStarts[il + 1] and il < maxLayers)
6565
++il;
6666
if (il != ol)

DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsDevice.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ namespace reco {
5353
}
5454

5555
uint32_t nHits() const { return this->template view<TrackingRecHitSoA>().metadata().size(); }
56-
uint32_t nModules() const { return this->template view<HitModuleSoA>().metadata().size(); }
56+
uint32_t nModules() const { return this->template view<HitModuleSoA>().metadata().size() - 1; }
5757

5858
int32_t offsetBPIX2() const { return offsetBPIX2_; }
5959

DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ namespace reco {
4848
}
4949

5050
uint32_t nHits() const { return this->template view<TrackingRecHitSoA>().metadata().size(); }
51-
uint32_t nModules() const { return this->template view<HitModuleSoA>().metadata().size(); }
51+
uint32_t nModules() const { return this->template view<HitModuleSoA>().metadata().size() - 1; }
5252

5353
int32_t offsetBPIX2() const { return this->template view<TrackingRecHitSoA>().offsetBPIX2(); }
5454

DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,12 @@ namespace cms::alpakatools {
6060
static auto copyAsync(TQueue& queue, reco::TrackingRecHitHost const& hostData) {
6161
using TDevice = typename alpaka::trait::DevType<TQueue>::type;
6262

63-
auto hostHitView = hostData.template view<reco::TrackingRecHitSoA>();
64-
auto moduleHitsView = hostData.template view<reco::HitModuleSoA>();
63+
auto nHits = hostData.nHits();
6564

6665
reco::TrackingRecHitDevice<TDevice> deviceData(
67-
queue, hostHitView.metadata().size(), moduleHitsView.metadata().size());
66+
queue, nHits, hostData.nModules());
6867

69-
if (hostHitView.metadata().size() == 0) {
68+
if (nHits == 0) {
7069
std::memset(
7170
deviceData.buffer().data(),
7271
0,

HeterogeneousCore/AlpakaInterface/interface/prefixScan.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,13 @@ namespace cms::alpakatools {
188188
psum[i] = (j < size) ? co[j] : T(0);
189189
}
190190
alpaka::syncBlockThreads(acc);
191-
if (blocksPerGrid <= 1024)
191+
if (blocksPerGrid <= warpSize*warpSize)
192192
blockPrefixScan(acc, psum, psum, blocksPerGrid, ws);
193193
else {
194194
auto off = 0u;
195-
while (off + 1024 < blocksPerGrid) {
196-
blockPrefixScan(acc, psum + off, psum + off, 1024, ws);
197-
off = off + 1024 - 1;
195+
while (off + warpSize*warpSize < blocksPerGrid) {
196+
blockPrefixScan(acc, psum + off, warpSize*warpSize, ws);
197+
off = off + warpSize*warpSize - 1;
198198
alpaka::syncBlockThreads(acc);
199199
}
200200
blockPrefixScan(acc, psum + off, psum + off, blocksPerGrid - off, ws);

RecoLocalTracker/SiPixelRecHits/plugins/alpaka/PixelRecHits.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
4545
// This is necessary only once - consider moving it somewhere else.
4646
// Copy the average geometry corrected by the beamspot.
4747
if (0 == module) {
48-
// auto& agc = hits.averageGeometry();
48+
4949
auto const& ag = cpeParams->averageGeometry();
5050
auto nLadders = TrackerTraits::numberOfLaddersInBarrel;
5151

RecoLocalTracker/SiPixelRecHits/src/PixelCPEFastParamsHost.cc

+3-4
Original file line numberDiff line numberDiff line change
@@ -255,17 +255,16 @@ void PixelCPEFastParamsHost<TrackerTraits>::fillParamsForDevice() {
255255

256256
#ifdef ONLY_TRIPLETS_IN_HOLE
257257
// compute ladder baricenter (only in global z) for the barrel
258-
//
259258

260259
constexpr int numberOfModulesInLadder = TrackerTraits::numberOfModulesInLadder;
261260
constexpr int numberOfLaddersInBarrel = TrackerTraits::numberOfLaddersInBarrel;
262261
constexpr int numberOfModulesInBarrel = TrackerTraits::numberOfModulesInBarrel;
263262

264-
constexpr int firstEndcapPos = TrackerTraits::firstEndcapPos;
265-
constexpr int firstEndcapNeg = TrackerTraits::firstEndcapNeg;
266-
267263
constexpr float ladderFactor = 1.f / float(numberOfModulesInLadder);
268264

265+
constexpr int firstEndcapPos = TrackerTraits::firstEndcapPos;
266+
constexpr int firstEndcapNeg = TrackerTraits::firstEndcapNeg;
267+
269268
auto& aveGeom = buffer_->averageGeometry();
270269
int il = 0;
271270
for (int im = 0, nm = numberOfModulesInBarrel; im < nm; ++im) {

RecoTracker/PixelSeeding/plugins/alpaka/CAHitNtupletGenerator.cc

+27-7
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
4343
//// Pixel Cluster Cuts (@cell level)
4444
desc.add<double>("dzdrFact", 8.0f * 0.0285f / 0.015f);
4545
desc.add<unsigned int>("minYsizeB1", 1)
46-
->setComment("Cut on inner hit cluster size (in Y) for barrel-forward cells. Barrel 1 cut.");
46+
->setComment("Cut on inner hit cluster size (in Y) for barrel-forward cells. Barrel 1 cut.");
4747
desc.add<unsigned int>("minYsizeB2", 1)
4848
->setComment("Cut on inner hit cluster size (in Y) for barrel-forward cells. Barrel 2 cut.");
4949
desc.add<unsigned int>("maxDYsize12", 28)
@@ -54,15 +54,35 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
5454
->setComment("Cut on cluster size differences (in Y) for barrel-forward cells. Barrel-forward cells.");
5555

5656
// Container sizes
57-
desc.add<std::string>("maxNumberOfDoublets", std::to_string(pixelTopology::Phase1::maxNumberOfDoublets));
58-
desc.add<std::string>("maxNumberOfTuples", std::to_string(pixelTopology::Phase1::maxNumberOfTuples));
59-
desc.add<double>("avgHitsPerTrack", 5.0f);
60-
desc.add<double>("avgCellsPerHit", 25.0f);
61-
desc.add<double>("avgCellsPerCell", 2.0f);
62-
desc.add<double>("avgTracksPerCell", 1.0f);
57+
//
58+
// maxNumberOfDoublets and maxNumberOfTuples may be defined at runtime depending on the number of hits.
59+
// This is done via a TFormula expecting 'x' as nHits.
60+
// e.g. : maxNumberOfDoublets = cms.string( '0.00022*pow(x,2) + 0.53*x + 10000' )
61+
// will compute maxNumberOfDoublets for each event as
62+
//
63+
// maxNumberOfDoublets = 2.2e-4 * nHits^2 + 0.53 * nHits + 10000
64+
//
65+
// this may also be simply a constant (as for the default parameters)
66+
//
67+
// maxNumberOfDoublets = cms.string(str(512*1024))
68+
//
69+
70+
desc.add<std::string>("maxNumberOfDoublets", std::to_string(pixelTopology::Phase1::maxNumberOfDoublets))
71+
->setComment("Max nummber of doublets (cells) as a string. The string will be parsed to a TFormula, depending on nHits (labeled 'x'), \n and evaluated for each event. May also be a constant.");
72+
desc.add<std::string>("maxNumberOfTuples", std::to_string(pixelTopology::Phase1::maxNumberOfTuples))
73+
->setComment("Max nummber of tuples as a string. Same behavior as maxNumberOfDoublets.");
74+
desc.add<double>("avgHitsPerTrack", 5.0f)
75+
->setComment("Number of hits per track. Average per track.");
76+
desc.add<double>("avgCellsPerHit", 25.0f)
77+
->setComment("Number of cells for which an hit is the outer hit. Average per hit.");
78+
desc.add<double>("avgCellsPerCell", 2.0f)
79+
->setComment("Number of cells connected to another cell. Average per cell.");
80+
desc.add<double>("avgTracksPerCell", 1.0f)
81+
->setComment("Number of tracks to which a cell belongs. Average per cell.");
6382

6483
// nTuplet Cuts and Params
6584
desc.add<double>("ptmin", 0.9f)->setComment("Cut on minimum pt");
85+
//// p [GeV/c] = B [T] * R [m] * 0.3 (factor from conversion from J to GeV and q = e = 1.6 * 10e-19 C)
6686
//// 87 cm/GeV = 1/(3.8T * 0.3)
6787
//// take less than radius given by the hardPtCut and reject everything below
6888
desc.add<double>("hardCurvCut", 1.f / (0.35 * 87.f))

0 commit comments

Comments
 (0)