-
Notifications
You must be signed in to change notification settings - Fork 33
Closed
Description
First case:
import dpctl
import dpnp
from numba_dpex import dpjit
@dpjit
def foo(queue):
x = dpnp.empty(10, sycl_queue=queue)
return x
q = dpctl.SyclQueue()
a = foo(q)
print(a.sycl_queue == q) # prints True, which is correct
@dpjit
def bar():
y = dpnp.empty(10)
return y
b = bar()
dummy = dpnp.empty(10)
print(b.sycl_queue == dummy.sycl_queue) # prints False instead of True
device = dpctl.SyclDevice().filter_string
@dpjit
def baz():
z = dpnp.empty(10, device=device)
return z
c = baz()
cached_queue = dpctl._sycl_queue_manager.get_device_cached_queue(device)
print(c.sycl_queue == cached_queue) # prints False instead of TrueGives this output:
True
False
FalseThe last two cases should print True, but they don't.
Now if we switch the order (calling foo() at the end):
import dpctl
import dpnp
from numba_dpex import dpjit
@dpjit
def bar():
y = dpnp.empty(10)
return y
b = bar()
dummy = dpnp.empty(10)
print(b.sycl_queue == dummy.sycl_queue) # now it prints True as it should
device = dpctl.SyclDevice().filter_string
@dpjit
def baz():
z = dpnp.empty(10, device=device)
return z
c = baz()
cached_queue = dpctl._sycl_queue_manager.get_device_cached_queue(device)
print(c.sycl_queue == cached_queue) # now it prints True as it should
@dpjit
def foo(queue):
x = dpnp.empty(10, sycl_queue=queue)
return x
q = dpctl.SyclQueue()
a = foo(q)
print(a.sycl_queue == q) # prints False, but it was printing True beforeGives this output:
True
True
FalseThe first two outputs are correct, i.e. True, but now the last ouput is False.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels