-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(gx2f): put parts into separate compile units (#3946)
This reduces the memory impact of the GX2F during compilation by: - extracting heavy parts to a separate compile unit - removing the templating from the extracted parts (to make them moveable in the first place) ## Impact main: ``` [ 6.03M, max: 1072.02M] [ 9.74s] - Core/src/TrackFitting/GlobalChiSquareFitter.cpp [ 7.05M, max: 3364.18M] [ 52.19s] - Examples/Algorithms/TrackFitting/src/GlobalChiSquareFitterFunction.cpp [ 6.93M, max: 4196.06M] [ 85.36s] - Tests/UnitTests/Core/TrackFitting/Gx2fTests.cpp ``` after addMeasurementToGx2fSumsBackend: ``` [ 6.04M, max: 1408.93M] [ 16.37s] - Core/src/TrackFitting/GlobalChiSquareFitter.cpp [ 6.91M, max: 2299.42M] [ 29.93s] - Examples/Algorithms/TrackFitting/src/GlobalChiSquareFitterFunction.cpp [ 6.94M, max: 3269.05M] [ 59.98s] - Tests/UnitTests/Core/TrackFitting/Gx2fTests.cpp ``` after computeGx2fDeltaParams: ``` [ 6.40M, max: 1769.83M] [ 20.65s] - Core/src/TrackFitting/GlobalChiSquareFitter.cpp [ 5.94M, max: 1805.96M] [ 24.37s] - Examples/Algorithms/TrackFitting/src/GlobalChiSquareFitterFunction.cpp [ 7.23M, max: 2510.50M] [ 53.56s] - Tests/UnitTests/Core/TrackFitting/Gx2fTests.cpp ``` ## Other discussion on the topic ### Performance of dynamic matrix This still needs investigation. Maybe we can template the functions again on `kMeasDims` ### Untemplate temporary track This was the first attempt, by using `VectorMultiTrajectory` for the internal tracks. This fails in Athena, because there the `Mutable...` is used. This comes in with the calibrator. Currently, it might work with 2 calibrators (one for the fitting Actor and one for the final Actor). Better solution would be to have type-erasure, which might come in the future. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new method for adding measurement data into the fitting system, enhancing the integration process. - Added a function to compute delta parameters for improved clarity in the fitting process. - **Improvements** - Streamlined measurement handling and error management within the fitting framework for better efficiency. - Enhanced the modularity of the fitting process, improving maintainability and clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
- Loading branch information
Showing
2 changed files
with
133 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters