inducer / inducer/loopy

[codegen, bug]: Callee kernel name generation is incorrect

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

Description

Kernel call sites assume that the name of the generated function is identical to the LoopKernel's name. However, the actual name of the non-entrypoint kernel is generated during linearization as

https://github.com/inducer/loopy/blob/f67b65ccb7b377430986cf59db0747e51dfe84e7/loopy/schedule/device_mapping.py#L35-L40

---

Two ways of fixing this:
1. For non-entrypoint kernels we should always emit `CallKernel` with name equal to its `LoopKernel`, OR,
2. While emitting the code for a `Call` expression node, query the translation unit to get its `CallKernel`.

I feel (1) is cleaner(+easier to implement) and seems like it doesn't make any assumption that might bite us in the future. Opinions?

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.