@@ -167,61 +167,68 @@ def test_async_submit():
167
167
assert isinstance (kern2Kernel , dpctl_prog .SyclKernel )
168
168
169
169
status_complete = dpctl .event_status_type .complete
170
- n = 1024 * 1024 * 4
170
+ n = 256 * 1024
171
171
X = dpt .empty ((3 , n ), dtype = "u4" , usm_type = "device" , sycl_queue = q )
172
172
first_row = dpctl_mem .as_usm_memory (X [0 ])
173
173
second_row = dpctl_mem .as_usm_memory (X [1 ])
174
174
third_row = dpctl_mem .as_usm_memory (X [2 ])
175
175
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
218
177
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?"
220
227
Xnp = dpt .asnumpy (X )
221
228
Xref = np .empty ((3 , n ), dtype = "u4" )
222
229
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
225
232
Xref [2 , i ] = min (Xref [0 , i ], Xref [1 , i ])
226
233
227
234
assert np .array_equal (Xnp , Xref )
0 commit comments