Skip to content

ref: Use track parameter vector directly in seeding #949

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

niermann999
Copy link
Contributor

@niermann999 niermann999 commented Apr 25, 2025

Use the track parameter vector class directly in seeding instead of the column matrix bound_vector. This has the advantage, that the assertions in the setters of the track_parameter_vector class in detray are getting checked in debug builds.

Also adds the geometry context to the spacepoint formation interface and prevents the transform3 in the spacepoint formation from calculating an additional cross product, by providing all axes to the constructor.

@niermann999 niermann999 added the cleanup Makes the code all clean and tidy label Apr 25, 2025
@niermann999 niermann999 force-pushed the ref-use-track-param branch from 0f503d5 to 7d88939 Compare April 25, 2025 09:42
@niermann999 niermann999 marked this pull request as ready for review April 25, 2025 09:43
@niermann999 niermann999 force-pushed the ref-use-track-param branch from 7d88939 to 04cd604 Compare April 25, 2025 11:10
@stephenswat
Copy link
Member

Performance summary

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

Graphical

Tabular

Kernel 1febe21 04cd604 Delta
fit 280.09 ms 325.59 ms 16.2%
propagate_to_next_surface 118.39 ms 180.55 ms 52.5%
find_tracks 26.35 ms 26.93 ms 2.2%
count_triplets 14.17 ms 14.17 ms 0.0%
find_triplets 5.99 ms 5.98 ms -0.1%
build_tracks 1.07 ms 1.16 ms 8.7%
find_doublets 896.31 μs 900.02 μs 0.4%
Thrust::sort 778.37 μs 812.35 μs 4.4%
prune_tracks 672.38 μs 750.74 μs 11.7%
ccl_kernel 681.14 μs 682.74 μs 0.2%
count_doublets 627.28 μs 626.72 μs -0.1%
select_seeds 361.11 μs 362.68 μs 0.4%
apply_interaction 150.70 μs 157.58 μs 4.6%
update_triplet_weights 96.24 μs 95.90 μs -0.4%
fill_sort_keys 68.27 μs 76.15 μs 11.5%
populate_grid 30.46 μs 30.40 μs -0.2%
count_grid_capacities 29.21 μs 29.18 μs -0.1%
estimate_track_params 34.13 μs 21.53 μs -36.9%
form_spacepoints 13.43 μs 13.50 μs 0.5%
reduce_triplet_counts 6.64 μs 6.62 μs -0.3%
static_kernel 1.76 μs 1.75 μs -0.4%
make_barcode_sequence 993.12 ns 995.72 ns 0.3%
fill_prefix_sum 165.48 ns 165.51 ns 0.0%
Total 450.50 ms 558.96 ms 24.1%

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 on the explicit request of a human being.

@stephenswat
Copy link
Member

@niermann999 that doesn't look great! 😨

@stephenswat
Copy link
Member

Performance summary

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

Graphical

Tabular

Kernel 1febe21 04cd604 Delta
fit 279.50 ms 326.86 ms 16.9%
propagate_to_next_surface 118.38 ms 180.03 ms 52.1%
find_tracks 26.39 ms 26.89 ms 1.9%
count_triplets 14.17 ms 14.18 ms 0.1%
find_triplets 5.98 ms 6.00 ms 0.4%
build_tracks 1.07 ms 1.14 ms 5.8%
find_doublets 896.81 μs 904.24 μs 0.8%
Thrust::sort 777.61 μs 811.26 μs 4.3%
prune_tracks 674.27 μs 751.08 μs 11.4%
ccl_kernel 680.71 μs 681.12 μs 0.1%
count_doublets 626.15 μs 628.20 μs 0.3%
select_seeds 361.19 μs 354.16 μs -1.9%
apply_interaction 150.89 μs 157.78 μs 4.6%
update_triplet_weights 96.54 μs 96.01 μs -0.6%
fill_sort_keys 68.24 μs 76.14 μs 11.6%
populate_grid 30.39 μs 30.45 μs 0.2%
count_grid_capacities 29.20 μs 29.20 μs 0.0%
estimate_track_params 34.07 μs 21.55 μs -36.8%
form_spacepoints 13.53 μs 13.41 μs -0.9%
reduce_triplet_counts 6.63 μs 6.61 μs -0.4%
static_kernel 1.76 μs 1.76 μs -0.1%
make_barcode_sequence 987.73 ns 993.45 ns 0.6%
fill_prefix_sum 165.51 ns 165.50 ns -0.0%
Total 449.93 ms 559.65 ms 24.4%

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 on the explicit request of a human being.

@niermann999
Copy link
Contributor Author

@niermann999 that doesn't look great! 😨

Indeed! This is curious, it should not change any results. I will have a look at why this influences track finding

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cleanup Makes the code all clean and tidy
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants