Support in-tile reshapes for symbolic block sizes - #3165
Conversation
ad4aae5 to
03017e5
Compare
|
The issue is that Helion traces the kernel before selecting a concrete configuration. During tracing, block sizes The fix has three parts:
|
03017e5 to
d136cf8
Compare
| torch.testing.assert_close(out2, x2) | ||
|
|
||
| @skipIfCudaCapabilityLessThan((9, 0), reason="FP8 requires CUDA capability >= 9.0") | ||
| @skipIfCute("CuTe does not support scalar float32 to float8 conversion") |
There was a problem hiding this comment.
sure, I can try to fix it in a separate PR.
There was a problem hiding this comment.
I have the conversion fix in this stack: #3169
Even with the conversion problem fixed, there is still some other issue with the cute backend. Haven't reviewed the PRs, yet. Do you want to land this PR only after the cute backend is also working?
ethche
left a comment
There was a problem hiding this comment.
Codex mentions these as potential issues. Could you double check?
-
Blocker: only reshape-numel guards are recorded (compile_environment.py:1064). Other symbolic guards introduced during tracing are ignored. I reproduced a config with BLOCK_N=256 that passed normalization but later failed Triton compilation because squeeze(1) had been traced assuming the group dimension was 1. The fix should capture all block-dependent ShapeEnv guards, or conservatively pin involved block sizes to the chosen assignment.
-
Autotuning gap: retries were added only to random_population() (config_generation.py:618), while Pattern Search and Differential Evolution use random_population_flat(). Invalid constrained configs are therefore discarded without replenishment, potentially starving the population.
Fixes #3163
Summary
reshape/viewbefore FakeTensor shape validationTesting
pytest test/test_indexing.py test/test_tensor_numel_constraints.py test/test_config_api.py -n4 -x -q(154 passed, 8 skipped)