|
8 | 8 | struct urCommandBufferCommandsTest |
9 | 9 | : uur::command_buffer::urCommandBufferExpTest { |
10 | 10 |
|
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); |
29 | 20 | } |
30 | 21 |
|
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 | + } |
46 | 36 | } |
47 | 37 |
|
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 | + } |
50 | 43 |
|
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}; |
53 | 53 | }; |
54 | 54 |
|
55 | 55 | UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferCommandsTest); |
56 | 56 |
|
57 | 57 | 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)); |
61 | 61 | } |
62 | 62 |
|
63 | 63 | 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)); |
68 | 68 | } |
69 | 69 |
|
70 | 70 | 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)); |
74 | 74 | } |
75 | 75 |
|
76 | 76 | 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)); |
82 | 82 | } |
83 | 83 |
|
84 | 84 | 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)); |
89 | 89 | } |
90 | 90 |
|
91 | 91 | 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)); |
98 | 98 | } |
99 | 99 |
|
100 | 100 | 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)); |
105 | 105 | } |
106 | 106 |
|
107 | 107 | TEST_P(urCommandBufferCommandsTest, |
108 | 108 | 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)); |
115 | 115 | } |
116 | 116 |
|
117 | 117 | 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)); |
122 | 122 | } |
123 | 123 |
|
124 | 124 | 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)); |
128 | 128 | } |
129 | 129 |
|
130 | 130 | 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)); |
134 | 134 | } |
135 | 135 |
|
136 | 136 | struct urCommandBufferAppendKernelLaunchExpTest |
137 | 137 | : 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); |
165 | 145 | } |
166 | 146 |
|
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 | + } |
173 | 153 |
|
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 | + } |
176 | 172 | } |
177 | 173 |
|
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}; |
185 | 185 | }; |
186 | 186 |
|
187 | 187 | UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferAppendKernelLaunchExpTest); |
188 | 188 | 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)); |
192 | 192 |
|
193 | | - ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle)); |
| 193 | + ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle)); |
194 | 194 |
|
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)); |
198 | 198 |
|
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 | + } |
204 | 204 | } |
0 commit comments