@@ -31,9 +31,7 @@ def __init__(
3131 aligned = True ,
3232 addrspace = address_space .GLOBAL ,
3333 ):
34- # Creating SyclDevice from filter_string is expensive. So, USMNdArray should be able to
35- # accept and SyclDevice from usm_ndarray as device parameter
36- if not isinstance (device , (str , dpctl .SyclDevice )):
34+ if not isinstance (device , str ):
3735 raise TypeError (
3836 "The device keyword arg should be a str object specifying "
3937 "a SYCL filter selector"
@@ -47,35 +45,21 @@ def __init__(
4745 self .usm_type = usm_type
4846 self .addrspace = addrspace
4947
50- def to_device (dev ):
51- if isinstance (dev , dpctl .SyclDevice ):
52- return dev
48+ if device == "unknown" :
49+ device = None
5350
54- return dpctl .SyclDevice (dev )
55-
56- def device_as_string (dev ):
57- if isinstance (dev , dpctl .SyclDevice ):
58- return dev .filter_string
59-
60- return dev
51+ if queue is not None and device is not None :
52+ raise TypeError (
53+ "'queue' and 'device' keywords can not be both specified"
54+ )
6155
6256 if queue is not None :
63- if device != "unknown" :
64- if queue .sycl_device != to_device (device ):
65- raise TypeError (
66- "The queue keyword arg and the device keyword arg specify "
67- "different SYCL devices"
68- )
69-
7057 self .queue = queue
7158 else :
72- if device == "unknown" :
73- device = None
59+ if device is None :
60+ device = dpctl . SyclDevice ()
7461
75- device_str = device_as_string (device )
76- self .queue = dpctl .tensor ._device .normalize_queue_device (
77- device = device_str
78- )
62+ self .queue = dpctl .get_device_cached_queue (device )
7963
8064 self .device = self .queue .sycl_device .filter_string
8165
0 commit comments