numba-dpex
numba-dpex copied to clipboard
Function from ramba fails to compile when dpjit decorated.
def get_base_slice_internal(sv, arr):
t = UTx.build_full_slice3_tuple(arr.ndim)
s = _base_offset(sv)
e = np.ones(len_base_offset(sv), dtype=ramba_dist_dtype)
st = np.ones(len_base_offset(sv), dtype=ramba_dist_dtype)
for i, v in enumerate(_axis_map(sv)):
if v >= 0:
e[v] += (_size(sv)[i]-1) * abs(_steps(sv)[i])
st[v] = _steps(sv)[i]
e += s
for i in range(arr.ndim):
t = UT.tuple_setitem(t, i, slice(
s[i] if st[i]>0 else e[i]-1,
e[i] if st[i]>=0 else (s[i]-1 if s[i]>0 else None),
st[i] ) )
return arr[t]
^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/ramba/ramba/shardview_array.py", line 365, in get_base_slice ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return get_jitted_internal(type(arr))(sv, arr) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 487, in _compile_for_args ^[[2m^[[36m(RemoteState pid=1666995)^[[0m raise e ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 420, in _compile_for_args ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return_val = self.compile(tuple(argtypes)) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 965, in compile ^[[2m^[[36m(RemoteState pid=1666995)^[[0m cres = self._compiler.compile(args, return_type) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 125, in compile ^[[2m^[[36m(RemoteState pid=1666995)^[[0m status, retval = self._compile_cached(args, return_type) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 139, in _compile_cached ^[[2m^[[36m(RemoteState pid=1666995)^[[0m retval = self._compile_core(args, return_type) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/dispatcher.py", line 152, in _compile_core ^[[2m^[[36m(RemoteState pid=1666995)^[[0m cres = compiler.compile_extra(self.targetdescr.typing_context, ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 716, in compile_extra ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return pipeline.compile_extra(func) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 452, in compile_extra ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return self._compile_bytecode() ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 520, in _compile_bytecode ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return self._compile_core() ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 499, in _compile_core ^[[2m^[[36m(RemoteState pid=1666995)^[[0m raise e ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler.py", line 486, in _compile_core ^[[2m^[[36m(RemoteState pid=1666995)^[[0m pm.run(self.state) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 368, in run ^[[2m^[[36m(RemoteState pid=1666995)^[[0m raise patched_exception ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 356, in run ^[[2m^[[36m(RemoteState pid=1666995)^[[0m self._runPass(idx, pass_inst, state) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock ^[[2m^[[36m(RemoteState pid=1666995)^[[0m return func(*args, **kwargs) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 311, in _runPass ^[[2m^[[36m(RemoteState pid=1666995)^[[0m mutated |= check(pss.run_pass, internal_state) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/miniconda3/envs/dppl39/lib/python3.9/site-packages/numba/core/compiler_machinery.py", line 273, in check ^[[2m^[[36m(RemoteState pid=1666995)^[[0m mangled = func(compiler_state) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 321, in run_pass ^[[2m^[[36m(RemoteState pid=1666995)^[[0m cfd_legalizer.run() ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 304, in run ^[[2m^[[36m(RemoteState pid=1666995)^[[0m self._legalize_stmt(stmt, block) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 273, in _legalize_stmt ^[[2m^[[36m(RemoteState pid=1666995)^[[0m self._legalize_cfd_parfor_blocks(stmt) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 209, in _legalize_cfd_parfor_blocks ^[[2m^[[36m(RemoteState pid=1666995)^[[0m conforming_device_ty = self._legalize_parfor_params(parfor) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 182, in _legalize_parfor_params ^[[2m^[[36m(RemoteState pid=1666995)^[[0m usm_ty, device_ty = self._check_cfd_parfor_params(parfor, checklist) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m File "/localdisk/work/taanders/github/numba-dpex/numba_dpex/core/passes/parfor_legalize_cfd_pass.py", line 102, in _check_cfd_parfor_params ^[[2m^[[36m(RemoteState pid=1666995)^[[0m conforming_usm_ty = max(usmTypes) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m ValueError: Failed in dpex_dpjit_nopython mode pipeline (step: Legalize parfors for compute follows data) ^[[2m^[[36m(RemoteState pid=1666995)^[[0m max() arg is an empty sequence
@diptorupd Apologize for the formatting but it should be clear enough to find the problem. Thanks!
@DrTodd13 fixed! The formatting that is :wink:, I will take a look and provide an update.