numba-dpex
numba-dpex copied to clipboard
Issues when enabling Game of Life
Following changes are have to be made to enable Game of Life:
- Not supporting dpnp.sum()
grid_padded[i : i + 3, j : j + 3].sum()
- Not supporting function signature.
@njit( ["int32[:,:](int32[:,:])", "int64[:,:](int64[:,:])"], parallel=parse_args().parallel )
- 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]
- Not supporting global variable without explicit passing in as argument
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)