Kaushik Kulkarni

Results 91 comments of 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.