-
Notifications
You must be signed in to change notification settings - Fork 157
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
refactor: Managing Seed Candidates with ad-hoc container #1764
refactor: Managing Seed Candidates with ad-hoc container #1764
Conversation
📊 Physics performance monitoring for 90764f0Full report VertexingSeedingCKFAmbiguity resolutionTruth tracking (Kalman Filter)Truth tracking (GSF) |
Codecov Report
@@ Coverage Diff @@
## main #1764 +/- ##
==========================================
- Coverage 49.77% 49.61% -0.17%
==========================================
Files 406 407 +1
Lines 22521 22596 +75
Branches 10286 10301 +15
==========================================
Hits 11210 11210
- Misses 4132 4207 +75
Partials 7179 7179
📣 We’re building smart automated test selection to slash your CI/CD build times. 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.
Just a few comments concerning the readability of the code (naming). I tis clearly inherited but maybe it could be improved.
One technical suggestion about use of quality ordered set. It may be that I have misunderstood things though.
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.
Had a quick look. I realy have (again) some better naming suggestions and questions. Besides that it all looks good.
SYCL and CUDA compilation working
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.
Great code! I really like it. I have left a few comments to correct typos and add lines to the documentation.
The major is to better explain the logic in the bubbledw
method.
Hi @noemina I should have addressed you comments. In particular I've extended the documentation on the |
thanks @noemina for the feedback. All threads are resolved. However the CI fails due to the codecov test, so I'm afraid that the automerge will not work |
Great! All good from my side. |
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.
Assuming @noemina meant to approve this PR.
I suspect the codecov might resolve when this branch is updated to current main.
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.
Of course!
@paulgessinger I'm afraid codecov is stubborn and doesn't want to succeed. |
Rewriting some part of the seeding codes, in particular how we collect the triplets candidates given a specific middle space point.
As of now these candidates are stored (and passed throughout the code) as
std::pair<float, std::unique_ptr<InternalSeed<external_spacepoint_t>>>
. Replacing the lower quality candidate with a new higher-quality candidate is not trivial if this has to happen multiple times during execution.This is now handled by a specific class (
CandidatesForSpM<InternalSpacePoint<external_spacepoint_t>>
), which stores triplets candidates in a vector sorted as min heap tree. The first elements of this vector is always guaranteed to be the one with the lowest weight (i.e. quality) even after removals and/or additions of other candidates.Inserting and removing elements from the stored collection is a log(N) operation.
Also taken a look around and made a few optimization changes:
Seed<InternalSpacePoint<external_spacepoint_t>>
?)Both default and orthogonal seedings have been adapted.
No physics performance changes are expected from this.
Still have to investigate on timings w.r.t. default code
/cc @noemina @LuisFelipeCoelho @paulgessinger @tboldagh @gagnonlg