Skip to content

Commit 42b2d8c

Browse files
committed
Fixup ownership test
1 parent ff64ae9 commit 42b2d8c

File tree

1 file changed

+22
-37
lines changed

1 file changed

+22
-37
lines changed

SYCL/Plugin/interop-level-zero-buffer-ownership.cpp

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
// REQUIRES: level_zero, level_zero_dev_kit
22
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %level_zero_options %s -o %t.out
3-
// RUN: env SYCL_DEVICE_FILTER=level_zero ZE_DEBUG=1 %GPU_RUN_PLACEHOLDER %t.out 2>&1
3+
// RUN: env SYCL_DEVICE_FILTER=level_zero ZE_DEBUG=1 %GPU_RUN_PLACEHOLDER %t.out 2>&1 | FileCheck %s
44

55
// Test for Level Zero buffer interop API.
66
// Check the following cases:
7-
// 1. Copy back is performed to the user-provided memory of interop buffer if
7+
// 1. User-provided memory allocation is not freed by DPCPP RT if
88
// "keep" ownership is specified.
9-
// 2. If host access was performed in between two kernels then only one
10-
// host->device copy is performed.
11-
// 3. Check that copy back is not performed "transfer" ownership is specified.
9+
// 2. User-provided memory allocation is freed by DPCPP RT if
10+
// "transfer" ownership is specified.
11+
12+
// Keep ownership
13+
// CHECK: zeMemFree
14+
15+
// Transfer ownership
16+
// CHECK: zeMemFree
17+
// CHECK: zeMemFree
18+
19+
// No other calls to zeMemFree
20+
// CHECK-NOT: zeMemFree
1221

1322
#include "interop-level-zero-buffer-helpers.hpp"
1423
#include <CL/sycl.hpp>
@@ -21,9 +30,9 @@ using namespace cl::sycl;
2130

2231
// Test copy back depending on provided ownership and check that memory is freed
2332
// properly.
24-
void test_copyback_and_free(queue &Queue1, queue &Queue2,
25-
const ext::oneapi::level_zero::ownership &Ownership,
26-
bool AccessOnHostBeforeCopyBack) {
33+
void test_copyback_and_free(
34+
queue &Queue1, queue &Queue2,
35+
const ext::oneapi::level_zero::ownership &Ownership) {
2736
try {
2837
auto Context = Queue1.get_context();
2938
auto Device = Queue1.get_info<info::queue::device>();
@@ -82,20 +91,6 @@ void test_copyback_and_free(queue &Queue1, queue &Queue2,
8291
});
8392

8493
Queue2.wait();
85-
if (AccessOnHostBeforeCopyBack) {
86-
auto HostAcc = BufferInterop.get_host_access();
87-
for (int i = 0; i < 12; i++) {
88-
assert(HostAcc[i] == 198);
89-
}
90-
}
91-
}
92-
{
93-
int *NativeBufferInt = (int *)NativeBuffer;
94-
95-
for (int i = 0; i < 12; i++) {
96-
if (Ownership == ext::oneapi::level_zero::ownership::keep)
97-
assert(NativeBufferInt[i] == 198);
98-
}
9994
}
10095
if (Ownership == ext::oneapi::level_zero::ownership::keep)
10196
zeMemFree(ZeContext, NativeBuffer);
@@ -124,25 +119,15 @@ int main() {
124119
context Context2{Dev2};
125120
queue Queue2{Context2, Dev2};
126121

127-
std::cout << "Test case #1: Keep ownership, no host access before copy back"
128-
<< std::endl;
122+
std::cout << "Test case #1: Keep ownership" << std::endl;
129123
test_copyback_and_free(Queue1, Queue2,
130-
ext::oneapi::level_zero::ownership::keep,
131-
/*AccessOnHostBeforeCopyBack*/ false);
124+
ext::oneapi::level_zero::ownership::keep);
132125

133-
std::cout
134-
<< "Test case #2: Transfer ownership, no host access before copy back"
135-
<< std::endl;
126+
std::cout << "Test case #2: Transfer ownership" << std::endl;
136127
test_copyback_and_free(Queue1, Queue2,
137-
ext::oneapi::level_zero::ownership::transfer,
138-
/*AccessOnHostBeforeCopyBack*/ false);
128+
ext::oneapi::level_zero::ownership::transfer);
139129

140-
std::cout << "Test case #3: Keep ownership, host access before copy back"
141-
<< std::endl;
142-
test_copyback_and_free(Queue1, Queue2,
143-
ext::oneapi::level_zero::ownership::keep,
144-
/*AccessOnHostBeforeCopyBack*/ true);
145-
} catch (sycl::exception &e) {
130+
} catch (exception &e) {
146131
std::cout << e.what() << std::endl;
147132
}
148133
#else

0 commit comments

Comments
 (0)