numba-dpex
numba-dpex copied to clipboard
tuple_setitem not supported?
import dpnp
import numba_dpex
import numba
import numba.cpython.unsafe.tuple as UT
@numba_dpex.dpjit
def do_fill(A, sz, starts):
for i in numba.pndindex(sz):
arg = sz
# Construct the global index...yes I know this is dead code in this example but not the original larger example.
for j in range(len(starts)):
arg = UT.tuple_setitem(arg, j, i[j] + starts[j])
A[i] = 1
A = dpnp.ones((100,100))
do_fill(A, (100,100), (0,0))
print("DONE")
Traceback (most recent call last):
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/errors.py", line 823, in new_error_context
yield
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 265, in lower_block
self.lower_inst(inst)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 439, in lower_inst
val = self.lower_assign(ty, inst)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 626, in lower_assign
return self.lower_expr(ty, value)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 1162, in lower_expr
res = self.lower_call(resty, expr)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 891, in lower_call
res = self._lower_call_normal(fnty, expr, signature)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 1125, in _lower_call_normal
impl = self.context.get_function(fnty, signature)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/base.py", line 559, in get_function
return self.get_function(fn, sig, _firstcall=False)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/base.py", line 561, in get_function
raise NotImplementedError("No definition for lowering %s%s" % (key, sig))
NotImplementedError: No definition for lowering <function tuple_setitem.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/lowerer.py", line 1389, in lower self.gpu_lower.lower() File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 168, in lower self.lower_normal_function(self.fndesc) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 222, in lower_normal_function entry_block_tail = self.lower_function_body() File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 251, in lower_function_body self.lower_block(block) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 265, in lower_block self.lower_inst(inst) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/contextlib.py", line 137, in exit self.gen.throw(typ, value, traceback) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/errors.py", line 837, in new_error_context raise newerr.with_traceback(tb)
numba.core.errors.LoweringError: ^[[1m^[[1mNo definition for lowering <function tuple_setitem.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/errors.py", line 823, in new_error_context yield File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 265, in lower_block self.lower_inst(inst) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 439, in lower_inst val = self.lower_assign(ty, inst) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 626, in lower_assign return self.lower_expr(ty, value) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 1162, in lower_expr res = self.lower_call(resty, expr) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 891, in lower_call res = self._lower_call_normal(fnty, expr, signature) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 1125, in _lower_call_normal impl = self.context.get_function(fnty, signature) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/base.py", line 559, in get_function return self.get_function(fn, sig, _firstcall=False) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/base.py", line 561, in get_function raise NotImplementedError("No definition for lowering %s%s" % (key, sig)) NotImplementedError: No definition for lowering <function get_global_id at 0x7f0d5c35fca0>(uint32,) -> int64
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_lowering_pass.py", line 206, in _lower_parfor_as_kernel
psrfor_kernel = create_kernel_for_parfor(
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/utils/kernel_builder.py", line 438, in create_kernel_for_parfor
sycl_kernel = _compile_kernel_parfor(
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/utils/kernel_builder.py", line 75, in _compile_kernel_parfor
kernel.compile(
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/kernel_interface/spirv_kernel.py", line 123, in compile
cres = compile_with_dpex(
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/compiler.py", line 80, in compile_with_dpex
cres = compiler.compile_ir(
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 779, in compile_ir
return pipeline.compile_ir(func_ir=func_ir, lifted=lifted,
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 462, in compile_ir
return self._compile_ir()
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 527, in _compile_ir
return self._compile_core()
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 499, in _compile_core
raise e
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 486, in _compile_core
pm.run(self.state)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 368, in run
raise patched_exception
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 356, in run
self._runPass(idx, pass_inst, state)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 311, in _runPass
mutated |= check(pss.run_pass, internal_state)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 273, in check
mangled = func(compiler_state)
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/passes.py", line 436, in run_pass
lower.lower()
File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/lowerer.py", line 1426, in lower
self.cpu_lower.lower()
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 168, in lower
self.lower_normal_function(self.fndesc)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 222, in lower_normal_function
entry_block_tail = self.lower_function_body()
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 251, in lower_function_body
self.lower_block(block)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 265, in lower_block
self.lower_inst(inst)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/contextlib.py", line 137, in exit
self.gen.throw(typ, value, traceback)
File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/errors.py", line 837, in new_error_context
raise newerr.with_traceback(tb)
numba.core.errors.LoweringError: Failed in dpex_offload_nopython mode pipeline (step: Custom Lowerer with auto-offload support)
^[[1m^[[1mNo definition for lowering <function get_global_id at 0x7f0d5c35fca0>(uint32,) -> int64
^[[1m
File "
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/errors.py", line 823, in new_error_context yield File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 265, in lower_block self.lower_inst(inst) File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/lowering.py", line 567, in lower_inst func(self, inst) File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_lowering_pass.py", line 269, in lower_parfor_dpex parfor.lowerer(lowerer, parfor) File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_lowering_pass.py", line 218, in _lower_parfor_as_kernel raise UnsupportedParforError numba_dpex.core.exceptions.UnsupportedParforError: Expression cannot be offloaded
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/t2.py", line 22, in