inducer / inducer/loopy

Loopy's codegenerator fails with non-deterministic error

Open
#421 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
636
Forks
81
Avg merge
1d 19h
Merged PRs (30d)
7

Description

For the quite simple kernel
```python
import loopy as lp
knl = lp.make_kernel(
["{ [i_outer, i_inner] : 4i_outer <= n - 5 and 0 <= i_inner < 4 and 0 <= i_inner + 4i_outer < n }",
"{ [slab_i_outer] : n - 4 <= 4slab_i_outer < n }",
"[slab_i_outer, n] -> { [slab_i_inner] : 0 <= slab_i_inner < 4 and 0 <= slab_i_inner + 4slab_i_outer < n }"],
"""
a[i_inner + 4*i_outer] = i_inner + 4*i_outer
a[slab_i_inner + 4*slab_i_outer] = slab_i_inner + 4*slab_i_outer
""", seq_dependencies=True)

knl = lp.tag_inames(knl, "i_outer:g.0, slab_i_outer:g.0")

lp.generate_code_v2(knl)
```

Depending on `PYTHONHASHSEED` the error cycles between:
- In setup_hw_parallel_loops
```
NotImplementedError: only single-valued piecewise affine expressions are supported here--encountered multi-valued expression '[n] -> { [(-2 + 2n - 2*floor((3n)/4))] : n >= 5; [(n - floor((3n)/4))] : n <= 4 }'
```
- In check_implemented_domains
```
loopy.diagnostic.LoopyError: sanity check failed--implemented and desired domain for instruction 'insn_0' do not match
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.