Skip to content

Commit

Permalink
Tune load / store / caching methods
Browse files Browse the repository at this point in the history
  • Loading branch information
gevtushenko committed May 5, 2023
1 parent 997723a commit 0ed82d4
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 6 deletions.
25 changes: 22 additions & 3 deletions benchmarks/bench/merge_sort/keys.cu
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

#include <nvbench_helper.cuh>

// %RANGE% TUNE_TRANSPOSE trp 0:1:1
// %RANGE% TUNE_LOAD ld 0:2:1
// %RANGE% TUNE_ITEMS_PER_THREAD ipt 7:24:1
// %RANGE% TUNE_THREADS_PER_BLOCK_POW2 tpb 6:10:1

Expand All @@ -12,6 +14,23 @@
using value_t = cub::NullType;

#if !TUNE_BASE

#if TUNE_TRANSPOSE == 0
#define TUNE_LOAD_ALGORITHM cub::BLOCK_LOAD_DIRECT
#define TUNE_STORE_ALGORITHM cub::BLOCK_STORE_DIRECT
#else
#define TUNE_LOAD_ALGORITHM cub::BLOCK_LOAD_WARP_TRANSPOSE
#define TUNE_STORE_ALGORITHM cub::BLOCK_STORE_WARP_TRANSPOSE
#endif

#if TUNE_LOAD == 0
#define TUNE_LOAD_MODIFIER cub::LOAD_DEFAULT
#elif TUNE_LOAD == 1
#define TUNE_LOAD_MODIFIER cub::LOAD_LDG
#else
#define TUNE_LOAD_MODIFIER cub::LOAD_CA
#endif

template <typename KeyT>
struct policy_hub_t
{
Expand All @@ -20,9 +39,9 @@ struct policy_hub_t
using MergeSortPolicy =
cub::AgentMergeSortPolicy<TUNE_THREADS_PER_BLOCK,
cub::Nominal4BItemsToItems<KeyT>(TUNE_ITEMS_PER_THREAD),
cub::BLOCK_LOAD_WARP_TRANSPOSE,
cub::LOAD_DEFAULT,
cub::BLOCK_STORE_WARP_TRANSPOSE>;
TUNE_LOAD_ALGORITHM,
TUNE_LOAD_MODIFIER,
TUNE_STORE_ALGORITHM>;
};

using MaxPolicy = policy_t;
Expand Down
24 changes: 21 additions & 3 deletions benchmarks/bench/merge_sort/pairs.cu
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

#include <nvbench_helper.cuh>

// %RANGE% TUNE_ITEMS_PER_THREAD ipt 7:24:1
// %RANGE% TUNE_THREADS_PER_BLOCK_POW2 tpb 6:10:1
// %RANGE% TUNE_ITEMS_PER_THREAD ipt 7:24:1
// %RANGE% TUNE_THREADS_PER_BLOCK_POW2 tpb 6:10:1

Expand All @@ -10,6 +12,22 @@
#endif

#if !TUNE_BASE
#if TUNE_TRANSPOSE == 0
#define TUNE_LOAD_ALGORITHM cub::BLOCK_LOAD_DIRECT
#define TUNE_STORE_ALGORITHM cub::BLOCK_STORE_DIRECT
#else
#define TUNE_LOAD_ALGORITHM cub::BLOCK_LOAD_WARP_TRANSPOSE
#define TUNE_STORE_ALGORITHM cub::BLOCK_STORE_WARP_TRANSPOSE
#endif

#if TUNE_LOAD == 0
#define TUNE_LOAD_MODIFIER cub::LOAD_DEFAULT
#elif TUNE_LOAD == 1
#define TUNE_LOAD_MODIFIER cub::LOAD_LDG
#else
#define TUNE_LOAD_MODIFIER cub::LOAD_CA
#endif

template <typename KeyT>
struct policy_hub_t
{
Expand All @@ -18,9 +36,9 @@ struct policy_hub_t
using MergeSortPolicy =
cub::AgentMergeSortPolicy<TUNE_THREADS_PER_BLOCK,
cub::Nominal4BItemsToItems<KeyT>(TUNE_ITEMS_PER_THREAD),
cub::BLOCK_LOAD_WARP_TRANSPOSE,
cub::LOAD_DEFAULT,
cub::BLOCK_STORE_WARP_TRANSPOSE>;
TUNE_LOAD_ALGORITHM,
TUNE_LOAD_MODIFIER,
TUNE_STORE_ALGORITHM>;
};

using MaxPolicy = policy_t;
Expand Down

0 comments on commit 0ed82d4

Please sign in to comment.