-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Phase II Patatrack Pixel Local Reco #36235
Changes from all commits
8cbe916
58bb9a8
e7df4a5
e15d580
fea176d
8f294e1
c73168b
b347050
45133b4
cadda6a
6305d2c
26dc5ae
ca5abe7
1d87e99
702f4bd
e63524a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -3,6 +3,7 @@ | |||||||||||||||
|
||||||||||||||||
#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DSOAView.h" | ||||||||||||||||
#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h" | ||||||||||||||||
#include "RecoLocalTracker/SiPixelRecHits/interface/pixelCPEforGPU.h" | ||||||||||||||||
|
||||||||||||||||
template <typename Traits> | ||||||||||||||||
class TrackingRecHit2DHeterogeneous { | ||||||||||||||||
|
@@ -16,6 +17,7 @@ class TrackingRecHit2DHeterogeneous { | |||||||||||||||
|
||||||||||||||||
explicit TrackingRecHit2DHeterogeneous( | ||||||||||||||||
uint32_t nHits, | ||||||||||||||||
bool isPhase2, | ||||||||||||||||
int32_t offsetBPIX2, | ||||||||||||||||
pixelCPEforGPU::ParamsOnGPU const* cpeParams, | ||||||||||||||||
uint32_t const* hitsModuleStart, | ||||||||||||||||
|
@@ -33,6 +35,7 @@ class TrackingRecHit2DHeterogeneous { | |||||||||||||||
TrackingRecHit2DSOAView const* view() const { return m_view.get(); } | ||||||||||||||||
|
||||||||||||||||
auto nHits() const { return m_nHits; } | ||||||||||||||||
auto nMaxModules() const { return m_nMaxModules; } | ||||||||||||||||
auto offsetBPIX2() const { return m_offsetBPIX2; } | ||||||||||||||||
|
||||||||||||||||
auto hitsModuleStart() const { return m_hitsModuleStart; } | ||||||||||||||||
|
@@ -66,6 +69,7 @@ class TrackingRecHit2DHeterogeneous { | |||||||||||||||
|
||||||||||||||||
uint32_t const* m_hitsModuleStart; // needed for legacy, this is on GPU! | ||||||||||||||||
|
||||||||||||||||
uint32_t m_nMaxModules; | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dropped in the follow up PR. |
||||||||||||||||
// needed as kernel params... | ||||||||||||||||
PhiBinner* m_phiBinner; | ||||||||||||||||
PhiBinner::index_type* m_phiBinnerStorage; | ||||||||||||||||
|
@@ -83,6 +87,7 @@ using TrackingRecHit2DHost = TrackingRecHit2DHeterogeneous<cms::cudacompat::Host | |||||||||||||||
template <typename Traits> | ||||||||||||||||
TrackingRecHit2DHeterogeneous<Traits>::TrackingRecHit2DHeterogeneous( | ||||||||||||||||
uint32_t nHits, | ||||||||||||||||
bool isPhase2, | ||||||||||||||||
int32_t offsetBPIX2, | ||||||||||||||||
pixelCPEforGPU::ParamsOnGPU const* cpeParams, | ||||||||||||||||
uint32_t const* hitsModuleStart, | ||||||||||||||||
|
@@ -91,7 +96,10 @@ TrackingRecHit2DHeterogeneous<Traits>::TrackingRecHit2DHeterogeneous( | |||||||||||||||
: m_nHits(nHits), m_offsetBPIX2(offsetBPIX2), m_hitsModuleStart(hitsModuleStart) { | ||||||||||||||||
auto view = Traits::template make_host_unique<TrackingRecHit2DSOAView>(stream); | ||||||||||||||||
|
||||||||||||||||
m_nMaxModules = isPhase2 ? phase2PixelTopology::numberOfModules : phase1PixelTopology::numberOfModules; | ||||||||||||||||
Comment on lines
96
to
+99
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dropped in the follow up PR. |
||||||||||||||||
|
||||||||||||||||
view->m_nHits = nHits; | ||||||||||||||||
view->m_nMaxModules = m_nMaxModules; | ||||||||||||||||
m_view = Traits::template make_unique<TrackingRecHit2DSOAView>(stream); // leave it on host and pass it by value? | ||||||||||||||||
m_AverageGeometryStore = Traits::template make_unique<TrackingRecHit2DSOAView::AverageGeometry>(stream); | ||||||||||||||||
view->m_averageGeometry = m_AverageGeometryStore.get(); | ||||||||||||||||
|
@@ -120,8 +128,11 @@ TrackingRecHit2DHeterogeneous<Traits>::TrackingRecHit2DHeterogeneous( | |||||||||||||||
copyFromGPU(input, stream); | ||||||||||||||||
} else { | ||||||||||||||||
assert(input == nullptr); | ||||||||||||||||
|
||||||||||||||||
auto nL = isPhase2 ? phase2PixelTopology::numberOfLayers : phase1PixelTopology::numberOfLayers; | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dropped in the follow up PR. |
||||||||||||||||
|
||||||||||||||||
m_store16 = Traits::template make_unique<uint16_t[]>(nHits * n16, stream); | ||||||||||||||||
m_store32 = Traits::template make_unique<float[]>(nHits * n32 + phase1PixelTopology::numberOfLayers + 1, stream); | ||||||||||||||||
m_store32 = Traits::template make_unique<float[]>(nHits * n32 + nL + 1, stream); | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dropped in the follow up PR. |
||||||||||||||||
m_PhiBinnerStore = Traits::template make_unique<TrackingRecHit2DSOAView::PhiBinner>(stream); | ||||||||||||||||
} | ||||||||||||||||
|
||||||||||||||||
|
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
|
@@ -4,7 +4,7 @@ | |||||||
# here only define the workflows as a combination of the steps defined above: | ||||||||
workflows = Matrix() | ||||||||
|
||||||||
# each workflow defines a name and a list of steps to be done. | ||||||||
# each workflow defines a name and a list of steps to be done. | ||||||||
# if no explicit name/label given for the workflow (first arg), | ||||||||
# the name of step1 will be used | ||||||||
|
||||||||
|
@@ -39,7 +39,7 @@ | |||||||
numWFIB.extend([38234.0]) #2026D85 | ||||||||
numWFIB.extend([38634.0]) #2026D86 | ||||||||
numWFIB.extend([39034.0]) #2026D87 | ||||||||
numWFIB.extend([39434.0]) #2026D88 | ||||||||
numWFIB.extend([39434.0,39434.5,39434.501,39434.502]) #2026D88, pixelTrackingOnly, Patatrack local reconstruction on CPU, Patatrack local reconstruction on GPU | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In analogy to what is done in the other lines of this config file:
Suggested change
|
||||||||
numWFIB.extend([39834.0]) #2026D89 | ||||||||
numWFIB.extend([40234.0]) #2026D90 | ||||||||
|
||||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -156,7 +156,7 @@ def setup_(self, step, stepName, stepDict, k, properties): | |
era=properties.get('Era', None) | ||
modifier=properties.get('ProcessModifier',None) | ||
if cust is not None: stepDict[stepName][k]['--customise']=cust | ||
if era is not None: | ||
if era is not None: | ||
stepDict[stepName][k]['--era']=era | ||
if modifier is not None: stepDict[stepName][k]['--procModifier']=modifier | ||
def condition(self, fragment, stepList, key, hasHarvest): | ||
|
@@ -304,7 +304,7 @@ def setup__(self, step, stepName, stepDict, k, properties): | |
if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) | ||
elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]]) | ||
def condition_(self, fragment, stepList, key, hasHarvest): | ||
return '2017' in key or '2018' in key or '2021' in key | ||
return '2017' in key or '2018' in key or '2021' in key or '2026' in key | ||
upgradeWFs['pixelTrackingOnly'] = UpgradeWorkflow_pixelTrackingOnly( | ||
steps = [ | ||
'Reco', | ||
|
@@ -482,6 +482,7 @@ def condition(self, fragment, stepList, key, hasHarvest): | |
('2021' in key and fragment == "TTbar_14TeV"), | ||
('2018' in key and fragment == "ZMM_13"), | ||
('2021' in key and fragment == "ZMM_14"), | ||
('2026D88' in key and fragment == "TTbar_14TeV" and "PixelOnly" in self.suffix) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor thing: One may need to update the comment in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks Phat, in the unlikely chance this PR does not get any further comment I'd leave it to the pixel track PR (: |
||
] | ||
result = any(selected) and hasHarvest | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unless it is important to highlight that it is 3 x a-power-of-two ?