Skip to content

Commit 36f8a7e

Browse files
authored
Merge pull request #1114 from beomki-yeo/merge-kernels
Merge count_removable_tracks and remove_tracks
1 parent e393122 commit 36f8a7e

File tree

7 files changed

+275
-453
lines changed

7 files changed

+275
-453
lines changed

device/common/include/traccc/ambiguity_resolution/device/count_removable_tracks.hpp

Lines changed: 0 additions & 96 deletions
This file was deleted.

device/common/include/traccc/ambiguity_resolution/device/remove_tracks.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,19 @@ struct remove_tracks_payload {
8080
unsigned int* n_removable_tracks;
8181

8282
/**
83-
* @brief View object to measurements to remove
83+
* @brief The number of measurements to remove
8484
*/
85-
vecmem::data::vector_view<measurement_id_type> meas_to_remove_view;
85+
unsigned int* n_meas_to_remove;
8686

8787
/**
88-
* @brief View object to thread id of measurements to remove
88+
* @brief Whether to terminate the calculation
8989
*/
90-
vecmem::data::vector_view<unsigned int> threads_view;
90+
int* terminate;
9191

9292
/**
93-
* @brief Whether to terminate the calculation
93+
* @brief The number of max shared
9494
*/
95-
int* terminate;
95+
unsigned int* max_shared;
9696

9797
/**
9898
* @brief The number of updated tracks

device/cuda/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ traccc_add_library( traccc_cuda cuda TYPE SHARED
8989
"src/ambiguity_resolution/kernels/add_block_offset.cuh"
9090
"src/ambiguity_resolution/kernels/block_inclusive_scan.cu"
9191
"src/ambiguity_resolution/kernels/block_inclusive_scan.cuh"
92-
"src/ambiguity_resolution/kernels/count_removable_tracks.cu"
93-
"src/ambiguity_resolution/kernels/count_removable_tracks.cuh"
9492
"src/ambiguity_resolution/kernels/count_shared_measurements.cu"
9593
"src/ambiguity_resolution/kernels/count_shared_measurements.cuh"
9694
"src/ambiguity_resolution/kernels/find_max_shared.cu"

device/cuda/src/ambiguity_resolution/greedy_ambiguity_resolution_algorithm.cu

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include "../utils/utils.hpp"
1111
#include "./kernels/add_block_offset.cuh"
1212
#include "./kernels/block_inclusive_scan.cuh"
13-
#include "./kernels/count_removable_tracks.cuh"
1413
#include "./kernels/count_shared_measurements.cuh"
1514
#include "./kernels/fill_inverted_ids.cuh"
1615
#include "./kernels/fill_track_candidates.cuh"
@@ -383,19 +382,14 @@ greedy_ambiguity_resolution_algorithm::operator()(
383382
m_mr.main};
384383
m_copy.get().setup(updated_tracks_buffer)->ignore();
385384

386-
// Measurements to remove for each iteration
387-
vecmem::data::vector_buffer<measurement_id_type> meas_to_remove_buffer{
388-
1024, m_mr.main};
389-
vecmem::data::vector_buffer<unsigned int> threads_buffer{1024, m_mr.main};
390-
385+
// Device objects
391386
vecmem::unique_alloc_ptr<unsigned int> n_removable_tracks_device =
392387
vecmem::make_unique_alloc<unsigned int>(m_mr.main);
393388
vecmem::unique_alloc_ptr<unsigned int> n_meas_to_remove_device =
394389
vecmem::make_unique_alloc<unsigned int>(m_mr.main);
395390
vecmem::unique_alloc_ptr<unsigned int> n_valid_threads_device =
396391
vecmem::make_unique_alloc<unsigned int>(m_mr.main);
397392

398-
// Device objects
399393
int is_first_iteration = 1;
400394
vecmem::unique_alloc_ptr<int> is_first_iteration_device =
401395
vecmem::make_unique_alloc<int>(m_mr.main);
@@ -486,23 +480,6 @@ greedy_ambiguity_resolution_algorithm::operator()(
486480
.max_shared = max_shared_device.get(),
487481
.is_updated_view = is_updated_buffer});
488482

489-
kernels::count_removable_tracks<<<1, 512, 0, stream>>>(
490-
device::count_removable_tracks_payload{
491-
.terminate = terminate_device.get(),
492-
.max_shared = max_shared_device.get(),
493-
.sorted_ids_view = sorted_ids_buffer,
494-
.n_accepted = n_accepted_device.get(),
495-
.meas_ids_view = meas_ids_buffer,
496-
.n_meas_view = n_meas_buffer,
497-
.meas_id_to_unique_id_view = meas_id_to_unique_id_buffer,
498-
.n_accepted_tracks_per_measurement_view =
499-
n_accepted_tracks_per_measurement_buffer,
500-
.n_removable_tracks = n_removable_tracks_device.get(),
501-
.n_meas_to_remove = n_meas_to_remove_device.get(),
502-
.meas_to_remove_view = meas_to_remove_buffer,
503-
.threads_view = threads_buffer,
504-
.n_valid_threads = n_valid_threads_device.get()});
505-
506483
kernels::remove_tracks<<<1, 512, 0, stream>>>(
507484
device::remove_tracks_payload{
508485
.sorted_ids_view = sorted_ids_buffer,
@@ -518,9 +495,9 @@ greedy_ambiguity_resolution_algorithm::operator()(
518495
.n_shared_view = n_shared_buffer,
519496
.rel_shared_view = rel_shared_buffer,
520497
.n_removable_tracks = n_removable_tracks_device.get(),
521-
.meas_to_remove_view = meas_to_remove_buffer,
522-
.threads_view = threads_buffer,
498+
.n_meas_to_remove = n_meas_to_remove_device.get(),
523499
.terminate = terminate_device.get(),
500+
.max_shared = max_shared_device.get(),
524501
.n_updated_tracks = n_updated_tracks_device.get(),
525502
.updated_tracks_view = updated_tracks_buffer,
526503
.is_updated_view = is_updated_buffer,
@@ -617,7 +594,7 @@ greedy_ambiguity_resolution_algorithm::operator()(
617594
cudaGraphInstantiate(&graphExec, graph, nullptr, nullptr, 0);
618595

619596
// TODO: Make n_it adaptive based on the average track length, bound
620-
// value in count_removable_tracks, etc.
597+
// value in remove_tracks, etc.
621598
const unsigned int n_it = 100;
622599
for (unsigned int iter = 0; iter < n_it; iter++) {
623600
cudaGraphLaunch(graphExec, stream);

0 commit comments

Comments
 (0)