-
Notifications
You must be signed in to change notification settings - Fork 5
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
Make the the size of the binner (HistoContainer) settable at run time #590
Conversation
constexpr I const* data() const { return m_v; } | ||
|
||
private: | ||
I* m_v; |
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.
would it make sense to use
I* m_v; | |
std::unique_ptr<I[]> m_v; |
to handle the ownership of the memory ?
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.
it is external storage. This class is allocated on the GPU!
Validation summaryReference release CMSSW_11_2_0_pre10 at 6c149b2 Validation plots/RelValTTbar_14TeV/CMSSW_11_2_0_pre7-PU_112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW
/RelValZMM_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v2/GEN-SIM-DIGI-RAW
/RelValZEE_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW
Validation plots (CPU vs GPU)/RelValTTbar_14TeV/CMSSW_11_2_0_pre7-PU_112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW
/RelValZMM_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v2/GEN-SIM-DIGI-RAW
/RelValZEE_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW
Throughput plots/EphemeralHLTPhysics1/Run2018D-v1/RAW run=323775 lumi=53logs and
|
static constexpr uint32_t n16 = 4; | ||
static constexpr uint32_t n32 = 9; | ||
static constexpr uint32_t n32 = 10; |
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.
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.
should be pretty obvious from the code where it is used.
They are of course the number of elements with size 16 and size 32 respectively.
I will add a comment.
@@ -101,11 +103,15 @@ TrackingRecHit2DHeterogeneous<Traits>::TrackingRecHit2DHeterogeneous(uint32_t nH | |||
m_store32 = Traits::template make_device_unique<float[]>(nHits * n32 + 11, stream); |
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.
as suggested by @slava77 here, could you clarify if nHits * n32 + 11
should be nHits * n32 + phase1PixelTopology::numberOfLayers + 1
?
m_store32 = Traits::template make_device_unique<float[]>(nHits * n32 + 11, stream); | |
m_store32 = Traits::template make_device_unique<float[]>(nHits * n32 + phase1PixelTopology::numberOfLayers + 1, stream); |
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.
indeed.
I can remove all occurrences of MaxNumberOfHits MaxNumberOfClusters now or later. |
@fwyzard: could you please |
Rebased onto CMSSW_11_3_X and moved to cms-sw#33371 . |
This is "step1&2" and makes LocalReco independent from the size of the event and tuple-making independent of the number of hits.
Some of the containers used by the CA will remain of fixed size (cannot be extended during the pattern recognition).
In a third step phase1 and phase2 will be still kept separate (fixed number of modules, separate geometries etc)
even if fully configurable at runtime.
tested. no regression. even timing seems ok.