-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Register the experimental kernel target as a fully standalone Numba hardware target #1225
Register the experimental kernel target as a fully standalone Numba hardware target #1225
Conversation
@adarshyoga @ZzEeKkAa I have made most of the changes as far as I can tell to isolate out to the experimental target. Pytest seems to crash after these changes. I will start fresh tomorrow. |
I messed up import dpctl
import dpnp
import numba_dpex.experimental as nd_exp
from numba_dpex import Range
@nd_exp.kernel
def test_atomic_ref(a, b):
a[0] = b[0] + b[0]
q = dpctl.SyclQueue()
a = dpnp.ones(10, sycl_queue=q, dtype=dpnp.int64)
b = dpnp.array(0, sycl_queue=q, dtype=dpnp.int64)
nd_exp.call_kernel(test_atomic_ref, Range(10), a, b)
print(b)
print(a) |
- Use function qualname as the entry point (key) for caching compiled function in the target's _defns dict. - KernelCompileResult now extends numba's CompileResult class and only stores the spirv bitcode as an extra field. - Added a new function to return just the device ir for a cached overload. - Updates to launcher to accomodate changes to kernel_dispatcher.
63c3f22
to
2ab2608
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! LGTM!
Fixed. The issue was I was passing the number of bytes in the |
Have you provided a meaningful PR description?
The experimental target is now fully separated from the
DpexKernelTarget
with a different string identifier and device class.A clone of the DpexKernelTarget's datamodel manager is added that will store all experimental types' data models till they are ready to move into core.
Have you added a test, reproducer or referred to an issue with a reproducer?
Have you tested your changes locally for CPU and GPU devices?
Have you made sure that new changes do not introduce compiler warnings?
If this PR is a work in progress, are you filing the PR as a draft?