Skip to content

Commit 43e3870

Browse files
Merge pull request #1290 from IntelPython/tweak-test-submit-async-take-2
test_async_submit is to try few times before failing
2 parents 81d691d + 0bdc6a1 commit 43e3870

File tree

1 file changed

+53
-46
lines changed

1 file changed

+53
-46
lines changed

dpctl/tests/test_sycl_kernel_submit.py

Lines changed: 53 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -167,61 +167,68 @@ def test_async_submit():
167167
assert isinstance(kern2Kernel, dpctl_prog.SyclKernel)
168168

169169
status_complete = dpctl.event_status_type.complete
170-
n = 1024 * 1024 * 4
170+
n = 256 * 1024
171171
X = dpt.empty((3, n), dtype="u4", usm_type="device", sycl_queue=q)
172172
first_row = dpctl_mem.as_usm_memory(X[0])
173173
second_row = dpctl_mem.as_usm_memory(X[1])
174174
third_row = dpctl_mem.as_usm_memory(X[2])
175175

176-
e1 = q.submit(
177-
kern1Kernel,
178-
[
179-
first_row,
180-
ctypes.c_uint(17),
181-
],
182-
[
183-
n,
184-
],
185-
)
186-
e2 = q.submit(
187-
kern2Kernel,
188-
[
189-
second_row,
190-
ctypes.c_uint(27),
191-
],
192-
[
193-
n,
194-
],
195-
)
196-
e3 = q.submit(
197-
kern3Kernel,
198-
[third_row, first_row, second_row],
199-
[
200-
n,
201-
],
202-
None,
203-
[e1, e2],
204-
)
205-
e3_st = e3.execution_status
206-
e2_st = e2.execution_status
207-
e1_st = e1.execution_status
208-
assert not all(
209-
[
210-
e == status_complete
211-
for e in (
212-
e1_st,
213-
e2_st,
214-
e3_st,
215-
)
216-
]
217-
)
176+
p1, p2 = 17, 27
218177

219-
e3.wait()
178+
async_detected = False
179+
for _ in range(5):
180+
e1 = q.submit(
181+
kern1Kernel,
182+
[
183+
first_row,
184+
ctypes.c_uint(p1),
185+
],
186+
[
187+
n,
188+
],
189+
)
190+
e2 = q.submit(
191+
kern2Kernel,
192+
[
193+
second_row,
194+
ctypes.c_uint(p2),
195+
],
196+
[
197+
n,
198+
],
199+
)
200+
e3 = q.submit(
201+
kern3Kernel,
202+
[third_row, first_row, second_row],
203+
[
204+
n,
205+
],
206+
None,
207+
[e1, e2],
208+
)
209+
e3_st = e3.execution_status
210+
e2_st = e2.execution_status
211+
e1_st = e1.execution_status
212+
if not all(
213+
[
214+
e == status_complete
215+
for e in (
216+
e1_st,
217+
e2_st,
218+
e3_st,
219+
)
220+
]
221+
):
222+
async_detected = True
223+
e3.wait()
224+
break
225+
226+
assert async_detected, "No evidence of async submission detected, unlucky?"
220227
Xnp = dpt.asnumpy(X)
221228
Xref = np.empty((3, n), dtype="u4")
222229
for i in range(n):
223-
Xref[0, i] = (i * i) % 17
224-
Xref[1, i] = (i * i * i) % 27
230+
Xref[0, i] = (i * i) % p1
231+
Xref[1, i] = (i * i * i) % p2
225232
Xref[2, i] = min(Xref[0, i], Xref[1, i])
226233

227234
assert np.array_equal(Xnp, Xref)

0 commit comments

Comments
 (0)