numba-dpex icon indicating copy to clipboard operation
numba-dpex copied to clipboard

Function from ramba fails to compile when dpjit decorated.

Open DrTodd13 opened this issue 1 year ago • 2 comments

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

DrTodd13 avatar Mar 28 '23 22:03 DrTodd13

@diptorupd Apologize for the formatting but it should be clear enough to find the problem. Thanks!

DrTodd13 avatar Mar 28 '23 22:03 DrTodd13

@DrTodd13 fixed! The formatting that is :wink:, I will take a look and provide an update.

diptorupd avatar Mar 28 '23 23:03 diptorupd