|
9 | 9 | struct urCommandBufferCommandsTest |
10 | 10 | : uur::command_buffer::urCommandBufferExpTest { |
11 | 11 |
|
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); |
30 | 21 | } |
31 | 22 |
|
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 | + } |
47 | 37 | } |
48 | 38 |
|
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 | + } |
51 | 44 |
|
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}; |
54 | 54 | }; |
55 | 55 |
|
56 | 56 | UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferCommandsTest); |
57 | 57 |
|
58 | 58 | 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)); |
62 | 62 | } |
63 | 63 |
|
64 | 64 | 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)); |
69 | 69 | } |
70 | 70 |
|
71 | 71 | 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)); |
75 | 75 | } |
76 | 76 |
|
77 | 77 | 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)); |
83 | 83 | } |
84 | 84 |
|
85 | 85 | 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)); |
90 | 90 | } |
91 | 91 |
|
92 | 92 | 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)); |
99 | 99 | } |
100 | 100 |
|
101 | 101 | 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)); |
106 | 106 | } |
107 | 107 |
|
108 | 108 | TEST_P(urCommandBufferCommandsTest, |
109 | 109 | 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)); |
116 | 116 | } |
117 | 117 |
|
118 | 118 | 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)); |
123 | 123 | } |
124 | 124 |
|
125 | 125 | 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)); |
129 | 129 | } |
130 | 130 |
|
131 | 131 | 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)); |
135 | 135 | } |
136 | 136 |
|
137 | 137 | struct urCommandBufferAppendKernelLaunchExpTest |
138 | 138 | : 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); |
166 | 146 | } |
167 | 147 |
|
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 | + } |
174 | 154 |
|
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 | + } |
177 | 173 | } |
178 | 174 |
|
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}; |
186 | 186 | }; |
187 | 187 |
|
188 | 188 | UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urCommandBufferAppendKernelLaunchExpTest); |
189 | 189 | 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)); |
193 | 193 |
|
194 | | - ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle)); |
| 194 | + ASSERT_SUCCESS(urCommandBufferFinalizeExp(cmd_buf_handle)); |
195 | 195 |
|
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)); |
199 | 199 |
|
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 | + } |
205 | 205 | } |
0 commit comments