Allow vec tagging of odd sizes for local temporaries
- Dominant language
- Python
- Stars
- 636
- Forks
- 81
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 7
Description
For context, in a sumpy P2P kernel I have a temporary of size
```
local_isrc[5, 45]
```
which results in 5 memory loads/stores,
but it could be split into
```
local_isrc_s0[2, 45]
local_isrc_s1[2, 45]
local_isrc_s2[1, 45]
```
which results in only 3 memory loads/stores.
One way that I can achieve this is to do
```
lp.split_array_axes(knl, "local_isrc", 0, 2)
lp.tag_array_axes(knl, "local_isrc", "C,vec,C")
```
however this results in `6*45` elements being allocated in shared memory. (Sometimes the compiler optimizes this into `5, 45`, sometimes not).
I tried
```
lp.split_array_axes(knl, "local_isrc", 0, 2)
lp.tag_array_axes(knl, "local_isrc", "sep,vec,C")
```
which does not work.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.