Skip to content

Commit b792fce

Browse files
committed
Merge remote-tracking branch 'origin/sycl' into l0_plugin
2 parents a303cad + 06e066a commit b792fce

File tree

2 files changed

+124
-12
lines changed

2 files changed

+124
-12
lines changed

sycl/test/abi/layout_accessors.cpp

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// REQUIRES: linux
3+
4+
#include <CL/sycl/accessor.hpp>
5+
6+
using namespace cl::sycl;
7+
8+
//----------------------------------------------------------------------------//
9+
// Host buffer accessor.
10+
//----------------------------------------------------------------------------//
11+
12+
void hostAcc(accessor<int, 1, access::mode::read, access::target::host_buffer> Acc) {
13+
(void)Acc.get_size();
14+
}
15+
16+
// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::host_buffer, cl::sycl::access::placeholder::false_t>
17+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
18+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
19+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
20+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
21+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
22+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
23+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
24+
// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::host_buffer, cl::sycl::access::placeholder::false_t> (base) (empty)
25+
// CHECK-NEXT: 16 | char [16] padding
26+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
27+
// CHECK-NEXT: nvsize=32, nvalign=8]
28+
29+
//----------------------------------------------------------------------------//
30+
// Global buffer accessor.
31+
//----------------------------------------------------------------------------//
32+
33+
void hostAcc(accessor<int, 1, access::mode::read, access::target::global_buffer> Acc) {
34+
(void)Acc.get_size();
35+
}
36+
37+
// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t>
38+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
39+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
40+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
41+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
42+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
43+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
44+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
45+
// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t> (base) (empty)
46+
// CHECK-NEXT: 16 | char [16] padding
47+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
48+
// CHECK-NEXT: nvsize=32, nvalign=8]
49+
50+
//----------------------------------------------------------------------------//
51+
// Local accessor.
52+
//----------------------------------------------------------------------------//
53+
54+
void hostAcc(accessor<int, 1, access::mode::read_write, access::target::local> Acc) {
55+
(void)Acc.get_size();
56+
}
57+
58+
// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::local, cl::sycl::access::placeholder::false_t>
59+
// CHECK-NEXT: 0 | class cl::sycl::detail::LocalAccessorBaseHost (base)
60+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::LocalAccessorImplHost> impl
61+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic> (base)
62+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
63+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
64+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
65+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
66+
// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::local, cl::sycl::access::placeholder::false_t> (base) (empty)
67+
// CHECK-NEXT: 16 | char [16] padding
68+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
69+
// CHECK-NEXT: nvsize=32, nvalign=8]
70+
71+
//----------------------------------------------------------------------------//
72+
// Host image accessor.
73+
//----------------------------------------------------------------------------//
74+
75+
void hostAcc(accessor<int4, 1, access::mode::read_write, access::target::host_image> Acc) {
76+
(void)Acc.get_count();
77+
}
78+
// CHECK: 0 | class cl::sycl::accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::host_image, cl::sycl::access::placeholder::false_t>
79+
// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::host_image, cl::sycl::access::placeholder::false_t> (base)
80+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
81+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
82+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
83+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
84+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
85+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
86+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
87+
// CHECK-NEXT: 16 | size_t MImageCount
88+
// CHECK-NEXT: 24 | enum cl::sycl::image_channel_order MImgChannelOrder
89+
// CHECK-NEXT: 28 | enum cl::sycl::image_channel_type MImgChannelType
90+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
91+
// CHECK-NEXT: nvsize=32, nvalign=8]
92+
93+
//----------------------------------------------------------------------------//
94+
// Image accessor.
95+
//----------------------------------------------------------------------------//
96+
97+
void hostAcc(accessor<int4, 1, access::mode::read, access::target::image> Acc) {
98+
(void)Acc.get_count();
99+
}
100+
// CHECK: 0 | class cl::sycl::accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t>
101+
// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t> (base)
102+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
103+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
104+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
105+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
106+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
107+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
108+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
109+
// CHECK-NEXT: 16 | size_t MImageCount
110+
// CHECK-NEXT: 24 | enum cl::sycl::image_channel_order MImgChannelOrder
111+
// CHECK-NEXT: 28 | enum cl::sycl::image_channel_type MImgChannelType
112+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
113+
// CHECK-NEXT: nvsize=32, nvalign=8]

sycl/unittests/pi/cuda/test_interop_get_native.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,15 @@ using namespace cl::sycl;
1919
struct CudaInteropGetNativeTests : public ::testing::TestWithParam<platform> {
2020

2121
protected:
22-
queue syclQueue_;
23-
context syclContext_;
22+
std::unique_ptr<queue> syclQueue_;
2423
device syclDevice_;
2524

2625
void SetUp() override {
2726
syclDevice_ = GetParam().get_devices()[0];
28-
syclQueue_ = queue{syclDevice_};
29-
syclContext_ = syclQueue_.get_context();
27+
syclQueue_ = std::unique_ptr<queue>{new queue{syclDevice_}};
3028
}
3129

32-
void TearDown() override {}
30+
void TearDown() override { syclQueue_.reset(); }
3331
};
3432

3533
TEST_P(CudaInteropGetNativeTests, getNativeDevice) {
@@ -41,31 +39,32 @@ TEST_P(CudaInteropGetNativeTests, getNativeDevice) {
4139
}
4240

4341
TEST_P(CudaInteropGetNativeTests, getNativeContext) {
44-
CUcontext cudaContext = get_native<backend::cuda>(syclContext_);
42+
CUcontext cudaContext = get_native<backend::cuda>(syclQueue_->get_context());
4543
ASSERT_NE(cudaContext, nullptr);
4644
}
4745

4846
TEST_P(CudaInteropGetNativeTests, getNativeQueue) {
49-
CUstream cudaStream = get_native<backend::cuda>(syclQueue_);
47+
CUstream cudaStream = get_native<backend::cuda>(*syclQueue_);
5048
ASSERT_NE(cudaStream, nullptr);
5149

5250
CUcontext streamContext = nullptr;
5351
CUresult result = cuStreamGetCtx(cudaStream, &streamContext);
5452
ASSERT_EQ(result, CUDA_SUCCESS);
5553

56-
CUcontext cudaContext = get_native<backend::cuda>(syclContext_);
54+
CUcontext cudaContext = get_native<backend::cuda>(syclQueue_->get_context());
5755
ASSERT_EQ(streamContext, cudaContext);
5856
}
5957

6058
TEST_P(CudaInteropGetNativeTests, interopTaskGetMem) {
6159
buffer<int, 1> syclBuffer(range<1>{1});
62-
syclQueue_.submit([&](handler &cgh) {
60+
syclQueue_->submit([&](handler &cgh) {
6361
auto syclAccessor = syclBuffer.get_access<access::mode::read>(cgh);
6462
cgh.interop_task([=](interop_handler ih) {
6563
CUdeviceptr cudaPtr = ih.get_mem<backend::cuda>(syclAccessor);
6664
CUdeviceptr cudaPtrBase;
6765
size_t cudaPtrSize = 0;
68-
CUcontext cudaContext = get_native<backend::cuda>(syclContext_);
66+
CUcontext cudaContext =
67+
get_native<backend::cuda>(syclQueue_->get_context());
6968
ASSERT_EQ(CUDA_SUCCESS, cuCtxPushCurrent(cudaContext));
7069
ASSERT_EQ(CUDA_SUCCESS,
7170
cuMemGetAddressRange(&cudaPtrBase, &cudaPtrSize, cudaPtr));
@@ -76,8 +75,8 @@ TEST_P(CudaInteropGetNativeTests, interopTaskGetMem) {
7675
}
7776

7877
TEST_P(CudaInteropGetNativeTests, interopTaskGetBufferMem) {
79-
CUstream cudaStream = get_native<backend::cuda>(syclQueue_);
80-
syclQueue_.submit([&](handler &cgh) {
78+
CUstream cudaStream = get_native<backend::cuda>(*syclQueue_);
79+
syclQueue_->submit([&](handler &cgh) {
8180
cgh.interop_task([=](interop_handler ih) {
8281
CUstream cudaInteropStream = ih.get_queue<backend::cuda>();
8382
ASSERT_EQ(cudaInteropStream, cudaStream);

0 commit comments

Comments
 (0)