Skip to content

Commit ff03b4a

Browse files
authored
[SYCLomatic] Add query api mapping for 3 cub API (#2914)
Signed-off-by: intwanghao <hao3.wang@intel.com>
1 parent 44a1f08 commit ff03b4a

File tree

5 files changed

+51
-0
lines changed

5 files changed

+51
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Option: --use-experimental-features=non-uniform-groups
2+
// clang-format off
3+
#include <cstddef>
4+
#include <cub/cub.cuh>
5+
6+
__device__ void test(int output, int input, int src_offset, int last_thread, unsigned int member_mask) {
7+
// Start
8+
output /*int*/ = cub::ShuffleDown<32>(input /*int*/, src_offset /*int*/, last_thread /*int*/, member_mask /*unsigned int*/);
9+
// End
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Option: --use-experimental-features=non-uniform-groups
2+
// clang-format off
3+
#include <cstddef>
4+
#include <cub/cub.cuh>
5+
6+
__device__ void test(int output, int input, int src_lane, unsigned int member_mask) {
7+
// Start
8+
output /*int*/ = cub::ShuffleIndex<32>(input /*int*/, src_lane /*int*/, member_mask /*unsigned int*/);
9+
// End
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Option: --use-experimental-features=non-uniform-groups
2+
// clang-format off
3+
#include <cstddef>
4+
#include <cub/cub.cuh>
5+
6+
__device__ void test(int output, int input, int src_offset, int first_thread, unsigned int member_mask) {
7+
// Start
8+
output /*int*/ = cub::ShuffleUp<32>(input /*int*/, src_offset /*int*/, first_thread /*int*/, member_mask /*unsigned int*/);
9+
// End
10+
}

clang/test/dpct/query_api_mapping/CUB/cub_misc.cu

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,21 @@
188188
// CHECK_TRANSFORMINPUTITERATOR: cub::TransformInputIterator<double, UserDefMul, double *> iter(d_in /*double **/, op /*Op*/);
189189
// CHECK_TRANSFORMINPUTITERATOR: Is migrated to:
190190
// CHECK_TRANSFORMINPUTITERATOR: oneapi::dpl::transform_iterator<double *, UserDefMul> iter(d_in /*double **/, op /*Op*/);
191+
192+
// RUN: dpct --cuda-include-path="%cuda-path/include" --query-api-mapping=cub::ShuffleUp | FileCheck %s -check-prefix=CHECK_SHUFFLEUP
193+
// CHECK_SHUFFLEUP: CUDA API:
194+
// CHECK_SHUFFLEUP: output /*int*/ = cub::ShuffleUp<32>(input /*int*/, src_offset /*int*/, first_thread /*int*/, member_mask /*unsigned int*/);
195+
// CHECK_SHUFFLEUP: Is migrated to (with the option --use-experimental-features=non-uniform-groups):
196+
// CHECK_SHUFFLEUP: output /*int*/ = dpct::experimental::shift_sub_group_right<32>(sycl::ext::oneapi::this_work_item::get_sub_group(), input, src_offset, first_thread, member_mask);
197+
198+
// RUN: dpct --cuda-include-path="%cuda-path/include" --query-api-mapping=cub::ShuffleDown | FileCheck %s -check-prefix=CHECK_SHUFFLEDOWN
199+
// CHECK_SHUFFLEDOWN: CUDA API:
200+
// CHECK_SHUFFLEDOWN: output /*int*/ = cub::ShuffleDown<32>(input /*int*/, src_offset /*int*/, last_thread /*int*/, member_mask /*unsigned int*/);
201+
// CHECK_SHUFFLEDOWN: Is migrated to (with the option --use-experimental-features=non-uniform-groups):
202+
// CHECK_SHUFFLEDOWN: output /*int*/ = dpct::experimental::shift_sub_group_left<32>(sycl::ext::oneapi::this_work_item::get_sub_group(), input, src_offset, last_thread, member_mask);
203+
204+
// RUN: dpct --cuda-include-path="%cuda-path/include" --query-api-mapping=cub::ShuffleIndex | FileCheck %s -check-prefix=CHECK_SHUFFLEINDEX
205+
// CHECK_SHUFFLEINDEX: CUDA API:
206+
// CHECK_SHUFFLEINDEX: output /*int*/ = cub::ShuffleIndex<32>(input /*int*/, src_lane /*int*/, member_mask /*unsigned int*/);
207+
// CHECK_SHUFFLEINDEX: Is migrated to (with the option --use-experimental-features=non-uniform-groups):
208+
// CHECK_SHUFFLEINDEX: output /*int*/ = dpct::experimental::select_from_sub_group(member_mask, sycl::ext::oneapi::this_work_item::get_sub_group(), input, src_lane);

clang/test/dpct/query_api_mapping/test_all.cu

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,6 +928,9 @@
928928
// CHECK-NEXT: cub::RowMajorTid
929929
// CHECK-NEXT: cub::SHL_ADD
930930
// CHECK-NEXT: cub::SHR_ADD
931+
// CHECK-NEXT: cub::ShuffleDown
932+
// CHECK-NEXT: cub::ShuffleIndex
933+
// CHECK-NEXT: cub::ShuffleUp
931934
// CHECK-NEXT: cub::SmVersion
932935
// CHECK-NEXT: cub::SmVersionUncached
933936
// CHECK-NEXT: cub::StoreDirectBlocked

0 commit comments

Comments
 (0)