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

Issues when enabling Game of Life

Open mingjie-intel opened this issue 1 year ago • 1 comments

Following changes are have to be made to enable Game of Life:

  1. Not supporting dpnp.sum() grid_padded[i : i + 3, j : j + 3].sum()
  2. Not supporting function signature. @njit( ["int32[:,:](int32[:,:])", "int64[:,:](int64[:,:])"], parallel=parse_args().parallel )
  3. Not supporting dpnp array manipulation
    grid_padded[0, 1:-1] = grid[-1]  # top row of padded grid
    grid_padded[-1, 1:-1] = grid[0]  # bottom
    grid_padded[1:-1, 0] = grid[:, -1]
    grid_padded[1:-1, -1] = grid[:, 0]
    grid_padded[0, 0] = grid[-1, -1]
    grid_padded[-1, -1] = grid[0, 0]
    grid_padded[0, -1] = grid[-1, 0]
    grid_padded[-1, 0] = grid[0, -1]
  1. Not supporting global variable without explicit passing in as argument

mingjie-intel avatar May 23 '23 19:05 mingjie-intel

a reproducer of 4:

import dpnp as np
from numba_dpex import dpjit

rules = np.array(
    [
        # 0  1  2  3  4  5  6  7  8   # Number of alive cell neighbors
        [0, 0, 0, 1, 0, 0, 0, 0, 0],  # Rule for dead cells
        [0, 0, 1, 1, 0, 0, 0, 0, 0],  # Rule for alive cells
    ]
)

@dpjit
def foo():
    return rules

b=foo()
print(b)

mingjie-intel avatar May 23 '23 21:05 mingjie-intel