Kaushik Kulkarni
Kaushik Kulkarni
One thing to note is that much of this is not supported in current loopy as it would require branching in the domain tree. For ex.: ```python knl = lp.make_kernel(...
Thanks for the report! That's a concerning bug. Arguments must not be dropped in entrypoint kernels. I think this should be an easy fix. Here's a smaller reproducer: ```python knl...
Some possibilities: 1. Read-only temporaries in `lp.AddressSpace.GLOBAL` address space are emitted as static arrays in `CTarget`. 2. In the PyOpenCLTarget: for a non-const temporary we do such allocations by setting...
FWIW, isl_set_get_hash returns deterministic results as its seed is a constant.
Aah I see. `Set.__hash__` is consistent across runs (irrespective of PYTHONHASHSEED). However, `BasicSet.__hash__` isn't. This is because ISL does not define `isl_basic_set_get_hash` and so `isl.BasicSet.__hash__` is `pybind11_builtins.pybind11_object.__hash__`
Using `pybind11_object.__hash__` is even more problematic as: ```console (py311_env) [line@line temp]$ cat understand_bset_hash.py import islpy as isl a1 = isl.BasicSet("{[i]: 0
Thanks! Looks like most of loopy's errors come from `islpy.Space` being unhashable. Maybe we can overload in `islpy/__init__.py` as: ```python def _isl_space_get_hash(x): return hash((x.dim()), x.params())) Space.__hash__ = _isl_space_get_hash ``` It...
I was thinking I could make a quick PR to loopy which would also add the condition `bkt_set.get_var_dict() == set_.get_var_dict()`, but the problem is deeper as https://github.com/inducer/loopy/issues/576 points :/. I...
I think it is not _just_ StringifyMapper that is wrong, even the parser implements left-to-right associativity incorrectly: ```python >>> parse("a*b*c") Product((Variable('a'), Product((Variable('b'), Variable('c'))))) >>> from pymbolic.mapper.evaluator import evaluate >>> a_np...
There's a proposed fix for this at https://gitlab.tiker.net/inducer/pycuda/-/merge_requests/75.