Skip to content

Commit

Permalink
Use cuda::std::array in histogram APIs
Browse files Browse the repository at this point in the history
Fixes: #1765
  • Loading branch information
bernhardmgruber committed Mar 1, 2025
1 parent 4a3a219 commit 6059dd3
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 160 deletions.
58 changes: 30 additions & 28 deletions cub/cub/device/device_histogram.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
#include <cub/detail/nvtx.cuh>
#include <cub/device/dispatch/dispatch_histogram.cuh>

#include <cuda/std/array>

#include <iterator>
#include <limits>

Expand Down Expand Up @@ -195,10 +197,10 @@ struct DeviceHistogram
d_temp_storage,
temp_storage_bytes,
d_samples,
&d_histogram,
&num_levels,
&lower_level,
&upper_level,
::cuda::std::array<CounterT*, 1>{{d_histogram}},
::cuda::std::array<int, 1>{{num_levels}},
::cuda::std::array<LevelT, 1>{{lower_level}},
::cuda::std::array<LevelT, 1>{{upper_level}},
num_samples,
static_cast<OffsetT>(1),
sizeof(SampleT) * num_samples,
Expand Down Expand Up @@ -346,10 +348,10 @@ struct DeviceHistogram
d_temp_storage,
temp_storage_bytes,
d_samples,
&d_histogram,
&num_levels,
&lower_level,
&upper_level,
::cuda::std::array<CounterT*, 1>{{d_histogram}},
::cuda::std::array<int, 1>{{num_levels}},
::cuda::std::array<LevelT, 1>{{lower_level}},
::cuda::std::array<LevelT, 1>{{upper_level}},
num_row_samples,
num_rows,
row_stride_bytes,
Expand Down Expand Up @@ -501,10 +503,10 @@ struct DeviceHistogram
void* d_temp_storage,
size_t& temp_storage_bytes,
SampleIteratorT d_samples,
CounterT* d_histogram[NUM_ACTIVE_CHANNELS],
const int num_levels[NUM_ACTIVE_CHANNELS],
const LevelT lower_level[NUM_ACTIVE_CHANNELS],
const LevelT upper_level[NUM_ACTIVE_CHANNELS],
::cuda::std::array<CounterT*, NUM_ACTIVE_CHANNELS> d_histogram,
::cuda::std::array<int, NUM_ACTIVE_CHANNELS> num_levels,
::cuda::std::array<LevelT, NUM_ACTIVE_CHANNELS> lower_level,
::cuda::std::array<LevelT, NUM_ACTIVE_CHANNELS> upper_level,
OffsetT num_pixels,
cudaStream_t stream = 0)
{
Expand Down Expand Up @@ -688,10 +690,10 @@ struct DeviceHistogram
void* d_temp_storage,
size_t& temp_storage_bytes,
SampleIteratorT d_samples,
CounterT* d_histogram[NUM_ACTIVE_CHANNELS],
const int num_levels[NUM_ACTIVE_CHANNELS],
const LevelT lower_level[NUM_ACTIVE_CHANNELS],
const LevelT upper_level[NUM_ACTIVE_CHANNELS],
::cuda::std::array<CounterT*, NUM_ACTIVE_CHANNELS> d_histogram,
::cuda::std::array<int, NUM_ACTIVE_CHANNELS> num_levels,
::cuda::std::array<LevelT, NUM_ACTIVE_CHANNELS> lower_level,
::cuda::std::array<LevelT, NUM_ACTIVE_CHANNELS> upper_level,
OffsetT num_row_pixels,
OffsetT num_rows,
size_t row_stride_bytes,
Expand Down Expand Up @@ -855,9 +857,9 @@ struct DeviceHistogram
d_temp_storage,
temp_storage_bytes,
d_samples,
&d_histogram,
&num_levels,
&d_levels,
::cuda::std::array<CounterT*, 1>{{d_histogram}},
::cuda::std::array<int, 1>{{num_levels}},
::cuda::std::array<const LevelT*, 1>{{d_levels}},
num_samples,
(OffsetT) 1,
(size_t) (sizeof(SampleT) * num_samples),
Expand Down Expand Up @@ -993,9 +995,9 @@ struct DeviceHistogram
d_temp_storage,
temp_storage_bytes,
d_samples,
&d_histogram,
&num_levels,
&d_levels,
::cuda::std::array<CounterT*, 1>{{d_histogram}},
::cuda::std::array<int, 1>{{num_levels}},
::cuda::std::array<const LevelT*, 1>{{d_levels}},
num_row_samples,
num_rows,
row_stride_bytes,
Expand Down Expand Up @@ -1138,9 +1140,9 @@ struct DeviceHistogram
void* d_temp_storage,
size_t& temp_storage_bytes,
SampleIteratorT d_samples,
CounterT* d_histogram[NUM_ACTIVE_CHANNELS],
const int num_levels[NUM_ACTIVE_CHANNELS],
const LevelT* const d_levels[NUM_ACTIVE_CHANNELS],
::cuda::std::array<CounterT*, NUM_ACTIVE_CHANNELS> d_histogram,
::cuda::std::array<int, NUM_ACTIVE_CHANNELS> num_levels,
::cuda::std::array<const LevelT*, NUM_ACTIVE_CHANNELS> d_levels,
OffsetT num_pixels,
cudaStream_t stream = 0)
{
Expand Down Expand Up @@ -1315,9 +1317,9 @@ struct DeviceHistogram
void* d_temp_storage,
size_t& temp_storage_bytes,
SampleIteratorT d_samples,
CounterT* d_histogram[NUM_ACTIVE_CHANNELS],
const int num_levels[NUM_ACTIVE_CHANNELS],
const LevelT* const d_levels[NUM_ACTIVE_CHANNELS],
::cuda::std::array<CounterT*, NUM_ACTIVE_CHANNELS> d_histogram,
::cuda::std::array<int, NUM_ACTIVE_CHANNELS> num_levels,
::cuda::std::array<const LevelT*, NUM_ACTIVE_CHANNELS> d_levels,
OffsetT num_row_pixels,
OffsetT num_rows,
size_t row_stride_bytes,
Expand Down
Loading

0 comments on commit 6059dd3

Please sign in to comment.