-
Notifications
You must be signed in to change notification settings - Fork 52
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
exp: propagation-centric host ckf #761
base: main
Are you sure you want to change the base?
Conversation
da5a9e4
to
69d4b39
Compare
Quality Gate passedIssues Measures |
I would be onboard with the idea of candidate caching, but this PR seems to be mixture of several independent changes. It would be good to split this PR And I suggest to modify |
I was actually planning to keep |
What do you mean? so are you going to add |
That was my intention, yes. I would like to compare, if the additional memory consumption by the caching is possibly eating up the benefit from the more efficient navigation. But in order to make that comparison, we need to remove the additional work for the navigation cache from |
No. I don't think that justifies your intention. you can compare the performance between
What is the additional work and the navigation cache from |
It needs to hold more memory to cache candidates that it never uses (per branch) and we have seen that memory consumption makes a difference in performance. It also needs to build the cache and that means an additional step of sorting the candidate array every time a sensitive surface is reached. It also needs to resolve the trust levels and different update schemes of the cache (e.g. it rebuilds the entire cache if the next candidate is not reachable). That means a layer of of if-else constructs. All of this complexity is not needed in |
If I understood correctly, you want to compare the performance May I suggest to separate this into two sequential steps rather doing this in one-go?
|
Then we don't have to make two parallel implementations for |
What is the status of this PR? If you agree with my argument, can we close this? |
This is just a test to see what would need to be modified, in order to keep the navigation state alive and use candaidate caching in the navigator. So far, it only holds the 256 byte navigation state in addition to the bound track parameters and not the entire propagation state. This means, however, that the track parameters need to be copied in and out of the propagation state at every step and for every branch. This ckf implementation needs some additional changes in detray before it will compile.
Additionally, it sorts the valid measurements at every step, so that the best matching measurements get assign to the original branch and any new branches, in case the number of branches is limited to e.g. one or two.
The memory handling and the way the measurements are traces is not particularly smart, as that was not the focus of this example PR