Skip to content

Refactor subspace storage and handling#1308

Open
stephenswat wants to merge 1 commit into
acts-project:mainfrom
stephenswat:refactor/subspace
Open

Refactor subspace storage and handling#1308
stephenswat wants to merge 1 commit into
acts-project:mainfrom
stephenswat:refactor/subspace

Conversation

@stephenswat
Copy link
Copy Markdown
Member

This commit refactors the subspace representation to become more compact, and also adds additional member functions to elegantly model some of the operations performed on the projection matrix in the Kálmán filter code. Specifically, it packs the indices using a single bit field rather than an array of integers. Furthermore, it allows for the subspace to store signed projections (used for line surfaces) as well as invalid projections (used for 1D measurements).

@stephenswat stephenswat requested a review from niermann999 May 5, 2026 08:55
@stephenswat stephenswat added the refactor Change the structure of the code label May 5, 2026
@stephenswat

This comment was marked as outdated.

@stephenswat

This comment was marked as outdated.

This commit refactors the subspace representation to become more
compact, and also adds additional member functions to elegantly model
some of the operations performed on the projection matrix in the Kálmán
filter code. Specifically, it packs the indices using a single bit field
rather than an array of integers. Furthermore, it allows for the
subspace to store signed projections (used for line surfaces) as well as
invalid projections (used for 1D measurements).
@stephenswat stephenswat force-pushed the refactor/subspace branch from 356c4a3 to 0b7bb10 Compare May 7, 2026 12:50
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

@stephenswat
Copy link
Copy Markdown
Member Author

Physics performance summary

Here is a summary of the physics performance effects of this PR. Command used:

traccc_seeding_example_cuda --input-directory=/data/Acts/odd-simulations-20240506/geant4_ttbar_mu200 --digitization-file=geometries/odd/odd-digi-geometric-config.json --conditions-file=geometries/odd/odd-digi-geometric-config.json --detector-file=geometries/odd/odd-detray_geometry_detray.json --grid-file=geometries/odd/odd-detray_surface_grids_detray.json --material-file=geometries/odd/odd-detray_material_detray.json --input-events=10 --use-acts-geom-source=on --check-performance --truth-finding-min-track-candidates=5 --truth-finding-min-pt=1.0 --truth-finding-min-z=-150 --truth-finding-max-z=150 --truth-finding-max-r=10 --seed-matching-ratio=0.99 --track-matching-ratio=0.5 --track-candidates-range=5:100 --seedfinder-vertex-range=-150:150

Seeding performance

Total number of seeds went from 298341 to 298340 (-0.0%)

Seeding plots



Track finding performance

Total number of found tracks went from 50211 to 50206 (-0.0%)

Finding plots









Track fitting performance

Fitting plots














Seeding to track finding relative performance

Seeding to track finding plots



Note

This is an automated message produced on the explicit request of a human being.

@stephenswat
Copy link
Copy Markdown
Member Author

Performance summary

Here is a summary of the performance effects of this PR:

Graphical

Tabular

KernelReciprocal ThroughputParallelism
bd18c460b7bb10Deltabd18c460b7bb10
propagate_to_next_surface5.80 ms5.80 ms0.0%4.334.33
find_tracks1.76 ms2.10 ms19.4%1.821.60
count_doublets829.83 μs820.67 μs-1.1%1.611.61
ccl_kernel591.91 μs591.54 μs-0.1%1.711.71
count_triplets567.94 μs567.75 μs-0.0%1.021.02
find_doublets535.00 μs537.89 μs0.5%3.083.08
Thrust::sort378.90 μs378.89 μs-0.0%7.327.32
find_triplets169.54 μs169.58 μs0.0%1.311.32
estimate_track_params146.55 μs146.68 μs0.1%2.682.68
build_tracks123.87 μs125.04 μs0.9%3.713.72
select_seeds59.48 μs58.66 μs-1.4%1.341.34
populate_grid23.86 μs23.92 μs0.2%1.221.22
count_grid_capacities22.13 μs22.14 μs0.1%1.221.22
remove_duplicates19.99 μs20.17 μs0.9%25.6725.50
fill_sorted_measurements16.22 μs16.31 μs0.5%1.131.13
update_triplet_weights14.85 μs14.89 μs0.2%1.271.27
fill_finding_propagation_sort_keys8.76 μs8.73 μs-0.3%7.757.76
form_spacepoints8.39 μs8.42 μs0.3%1.491.49
reduce_triplet_counts5.63 μs5.64 μs0.2%3.093.09
unknown5.04 μs5.03 μs-0.1%4.274.27
fill_finding_duplicate_removal_sort_keys1.56 μs1.56 μs0.2%37.9737.89
Total11.09 ms11.43 ms3.0%3.393.31

Important

All metrics in this report are given as reciprocal throughput, not as wallclock runtime.

Warning

At least one kernel incurred a significant performance regression.

Note

This is an automated message produced upon the explicit request of a human being.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor Change the structure of the code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants