Skip to content

Commit afe8e63

Browse files
author
Fábio Mestre
committed
Add testing for binary update
1 parent c9c39e0 commit afe8e63

File tree

13 files changed

+1349
-323
lines changed

13 files changed

+1349
-323
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
@@ -9,197 +9,197 @@
99
struct urCommandBufferCommandsTest
1010
: uur::command_buffer::urCommandBufferExpTest {
1111

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

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

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

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

5656
UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferCommandsTest);
5757

5858
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMMemcpyExp) {
59-
ASSERT_SUCCESS(urCommandBufferAppendUSMMemcpyExp(
60-
cmd_buf_handle, device_ptrs[0], device_ptrs[1], allocation_size, 0,
61-
nullptr, nullptr));
59+
ASSERT_SUCCESS(urCommandBufferAppendUSMMemcpyExp(
60+
cmd_buf_handle, device_ptrs[0], device_ptrs[1], allocation_size, 0,
61+
nullptr, nullptr));
6262
}
6363

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

7171
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendMemBufferCopyExp) {
72-
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyExp(
73-
cmd_buf_handle, buffers[0], buffers[1], 0, 0, allocation_size, 0,
74-
nullptr, nullptr));
72+
ASSERT_SUCCESS(urCommandBufferAppendMemBufferCopyExp(
73+
cmd_buf_handle, buffers[0], buffers[1], 0, 0, allocation_size, 0,
74+
nullptr, nullptr));
7575
}
7676

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

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

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

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

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

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

125125
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMPrefetchExp) {
126-
ASSERT_SUCCESS(urCommandBufferAppendUSMPrefetchExp(
127-
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
128-
nullptr));
126+
ASSERT_SUCCESS(urCommandBufferAppendUSMPrefetchExp(
127+
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
128+
nullptr));
129129
}
130130

131131
TEST_P(urCommandBufferCommandsTest, urCommandBufferAppendUSMAdviseExp) {
132-
ASSERT_SUCCESS(urCommandBufferAppendUSMAdviseExp(
133-
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
134-
nullptr));
132+
ASSERT_SUCCESS(urCommandBufferAppendUSMAdviseExp(
133+
cmd_buf_handle, device_ptrs[0], allocation_size, 0, 0, nullptr,
134+
nullptr));
135135
}
136136

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

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

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

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

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

194-
ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle));
194+
ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle));
195195

196-
ASSERT_SUCCESS(
197-
urCommandBufferEnqueueExp(cmd_buf_handle, queue, 0, nullptr, nullptr));
198-
ASSERT_SUCCESS(urQueueFinish(queue));
196+
ASSERT_SUCCESS(
197+
urCommandBufferEnqueueExp(cmd_buf_handle, queue, 0, nullptr, nullptr));
198+
ASSERT_SUCCESS(urQueueFinish(queue));
199199

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

0 commit comments

Comments
 (0)