Skip to content

Commit 787fe9a

Browse files
author
Fábio Mestre
committed
Add testing for binary update
1 parent fd97710 commit 787fe9a

File tree

13 files changed

+1388
-358
lines changed

13 files changed

+1388
-358
lines changed

test/conformance/device_code/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/fill.cpp)
141141
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/fill_2d.cpp)
142142
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/fill_3d.cpp)
143143
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/fill_usm.cpp)
144+
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/fill_usm_2d.cpp)
144145
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/foo.cpp)
145146
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/image_copy.cpp)
146147
add_device_binary(${CMAKE_CURRENT_SOURCE_DIR}/inc.cpp)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright (C) 2024 Intel Corporation
2+
// Part of the Unified-Runtime Project, under the Apache License v2.0 with LLVM Exceptions.
3+
// See LICENSE.TXT
4+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5+
6+
#include <sycl/sycl.hpp>
7+
8+
int main() {
9+
10+
size_t nd_range_x = 8;
11+
size_t nd_range_y = 8;
12+
13+
auto nd_range = sycl::range<2>(nd_range_x, nd_range_y);
14+
15+
std::vector<uint32_t> A(nd_range_x * nd_range_y, 1);
16+
uint32_t val = 42;
17+
sycl::queue sycl_queue;
18+
19+
auto work_range = sycl::nd_range<2>(nd_range, sycl::range<2>(1, 1));
20+
21+
uint32_t *data = sycl::malloc_shared<uint32_t>(nd_range_x * nd_range_y, sycl_queue);
22+
sycl_queue.submit([&](sycl::handler &cgh) {
23+
cgh.parallel_for<class fill_2d>(
24+
work_range, [data, val](sycl::nd_item<2> item_id) {
25+
auto id = item_id.get_global_linear_id();
26+
data[id] = val;
27+
});
28+
});
29+
return 0;
30+
}

test/conformance/exp_command_buffer/CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

66
add_conformance_test_with_kernels_environment(exp_command_buffer
7-
buffer_fill_kernel_update.cpp
8-
usm_fill_kernel_update.cpp
9-
buffer_saxpy_kernel_update.cpp
10-
usm_saxpy_kernel_update.cpp
11-
ndrange_update.cpp
127
release.cpp
138
retain.cpp
14-
invalid_update.cpp
159
commands.cpp
1610
fill.cpp
11+
update/buffer_fill_kernel_update.cpp
12+
update/invalid_update.cpp
13+
update/kernel_handle_update.cpp
14+
update/usm_fill_kernel_update.cpp
15+
update/buffer_saxpy_kernel_update.cpp
16+
update/ndrange_update.cpp
17+
update/usm_saxpy_kernel_update.cpp
1718
)

test/conformance/exp_command_buffer/commands.cpp

Lines changed: 136 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -8,197 +8,197 @@
88
struct urCommandBufferCommandsTest
99
: uur::command_buffer::urCommandBufferExpTest {
1010

11-
void SetUp() override {
12-
UUR_RETURN_ON_FATAL_FAILURE(
13-
uur::command_buffer::urCommandBufferExpTest::SetUp());
14-
15-
// Allocate USM pointers
16-
for (auto &device_ptr : device_ptrs) {
17-
ASSERT_SUCCESS(urUSMDeviceAlloc(context, device, nullptr, nullptr,
18-
allocation_size, &device_ptr));
19-
ASSERT_NE(device_ptr, nullptr);
20-
}
21-
22-
for (auto &buffer : buffers) {
23-
ASSERT_SUCCESS(urMemBufferCreate(context, UR_MEM_FLAG_READ_WRITE,
24-
allocation_size, nullptr,
25-
&buffer));
26-
27-
ASSERT_NE(buffer, nullptr);
28-
}
11+
void SetUp() override {
12+
UUR_RETURN_ON_FATAL_FAILURE(
13+
uur::command_buffer::urCommandBufferExpTest::SetUp());
14+
15+
// Allocate USM pointers
16+
for (auto &device_ptr : device_ptrs) {
17+
ASSERT_SUCCESS(urUSMDeviceAlloc(context, device, nullptr, nullptr,
18+
allocation_size, &device_ptr));
19+
ASSERT_NE(device_ptr, nullptr);
2920
}
3021

31-
void TearDown() override {
32-
for (auto &device_ptr : device_ptrs) {
33-
if (device_ptr) {
34-
EXPECT_SUCCESS(urUSMFree(context, device_ptr));
35-
}
36-
}
37-
38-
for (auto &buffer : buffers) {
39-
if (buffer) {
40-
EXPECT_SUCCESS(urMemRelease(buffer));
41-
}
42-
}
43-
44-
UUR_RETURN_ON_FATAL_FAILURE(
45-
uur::command_buffer::urCommandBufferExpTest::TearDown());
22+
for (auto &buffer : buffers) {
23+
ASSERT_SUCCESS(urMemBufferCreate(context, UR_MEM_FLAG_READ_WRITE,
24+
allocation_size, nullptr,
25+
&buffer));
26+
27+
ASSERT_NE(buffer, nullptr);
28+
}
29+
}
30+
31+
void TearDown() override {
32+
for (auto &device_ptr : device_ptrs) {
33+
if (device_ptr) {
34+
EXPECT_SUCCESS(urUSMFree(context, device_ptr));
35+
}
4636
}
4737

48-
static constexpr unsigned elements = 16;
49-
static constexpr size_t allocation_size = elements * sizeof(uint32_t);
38+
for (auto &buffer : buffers) {
39+
if (buffer) {
40+
EXPECT_SUCCESS(urMemRelease(buffer));
41+
}
42+
}
5043

51-
std::array<void *, 2> device_ptrs = {nullptr, nullptr};
52-
std::array<ur_mem_handle_t, 2> buffers = {nullptr, nullptr};
44+
UUR_RETURN_ON_FATAL_FAILURE(
45+
uur::command_buffer::urCommandBufferExpTest::TearDown());
46+
}
47+
48+
static constexpr unsigned elements = 16;
49+
static constexpr size_t allocation_size = elements * sizeof(uint32_t);
50+
51+
std::array<void *, 2> device_ptrs = {nullptr, nullptr};
52+
std::array<ur_mem_handle_t, 2> buffers = {nullptr, nullptr};
5353
};
5454

5555
UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferCommandsTest);
5656

5757
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMMemcpyExp) {
58-
ASSERT_SUCCESS(urCommandBufferAppendUSMMemcpyExp(
59-
cmd_buf_handle, device_ptrs[0], device_ptrs[1], allocation_size, 0,
60-
nullptr, nullptr));
58+
ASSERT_SUCCESS(urCommandBufferAppendUSMMemcpyExp(
59+
cmd_buf_handle, device_ptrs[0], device_ptrs[1], allocation_size, 0,
60+
nullptr, nullptr));
6161
}
6262

6363
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMFillExp) {
64-
uint32_t pattern = 42;
65-
ASSERT_SUCCESS(urCommandBufferAppendUSMFillExp(
66-
cmd_buf_handle, device_ptrs[0], &pattern, sizeof(pattern),
67-
allocation_size, 0, nullptr, nullptr));
64+
uint32_t pattern = 42;
65+
ASSERT_SUCCESS(urCommandBufferAppendUSMFillExp(
66+
cmd_buf_handle, device_ptrs[0], &pattern, sizeof(pattern),
67+
allocation_size, 0, nullptr, nullptr));
6868
}
6969

7070
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferCopyExp) {
71-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyExp(
72-
cmd_buf_handle, buffers[0], buffers[1], 0, 0, allocation_size, 0,
73-
nullptr, nullptr));
71+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyExp(
72+
cmd_buf_handle, buffers[0], buffers[1], 0, 0, allocation_size, 0,
73+
nullptr, nullptr));
7474
}
7575

7676
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferCopyRectExp) {
77-
ur_rect_offset_t origin{0, 0, 0};
78-
ur_rect_region_t region{4, 4, 1};
79-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyRectExp(
80-
cmd_buf_handle, buffers[0], buffers[1], origin, origin, region, 4, 16,
81-
4, 16, 0, nullptr, nullptr));
77+
ur_rect_offset_t origin{0, 0, 0};
78+
ur_rect_region_t region{4, 4, 1};
79+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyRectExp(
80+
cmd_buf_handle, buffers[0], buffers[1], origin, origin, region, 4, 16,
81+
4, 16, 0, nullptr, nullptr));
8282
}
8383

8484
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferReadExp) {
85-
std::array<uint32_t, elements> host_data{};
86-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferReadExp(
87-
cmd_buf_handle, buffers[0], 0, allocation_size, host_data.data(), 0,
88-
nullptr, nullptr));
85+
std::array<uint32_t, elements> host_data{};
86+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferReadExp(
87+
cmd_buf_handle, buffers[0], 0, allocation_size, host_data.data(), 0,
88+
nullptr, nullptr));
8989
}
9090

9191
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferReadRectExp) {
92-
std::array<uint32_t, elements> host_data{};
93-
ur_rect_offset_t origin{0, 0, 0};
94-
ur_rect_region_t region{4, 4, 1};
95-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferReadRectExp(
96-
cmd_buf_handle, buffers[0], origin, origin, region, 4, 16, 4, 16,
97-
host_data.data(), 0, nullptr, nullptr));
92+
std::array<uint32_t, elements> host_data{};
93+
ur_rect_offset_t origin{0, 0, 0};
94+
ur_rect_region_t region{4, 4, 1};
95+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferReadRectExp(
96+
cmd_buf_handle, buffers[0], origin, origin, region, 4, 16, 4, 16,
97+
host_data.data(), 0, nullptr, nullptr));
9898
}
9999

100100
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferWriteExp) {
101-
std::array<uint32_t, elements> host_data{};
102-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferWriteExp(
103-
cmd_buf_handle, buffers[0], 0, allocation_size, host_data.data(), 0,
104-
nullptr, nullptr));
101+
std::array<uint32_t, elements> host_data{};
102+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferWriteExp(
103+
cmd_buf_handle, buffers[0], 0, allocation_size, host_data.data(), 0,
104+
nullptr, nullptr));
105105
}
106106

107107
TEST_P(urCommandBufferCommandsTest,
108108
urCommandBufferAppendMemBufferWriteRectExp) {
109-
std::array<uint32_t, elements> host_data{};
110-
ur_rect_offset_t origin{0, 0, 0};
111-
ur_rect_region_t region{4, 4, 1};
112-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferWriteRectExp(
113-
cmd_buf_handle, buffers[0], origin, origin, region, 4, 16, 4, 16,
114-
host_data.data(), 0, nullptr, nullptr));
109+
std::array<uint32_t, elements> host_data{};
110+
ur_rect_offset_t origin{0, 0, 0};
111+
ur_rect_region_t region{4, 4, 1};
112+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferWriteRectExp(
113+
cmd_buf_handle, buffers[0], origin, origin, region, 4, 16, 4, 16,
114+
host_data.data(), 0, nullptr, nullptr));
115115
}
116116

117117
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferFillExp) {
118-
uint32_t pattern = 42;
119-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferFillExp(
120-
cmd_buf_handle, buffers[0], &pattern, sizeof(pattern), 0,
121-
allocation_size, 0, nullptr, nullptr));
118+
uint32_t pattern = 42;
119+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferFillExp(
120+
cmd_buf_handle, buffers[0], &pattern, sizeof(pattern), 0,
121+
allocation_size, 0, nullptr, nullptr));
122122
}
123123

124124
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMPrefetchExp) {
125-
ASSERT_SUCCESS(urCommandBufferAppendUSMPrefetchExp(
126-
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
127-
nullptr));
125+
ASSERT_SUCCESS(urCommandBufferAppendUSMPrefetchExp(
126+
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
127+
nullptr));
128128
}
129129

130130
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMAdviseExp) {
131-
ASSERT_SUCCESS(urCommandBufferAppendUSMAdviseExp(
132-
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
133-
nullptr));
131+
ASSERT_SUCCESS(urCommandBufferAppendUSMAdviseExp(
132+
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
133+
nullptr));
134134
}
135135

136136
struct urCommandBufferAppendKernelLaunchExpTest
137137
: uur::command_buffer::urCommandBufferExpExecutionTest {
138-
virtual void SetUp() override {
139-
program_name = "saxpy_usm";
140-
UUR_RETURN_ON_FATAL_FAILURE(urCommandBufferExpExecutionTest::SetUp());
141-
for (auto &shared_ptr : shared_ptrs) {
142-
ASSERT_SUCCESS(urUSMSharedAlloc(context, device, nullptr, nullptr,
143-
allocation_size, &shared_ptr));
144-
ASSERT_NE(shared_ptr, nullptr);
145-
}
146-
147-
int32_t *ptrX = static_cast<int32_t *>(shared_ptrs[1]);
148-
int32_t *ptrY = static_cast<int32_t *>(shared_ptrs[2]);
149-
for (size_t i = 0; i < global_size; i++) {
150-
ptrX[i] = i;
151-
ptrY[i] = i * 2;
152-
}
153-
154-
// Index 0 is output
155-
ASSERT_SUCCESS(
156-
urKernelSetArgPointer(kernel, 0, nullptr, shared_ptrs[0]));
157-
// Index 1 is A
158-
ASSERT_SUCCESS(urKernelSetArgValue(kernel, 1, sizeof(A), nullptr, &A));
159-
// Index 2 is X
160-
ASSERT_SUCCESS(
161-
urKernelSetArgPointer(kernel, 2, nullptr, shared_ptrs[1]));
162-
// Index 3 is Y
163-
ASSERT_SUCCESS(
164-
urKernelSetArgPointer(kernel, 3, nullptr, shared_ptrs[2]));
138+
virtual void SetUp() override {
139+
program_name = "saxpy_usm";
140+
UUR_RETURN_ON_FATAL_FAILURE(urCommandBufferExpExecutionTest::SetUp());
141+
for (auto &shared_ptr : shared_ptrs) {
142+
ASSERT_SUCCESS(urUSMSharedAlloc(context, device, nullptr, nullptr,
143+
allocation_size, &shared_ptr));
144+
ASSERT_NE(shared_ptr, nullptr);
165145
}
166146

167-
virtual void TearDown() override {
168-
for (auto &shared_ptr : shared_ptrs) {
169-
if (shared_ptr) {
170-
EXPECT_SUCCESS(urUSMFree(context, shared_ptr));
171-
}
172-
}
147+
int32_t *ptrX = static_cast<int32_t *>(shared_ptrs[1]);
148+
int32_t *ptrY = static_cast<int32_t *>(shared_ptrs[2]);
149+
for (size_t i = 0; i < global_size; i++) {
150+
ptrX[i] = i;
151+
ptrY[i] = i * 2;
152+
}
173153

174-
UUR_RETURN_ON_FATAL_FAILURE(
175-
urCommandBufferExpExecutionTest::TearDown());
154+
// Index 0 is output
155+
ASSERT_SUCCESS(
156+
urKernelSetArgPointer(kernel, 0, nullptr, shared_ptrs[0]));
157+
// Index 1 is A
158+
ASSERT_SUCCESS(urKernelSetArgValue(kernel, 1, sizeof(A), nullptr, &A));
159+
// Index 2 is X
160+
ASSERT_SUCCESS(
161+
urKernelSetArgPointer(kernel, 2, nullptr, shared_ptrs[1]));
162+
// Index 3 is Y
163+
ASSERT_SUCCESS(
164+
urKernelSetArgPointer(kernel, 3, nullptr, shared_ptrs[2]));
165+
}
166+
167+
virtual void TearDown() override {
168+
for (auto &shared_ptr : shared_ptrs) {
169+
if (shared_ptr) {
170+
EXPECT_SUCCESS(urUSMFree(context, shared_ptr));
171+
}
176172
}
177173

178-
static constexpr size_t local_size = 4;
179-
static constexpr size_t global_size = 32;
180-
static constexpr size_t global_offset = 0;
181-
static constexpr size_t n_dimensions = 1;
182-
static constexpr size_t allocation_size = sizeof(uint32_t) * global_size;
183-
static constexpr uint32_t A = 42;
184-
std::array<void *, 3> shared_ptrs = {nullptr, nullptr, nullptr};
174+
UUR_RETURN_ON_FATAL_FAILURE(
175+
urCommandBufferExpExecutionTest::TearDown());
176+
}
177+
178+
static constexpr size_t local_size = 4;
179+
static constexpr size_t global_size = 32;
180+
static constexpr size_t global_offset = 0;
181+
static constexpr size_t n_dimensions = 1;
182+
static constexpr size_t allocation_size = sizeof(uint32_t) * global_size;
183+
static constexpr uint32_t A = 42;
184+
std::array<void *, 3> shared_ptrs = {nullptr, nullptr, nullptr};
185185
};
186186

187187
UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferAppendKernelLaunchExpTest);
188188
TEST_P(urCommandBufferAppendKernelLaunchExpTest, Basic) {
189-
ASSERT_SUCCESS(urCommandBufferAppendKernelLaunchExp(
190-
cmd_buf_handle, kernel, n_dimensions, &global_offset, &global_size,
191-
&local_size, 0, nullptr, nullptr, nullptr));
189+
ASSERT_SUCCESS(urCommandBufferAppendKernelLaunchExp(
190+
cmd_buf_handle, kernel, n_dimensions, &global_offset, &global_size,
191+
&local_size, 0, nullptr, 0, nullptr, nullptr, nullptr));
192192

193-
ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle));
193+
ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle));
194194

195-
ASSERT_SUCCESS(
196-
urCommandBufferEnqueueExp(cmd_buf_handle, queue, 0, nullptr, nullptr));
197-
ASSERT_SUCCESS(urQueueFinish(queue));
195+
ASSERT_SUCCESS(
196+
urCommandBufferEnqueueExp(cmd_buf_handle, queue, 0, nullptr, nullptr));
197+
ASSERT_SUCCESS(urQueueFinish(queue));
198198

199-
int32_t *ptrZ = static_cast<int32_t *>(shared_ptrs[0]);
200-
for (size_t i = 0; i < global_size; i++) {
201-
uint32_t result = (A * i) + (i * 2);
202-
ASSERT_EQ(result, ptrZ[i]);
203-
}
199+
int32_t *ptrZ = static_cast<int32_t *>(shared_ptrs[0]);
200+
for (size_t i = 0; i < global_size; i++) {
201+
uint32_t result = (A * i) + (i * 2);
202+
ASSERT_EQ(result, ptrZ[i]);
203+
}
204204
}

0 commit comments

Comments
 (0)