25
25
# *****************************************************************************
26
26
27
27
import dpctl .tensor as dpt
28
+ import dpctl .utils as dpu
28
29
import numpy as np
29
30
from dpctl .tensor ._tensor_impl import (
30
31
_copy_usm_ndarray_into_usm_ndarray ,
31
32
_full_usm_ndarray ,
32
33
_zeros_usm_ndarray ,
33
34
)
34
- from dpctl .utils import SequentialOrderManager
35
35
36
36
import dpnp
37
37
@@ -46,14 +46,18 @@ def dpnp_fill(arr, val):
46
46
val = dpnp .get_usm_ndarray (val )
47
47
if val .shape != ():
48
48
raise ValueError ("`val` must be a scalar" )
49
+ if dpu .get_execution_queue ((exec_q , val .sycl_queue )) is None :
50
+ raise dpu .ExecutionPlacementError (
51
+ "Input arrays have incompatible queues."
52
+ )
49
53
a_val = dpt .asarray (
50
54
val ,
51
55
dtype = arr .dtype ,
52
56
usm_type = arr .usm_type ,
53
57
sycl_queue = exec_q ,
54
58
)
55
59
a_val = dpt .broadcast_to (a_val , arr .shape )
56
- _manager = SequentialOrderManager [exec_q ]
60
+ _manager = dpu . SequentialOrderManager [exec_q ]
57
61
dep_evs = _manager .submitted_events
58
62
h_ev , c_ev = _copy_usm_ndarray_into_usm_ndarray (
59
63
src = a_val , dst = arr , sycl_queue = exec_q , depends = dep_evs
@@ -74,7 +78,7 @@ def dpnp_fill(arr, val):
74
78
elif val_type is int and dpnp .issubdtype (dt , dpnp .integer ):
75
79
val = np .asarray (val , dtype = dt )[()]
76
80
77
- _manager = SequentialOrderManager [exec_q ]
81
+ _manager = dpu . SequentialOrderManager [exec_q ]
78
82
dep_evs = _manager .submitted_events
79
83
# can leverage efficient memset when val is 0
80
84
if arr .flags ["FORC" ] and val == 0 :
0 commit comments