ITADN
pytorch/helion

版本发布 8

v1.1.0
? · 2026-05-20

## What's Changed * [Pallas] Use TPU-aware synchronize_device across autotuner and testing by @norx1991 in https://github.com/pytorch/helion/pull/1944 * Refactor if-else branches, unblock test_if_new_variable_in_static_range for Pallas TPU by @AmesingFlank in https://github.com/pytorch/helion/pull/1935 * [Pallas] Register pallas_loop_type only when inner loops exist by @norx1991 in https://github.com/pytorch/helion/pull/1915 * [Pallas] Fix emit_pipeline program_id mapping with loop_order reordering by @norx1991 in https://github.com/pytorch/helion/pull/1916 * [Pallas] Add expected-failure test for non-power-of-2 RDIM size by @norx1991 in https://github.com/pytorch/helion/pull/1945 * Update docs: add missing API entries by @choijon5 in https://github.com/pytorch/helion/pull/1948 * [Benchmark] Add compile time measurement to CI benchmarks by @choijon5 in https://github.com/pytorch/helion/pull/1952 * use is_symm_mem_tensor if the API is available by @shunting314 in https://github.com/pytorch/helion/pull/1933 * [Pallas] When not doing tiling for entire kernel, use explicit BlockSpecs instead of None by @AmesingFlank in https://github.com/pytorch/helion/pull/1960 * Fix FROM_BEST_AVAILABLE matching with hl.specialize() after #1883 by @fulvius31 in https://github.com/pytorch/helion/pull/1940 * [Pallas] Fix indexing scalars using SMEM memory space by @AmesingFlank in https://github.com/pytorch/helion/pull/1955 * [Pallas] Add xfail tests for scalar .begin index not collapsing dims by @norx1991 in https://github.com/pytorch/helion/pull/1971 * Skip test_hl_rand_mixed_argument_order on MTIA due to unaligned address crash by @karthickai in https://github.com/pytorch/helion/pull/1977 * Fix _supports_maxnreg() to guard against non-CUDA backends by @karthickai in https://github.com/pytorch/helion/pull/1981 * Skip TestRandomPhiloxParity class on MTIA (#1979) by @karthickai in https://github.com/pytorch/helion/pull/1982 * [Pallas] Fix acccesing tensors using index from hl.grid() by @AmesingFlank in https://github.com/pytorch/helion/pull/1956 * [Pallas] Support using traced size-1 tensor as condition predicate, unblocking test_if_arg_indexed_scalar by @AmesingFlank in https://github.com/pytorch/helion/pull/1957 * [Pallas] Fix atomic_add dtype cast and VMEM preload for fori/pipeline launchers by @thcmbs in https://github.com/pytorch/helion/pull/1966 * [Pallas] Use exact RDIM size instead of next-power-of-2 by @norx1991 in https://github.com/pytorch/helion/pull/1954 * [Pallas] Add support for accessing tensors with the pattern of tile.index + offset /.id/.begin/.end by @AmesingFlank in https://github.com/pytorch/helion/pull/1968 * [metal] Reuse Inductor's MetalOverrides for MSL expression emission by @aditvenk in https://github.com/pytorch/helion/pull/1853 * [metal] Add Metal codegen handlers for load, store, and mask_to by @aditvenk in https://github.com/pytorch/helion/pull/1854 * [Pallas] Enable a subset of test_grid tests for Pallas by @AmesingFlank in https://github.com/pytorch/helion/pull/1985 * [Pallas] Add a test for accessing tensors with hl.grid() index + offset by @AmesingFlank in https://github.com/pytorch/helion/pull/1988 * Relax rms_norm example tolerance for Pallas bf16 by @thcmbs in https://github.com/pytorch/helion/pull/1983 * [autotuner] Introduce BenchmarkProvider abstraction for kernel benchmarking by @hinriksnaer in https://github.com/pytorch/helion/pull/1928 * [Pallas] Use HBM BlockSpecs for output-only tensors to save VMEM by @norx1991 in https://github.com/pytorch/helion/pull/1984 * Emit autotune failure summary warnings by @allgather in https://github.com/pytorch/helion/pull/1994 * [Pallas] Remove unused is_device_loop variable in _pallas_index_str by @AmesingFlank in https://github.com/pytorch/helion/pull/1990 * [Pallas] Fix BlockSpecs for 2D tl.grid([m, n]), unblocking test_scalar_access_hl_grid_2d by @AmesingFlank in https://github.com/pytorch/helion/pull/1986 * Reduce some autotuner overhead without changing kernel behavior by @svdrecbd in https://github.com/pytorch/helion/pull/1885 * [compile] Add `pre_codegen` hook to Backend ABC by @hinriksnaer in https://github.com/pytorch/helion/pull/1976 * Adding AMD Mi350x machines to CI with new labels. by @umechand-amd in https://github.com/pytorch/helion/pull/1835 * [Pallas] Fix accessing tensor via hl.grid() index within a device loop, unblocking test_scalar_access_hl_grid_2d_nested by @AmesingFlank in https://github.com/pytorch/helion/pull/1989 * Support mtia in LocalAutotuneCache by @Hamlin-Li in https://github.com/pytorch/helion/pull/1996 * removed stale comments by @hinriksnaer in https://github.com/pytorch/helion/pull/1997 * Fix invalid default config for kernels with large tensor numel by @fulvius31 in https://github.com/pytorch/helion/pull/1839 * [chore](deps): Bump actions/github-script from 8 to 9 by @dependabot[bot] in https://github.com/pytorch/helion/pull/2000 * Fix _benchmark dropping configs that fail compilation by @fulvius31 in https://github.com/pytorch/helion/pull/1942 * [metal] Add MSL AST walker for Python-to-C++ translation by @aditvenk in https://github.com/pytorch/helion/pull/1794 * Enable tensor_descriptor based atomic ops by @ethche in https://github.com/pytorch/helion/pull/1953 * [metal] Add @metal_jit decorator for AST-to-MSL compilation by @aditvenk in https://github.com/pytorch/helion/pull/1991 * Epilogue subtiling: store indexing fix, example, and tuple output support in run_example by @choijon5 in https://github.com/pytorch/helion/pull/1907 * [Compiler] Added backend registry by @hinriksnaer in https://github.com/pytorch/helion/pull/1967 * [metal] Wire @metal_jit into MetalBackend and simplify launcher by @aditvenk in https://github.com/pytorch/helion/pull/1992 * [Pallas] Skip trivial reduction mask when RDIM size equals actual dim by @norx1991 in https://github.com/pytorch/helion/pull/1993 * [Pallas] Fix TPU min_dot_size for matmul autotuning by @norx1991 in https://github.com/pytorch/helion/pull/1999 * [chore](deps): Bump actions/upload-pages-artifact from 4 to 5 by @dependabot[bot] in https://github.com/pytorch/helion/pull/2015 * Make _get_tile_with_offset_info accept a torch.fx.Node as arg, instead of the entire CodegenState by @AmesingFlank in https://github.com/pytorch/helion/pull/2005 * [metal] Skip tests better to pass in internal CI by @aditvenk in https://github.com/pytorch/helion/pull/2016 * Add to_code() as backend-agnostic alias for to_triton_code() by @norx1991 in https://github.com/pytorch/helion/pull/2012 * [Pallas] Fix fori_loop multi-dim index decomposition with nested loops by @norx1991 in https://github.com/pytorch/helion/pull/1917 * custom config filter by @shunting314 in https://github.com/pytorch/helion/pull/1847 * [Pallas] Reject 64-bit input tensors and fix tiling ZeroDivisionError by @norx1991 in https://github.com/pytorch/helion/pull/1950 * Bump CI libtpu to 0.0.40 by @AmesingFlank in https://github.com/pytorch/helion/pull/2017 * [Pallas] Make test_tensor_access_tile_index_offset more meaningful and reveal codegen issue in Pallas backend by @AmesingFlank in https://github.com/pytorch/helion/pull/2006 * [Pallas] [NFC] Dedup _jnp_dtype_map helper by @thcmbs in https://github.com/pytorch/helion/pull/2021 * [Pallas] Add a `plan_tiling` pre_codegen pass to make more consistent tiling and indexing decisions by @AmesingFlank in https://github.com/pytorch/helion/pull/2007 * [Compiler] Add `reserved_launch_param_names` to Backend ABC by @hinriksnaer in https://github.com/pytorch/helion/pull/1970 * [Pallas] Remove non-tiled fallback paths which are no longer used after #2007 by @AmesingFlank in https://github.com/pytorch/helion/pull/2026 * [TPU][Pallas] Add lower bound analytical VMEM estimation and OOM guard for Pallas launchers by @yarongmu-google in https://github.com/pytorch/helion/pull/2024 * [Pallas] Fix codegen for slice indexing when there are squeezed dimensions by @AmesingFlank in https://github.com/pytorch/helion/pull/2027 * [CI] Pin Triton-to-tile-IR to last known-good commit by @norx1991 in https://github.com/pytorch/helion/pull/2028 * [Pallas] Add non-DMA fori_loop fallback for DMA-unaligned inner blocks by @thcmbs in https://github.com/pytorch/helion/pull/1969 * Skip `test_matmul_smaller_than_min_dot_size` on MTIA (#2030) by @will-cromar in https://github.com/pytorch/helion/pull/2030 * docs: add missing autofunction directives for 9 API functions by @Bodlux in https://github.com/pytorch/helion/pull/2036 * [AMD ROCM] matrix_instr_nonkdim restricted to 16 by @umechand-amd in https://github.com/pytorch/helion/pull/2032 * [Autotuner] Move benchmarking implementation into BenchmarkProvider by @hinriksnaer in https://github.com/pytorch/helion/pull/2029 * [Bug][Autotuner] Autotuner failed to clone mutated input arg by @xiaohongchen1991 in https://github.com/pytorch/helion/pull/2042 * [TPU][Pallas] Fix OOM on large reductions by delegating chunking to Mosaic by @yarongmu-google in https://github.com/pytorch/helion/pull/2033 * Remove ref baseline kernel count for test_clone_with_multiple_views_one_mutated as it depends on PyTorch version by @choijon5 in https://github.com/pytorch/helion/pull/2037 * docs: remove remaining mentions of HELION_USE_AUTOTUNE by @cota in https://github.com/pytorch/helion/pull/2038 * Fix test broken by #2033: use env.backend_name by @norx1991 in https://github.com/pytorch/helion/pull/2046 * Simplify CI: update PyTorch releases to 2.11, use bundled Triton by @choijon5 in https://github.com/pytorch/helion/pull/2047 * [Pallas] Under interpret mode, Use float16 as HALF_DTYPE because bfloat16 is not supported on CPU by @AmesingFlank in https://github.com/pytorch/helion/pull/2050 * [AMD ROCm] Use AMD Triton backend for min_dot_size instead of NVIDIA by @choijon5 in https://github.com/pytorch/helion/pull/2048 * [Pallas] Adjust block size constraints by analyzing subscript exprs on tensors, unblock rms_norm_bwd example and a few tests by @AmesingFlank in https://github.com/pytorch/helion/pull/2051 * ND jagged tile support by @nullplay in https://github.com/pytorch/helion/pull/2052 * New performance dashboard with GitHub Pages deployment by @choijon5 in https://github.com/pytorch/helion/pull/2053 * [Pallas] Fix test_squeeze_slice_access to use code_and_output by @norx1991 in https://github.com/pytorch/helion/pull/2057 * Add Metal test job to CI test matrix by @aditvenk in https://github.com/pytorch/helion/pull/1862 * [Pallas] Add xfail tests for bmm non-divisible reduction by @norx1991 in https://github.com/pytorch/helion/pull/2031 * [Autotuner] Adding LLM-guided search by @choijon5 in https://github.com/pytorch/helion/pull/2003 * [cutedsl] Refactor reductions to use helper methods by @jansel in https://github.com/pytorch/helion/pull/2008 * [cutedsl] Strengthen layout planning pass invariants by @jansel in https://github.com/pytorch/helion/pull/2009 * [cutedsl] Improve dot with epilogue handling by @jansel in https://github.com/pytorch/helion/pull/2014 * [cutedsl] Plan grouped-N matmuls and lower atomic tensor indices by @jansel in https://github.com/pytorch/helion/pull/2020 * [Pallas] Exclude output-only tensors from Pallas pallas_call inputs to improve performance by @norx1991 in https://github.com/pytorch/helion/pull/1849 * [Pallas] Use FakeTensorMode to avoid HBM allocation for output-only tensors by @norx1991 in https://github.com/pytorch/helion/pull/2022 * Add simplified se_block kernel (#989) by @mengluy0125 in https://github.com/pytorch/helion/pull/989 * [Pallas] Fix symbolic offset codegen in TileIndexWithOffsetPattern by @norx1991 in https://github.com/pytorch/helion/pull/2068 * [Pallas] Replace FakeTensorMode wrap with device='meta' for output-only tensors by @norx1991 in https://github.com/pytorch/helion/pull/2071 * [TPU][Pallas] Enable TPU support and fix benchmarking for AOT compilation example by @yarongmu-google in https://github.com/pytorch/helion/pull/2059 * fix misleading benchmarking for fp8 gemm by @shunting314 in https://github.com/pytorch/helion/pull/1980 * add flashinfer allreduce-rmsnorm kernel by @shunting314 in https://github.com/pytorch/helion/pull/2063 * [Autotuner] Make the autotuner robust to `InvalidConfig` by @bringlein in https://github.com/pytorch/helion/pull/2039 * Deploy new perf dashboard to GitHub Pages by @choijon5 in https://github.com/pytorch/helion/pull/2066 * Add backend-agnostic lane loop APIs to tile strategies by @aditvenk in https://github.com/pytorch/helion/pull/1798 * [Pallas] Process tensor access within external lambdas when adjusting block size constraints by @AmesingFlank in https://github.com/pytorch/helion/pull/2073 * [Pallas] Fix emit_pipeline/fori_loop codegen when multiple inner loops tile the same dim by @norx1991 in https://github.com/pytorch/helion/pull/2075 * use non-interleaved benchmarking for all-reduce-rmsnorm by @shunting314 in https://github.com/pytorch/helion/pull/2065 * Unify dashboard deployment with docs deploy by @choijon5 in https://github.com/pytorch/helion/pull/2082 * [Pallas] Refactor memory space tracking into PallasMemorySpace enum by @norx1991 in https://github.com/pytorch/helion/pull/2072 * Dashboard: restrict Overview/Speedup to main branch, track latency, UI polish by @choijon5 in https://github.com/pytorch/helion/pull/2084 * [Pallas] Treat tile.id subscripts as untileable scalar indices by @norx1991 in https://github.com/pytorch/helion/pull/2083 * [Pallas] Validate pallas_loop_type by @thcmbs in https://github.com/pytorch/helion/pull/2055 * [NFC] [Pallas] Move indexing codegen helpers to pallas/codegen.py by @thcmbs in https://github.com/pytorch/helion/pull/2067 * [Autotuner] Reland LLM-seeded hybrid search (originally #2004) by @choijon5 in https://github.com/pytorch/helion/pull/2091 * Dashboard: fix crash-masking in CI status, split failures (accuracy/run/infra), chart polish by @choijon5 in https://github.com/pytorch/helion/pull/2086 * [Pallas] More robust analysis of tensors reads/writes via FX graph instead of AST, allowing more aggresive output_only optimizations by @AmesingFlank in https://github.com/pytorch/helion/pull/2088 * [Autotuner] Skip `temperature` for claude-opus-4-7 (HTTP 400) by @choijon5 in https://github.com/pytorch/helion/pull/2089 * [Autotuner] Raise LLM response token budget to fit verbose configs by @choijon5 in https://github.com/pytorch/helion/pull/2090 * Dashboard: dedupe MI325X duplicate entries, rename Runner Failures → No Result with last-seen date by @choijon5 in https://github.com/pytorch/helion/pull/2094 * Dashboard: include cancelled runs so partial artifacts aren't lost to 6h timeout by @choijon5 in https://github.com/pytorch/helion/pull/2095 * Fix hardcoded CUDA device in jagged_dense_bmm example by @norx1991 in https://github.com/pytorch/helion/pull/2080 * [CI] fix 13.2 TileIR ci pipeline by @qelk123 in https://github.com/pytorch/helion/pull/2076 * allow reuse variables across different static loops by @shunting314 in https://github.com/pytorch/helion/pull/2081 * [Pallas] Fix SMEM/VMEM conflict for tensors with mixed access patterns by @norx1991 in https://github.com/pytorch/helion/pull/2069 * Removing MI325 runners from CI by @umechand-amd in https://github.com/pytorch/helion/pull/2096 * Benchmark: Reduce running Tritonbench for each kernel from twice to once. by @choijon5 in https://github.com/pytorch/helion/pull/2097 * [ROCM ] Improves ROCm compatibility for distributed kernels and expands ROCm test coverage in distributed test suites. by @umechand-amd in https://github.com/pytorch/helion/pull/2049 * [dashboard] temporarily remove --existing-url to rebuild cache by @choijon5 in https://github.com/pytorch/helion/pull/2109 * Pin tritonbench commit in a file. by @umechand-amd in https://github.com/pytorch/helion/pull/2106 * [dashboard] re-enable --existing-url and filter platforms from dispatch workflow by @choijon5 in https://github.com/pytorch/helion/pull/2110 * Fix flaky distributed and torch.compile tests by @choijon5 in https://github.com/pytorch/helion/pull/2098 * [Benchmarking/CI] Prevent hangs in benchmark phase via subprocess + per-config run timeout by @choijon5 in https://github.com/pytorch/helion/pull/2111 * [Autotuner] Seed LFBO surrogate with stage-1 LLM benchmarks in hybrid search by @choijon5 in https://github.com/pytorch/helion/pull/2113 * [dashboard] Fix empty dashboard caused by broken GitHub API query filters by @choijon5 in https://github.com/pytorch/helion/pull/2118 * [Pallas] Host-side padding for non-divisible pl.ds() dimensions by @norx1991 in https://github.com/pytorch/helion/pull/2104 * Update tritonbench.txt by @umechand-amd in https://github.com/pytorch/helion/pull/2121 * Fix flaky test due to spurious NaN in fusion autotune accuracy check by @choijon5 in https://github.com/pytorch/helion/pull/2115 * [Autotuner] Skip subprocess sticky CUDA errors instead of aborting autotune by @choijon5 in https://github.com/pytorch/helion/pull/2122 * [Pallas] Adding a tunable pre_broadcast optimization pass for TPU scratch buffers, improving TPU attention perf by @AmesingFlank in https://github.com/pytorch/helion/pull/2103 * [dashboard] Trigger docs-deploy explicitly from benchmark dispatch by @choijon5 in https://github.com/pytorch/helion/pull/2129 * [Pallas] Fix multi-dim padding overwriting original tensor reference by @norx1991 in https://github.com/pytorch/helion/pull/2120 * [Pallas] Extend padding to fori_loop DMA and emit_pipeline via _record_pad_info by @norx1991 in https://github.com/pytorch/helion/pull/2105 * [Autotuner] Handle PyTorch CUDA OOM as a skippable error instead of aborting autotuning by @ethche in https://github.com/pytorch/helion/pull/2130 * [Pallas] Indirect gather with pluggable strategies by @thcmbs in https://github.com/pytorch/helion/pull/2054 * [lint] upgrade to pyrefly 0.63.1 by @oulgen in https://github.com/pytorch/helion/pull/2134 * [lint] upgrade ruff to 0.15.12 by @oulgen in https://github.com/pytorch/helion/pull/2135 * [Pallas] Add pl.multiple_of alignment hint to pl.ds() offsets by @norx1991 in https://github.com/pytorch/helion/pull/2116 * Reduce measure() overhead when compile-time tracking is disabled by @gmagogsfm in https://github.com/pytorch/helion/pull/2139 * [CI] Enable build and test for XPU by @chuanqi129 in https://github.com/pytorch/helion/pull/1327 * [Autotuner] Catch expected errors during fork precompiler setup instead of aborting by @ethche in https://github.com/pytorch/helion/pull/2142 * Optimize cache key computation overhead by @gmagogsfm in https://github.com/pytorch/helion/pull/2144 * [Pallas] Honor _smem_arg_indices in pipeline launchers by @norx1991 in https://github.com/pytorch/helion/pull/2143 * This PR updates the tritonbench commit to its current ToT where the PR to fix the segfaults has landed. by @umechand-amd in https://github.com/pytorch/helion/pull/2149 * [Benchmarking] Disable cudagraph for layer_norm-bwd / rms_norm-bwd by @choijon5 in https://github.com/pytorch/helion/pull/2127 * [docs] Add dashboard link, LLM autotuner docs, remove past events by @choijon5 in https://github.com/pytorch/helion/pull/2151 * [Pallas] Per-dim VMEM accounting for gather budget check by @thcmbs in https://github.com/pytorch/helion/pull/2137 * [cute] Enable TestControlFlow by @oulgen in https://github.com/pytorch/helion/pull/2136 * [cute] Add codegen for hl.split, hl.join, and aten.view.dtype; enable test_views.py by @oulgen in https://github.com/pytorch/helion/pull/2138 * [Pallas] Rename pallas_loop_type "default" to "unroll" by @norx1991 in https://github.com/pytorch/helion/pull/2155 * Remove redundant `m_i` update in example attention kernel by @AmesingFlank in https://github.com/pytorch/helion/pull/2156 * Use integer arithmetic instead of triton.cdiv in launcher by @gmagogsfm in https://github.com/pytorch/helion/pull/2146 * unbreak docs build by @oulgen in https://github.com/pytorch/helion/pull/2162 * [Pallas] Use torch.addmm in matmul_layernorm K-loop by @norx1991 in https://github.com/pytorch/helion/pull/2141 * [cute] Enable bunch of test suites by @oulgen in https://github.com/pytorch/helion/pull/2159 * Minor runpod updates by @jansel in https://github.com/pytorch/helion/pull/2163 * Update AGENTS.md by @jansel in https://github.com/pytorch/helion/pull/2164 * Add cute-verify skill by @jansel in https://github.com/pytorch/helion/pull/2165 * Add scripts/autoreview.py by @jansel in https://github.com/pytorch/helion/pull/2166 * Run codespell from ./lint.sh by @jansel in https://github.com/pytorch/helion/pull/2175 * [cutedsl] Matmul preformance prework by @jansel in https://github.com/pytorch/helion/pull/2167 * Small attention optimization: pre-scale q tile with qk_scale by @AmesingFlank in https://github.com/pytorch/helion/pull/2157 * [Pallas] Tighten _check_dma_alignment + make "unroll" tests explicit by @norx1991 in https://github.com/pytorch/helion/pull/2158 * [cute] Bump minimum cute version to 4.5 by @oulgen in https://github.com/pytorch/helion/pull/2180 * Fix compile time measurements by @choijon5 in https://github.com/pytorch/helion/pull/2188 * torch_tpu: update pin to 28d941aec27 by @cota in https://github.com/pytorch/helion/pull/1895 * Remove redundant compile time env by @choijon5 in https://github.com/pytorch/helion/pull/2191 * [Pallas] Emit offset/indices at inner-loop body prologue by @norx1991 in https://github.com/pytorch/helion/pull/2181 * [Autotuner] Fix crash when autotuner_min exceeds max_size by @stmcgovern in https://github.com/pytorch/helion/pull/2177 * Fix attention benchmark accuracy by @choijon5 in https://github.com/pytorch/helion/pull/2178 * [Pallas] Enable se_block tests on TPU + simplify skipIfCudaCapabilityLessThan by @norx1991 in https://github.com/pytorch/helion/pull/2131 * [cute] Implement topk and sort by @oulgen in https://github.com/pytorch/helion/pull/2160 * Fix negative shift by @oulgen in https://github.com/pytorch/helion/pull/2185 * [flaky test] skip register cache test on XPU by @choijon5 in https://github.com/pytorch/helion/pull/2192 * Add fix-pr skill by @jansel in https://github.com/pytorch/helion/pull/2189 * Add offsets kwarg to hl.rand for explicit Philox offsets by @karthickai in https://github.com/pytorch/helion/pull/2153 * [Pallas] Per-tensor pipelining decision in fori_loop and emit_pipeline by @norx1991 in https://github.com/pytorch/helion/pull/2093 * [cute] Implement associate scan by @oulgen in https://github.com/pytorch/helion/pull/2161 * Add `helion.from_cache()` for FiniteSearch warm-start by @fulvius31 in https://github.com/pytorch/helion/pull/2079 * [cute] Enable test_print by @oulgen in https://github.com/pytorch/helion/pull/2186 * [BoundKernel] added _normalize_config by @hinriksnaer in https://github.com/pytorch/helion/pull/2152 * [cutedsl] Improve CuTe tcgen05 matmul autotuning and direct-store epilogues by @jansel in https://github.com/pytorch/helion/pull/2168 * [cutedsl] Compile CuTe launchers once and harden regression coverage by @jansel in https://github.com/pytorch/helion/pull/2169 * [cutedsl] track tcgen05 per-tile setup and register split by @jansel in https://github.com/pytorch/helion/pull/2170 * [cutedsl] add autotune wall-time budget by @jansel in https://github.com/pytorch/helion/pull/2171 * [cutedsl] split tcgen05 persistent post-loop cleanup by @jansel in https://github.com/pytorch/helion/pull/2172 * [cutedsl] prune dead tcgen05 role scaffolding by @jansel in https://github.com/pytorch/helion/pull/2173 * [cutedsl] simplify tcgen05 layout plan by @jansel in https://github.com/pytorch/helion/pull/2174 * [cutedsl] guard tcgen05 persistent multi-tile at runtime by @jansel in https://github.com/pytorch/helion/pull/2193 * Fix flash attention benchmark CI by @choijon5 in https://github.com/pytorch/helion/pull/2207 * [cute] enable test unroll tuples by @oulgen in https://github.com/pytorch/helion/pull/2187 * [HostFunction] Extract `_parse_source` from `Hostfunction.__init__` by @hinriksnaer in https://github.com/pytorch/helion/pull/2154 * Dashboard: latency-as-default-graph, noise muting, platform sync, color fixes by @choijon5 in https://github.com/pytorch/helion/pull/2208 * [cutedsl] split tcgen05 persistent setup into layout + prelude + tile body by @jansel in https://github.com/pytorch/helion/pull/2194 * [cutedsl] add tcgen05 persistent role-block scaffolding + TMA-load tagging by @jansel in https://github.com/pytorch/helion/pull/2195 * [cutedsl] split tcgen05 per-K-iter TMA producer/consumer block by @jansel in https://github.com/pytorch/helion/pull/2196 * [cutedsl] recurse partitioner into K-loop body for tcgen05 TMA producer by @jansel in https://github.com/pytorch/helion/pull/2197 * [cutedsl] split tcgen05 per-K-iter TMA builders into named helpers by @jansel in https://github.com/pytorch/helion/pull/2198 * [cutedsl] split tcgen05 initial-prefetch IF emission into AST helper by @jansel in https://github.com/pytorch/helion/pull/2199 * [cutedsl] dedupe tcgen05 codegen test mocks via _testing helpers by @jansel in https://github.com/pytorch/helion/pull/2200 * [cutedsl] extract tcgen05 multi-tile guard var/message into class constants by @jansel in https://github.com/pytorch/helion/pull/2201 * [cutedsl] consolidate cute reduction branches and tcgen05 autotune narrowing by @jansel in https://github.com/pytorch/helion/pull/2202 * [cutedsl] extract _count_rdim_axes_in_val helper in roll_reduction by @jansel in https://github.com/pytorch/helion/pull/2203 * [cutedsl] narrow tcgen05_num_epi_warps autotune to (4,) to avoid wrong output by @jansel in https://github.com/pytorch/helion/pull/2204 * [cutedsl] reject tcgen05_num_epi_warps != 4 at codegen + diagnose root cause by @jansel in https://github.com/pytorch/helion/pull/2205 * [cutedsl] add tcgen05 role-local-while builder infrastructure (3b-prep-4) by @jansel in https://github.com/pytorch/helion/pull/2206 * Add missing onlyBackends([cute]) by @jansel in https://github.com/pytorch/helion/pull/2219 * [cute] Enable test_indexing by @oulgen in https://github.com/pytorch/helion/pull/2210 * [cute] Add basic autotuning capabilities by @oulgen in https://github.com/pytorch/helion/pull/2221 * [Pallas] Use exprs from AST instead of SymPy exprs when generating loop bounds by @AmesingFlank in https://github.com/pytorch/helion/pull/2211 * [Pallas] When there are data-dependent loop bounds, also use fori_loop instead of unroll by @AmesingFlank in https://github.com/pytorch/helion/pull/2212 * [Pallas] Fix out-of-bound DMA caused by tiles from non-zero begins by @AmesingFlank in https://github.com/pytorch/helion/pull/2213 * [Pallas] Apply tile masks at load time to zero out-of-bounds data by @AmesingFlank in https://github.com/pytorch/helion/pull/2214 * Temporarily disable XPU CI by @jansel in https://github.com/pytorch/helion/pull/2270 * Support HELION_AUTOTUNE_EFFORT=none HELION_FORCE_AUTOTUNE=1 by @oulgen in https://github.com/pytorch/helion/pull/2265 * Retry more flakey job types by @jansel in https://github.com/pytorch/helion/pull/2269 * [cutedsl] split persistent tma producer role by @jansel in https://github.com/pytorch/helion/pull/2224 * [cutedsl] split persistent mma exec role by @jansel in https://github.com/pytorch/helion/pull/2225 * [cutedsl] split persistent epi role by @jansel in https://github.com/pytorch/helion/pull/2226 * [cutedsl] validate tcgen05 persistent z-grid by @jansel in https://github.com/pytorch/helion/pull/2227 * [AOT] Suppress heuristic cache hit messages by default by @choijon5 in https://github.com/pytorch/helion/pull/2220 * [Pallas] Fix DMA scratch buffer offset bug in nested fori_loop codegen by @AmesingFlank in https://github.com/pytorch/helion/pull/2217 * [Pallas] Fix scratch Ref scoping bug in fori_loop/emit_pipeline codegen by @AmesingFlank in https://github.com/pytorch/helion/pull/2215 * [cutedsl] restore scoped persistent pid autotune by @jansel in https://github.com/pytorch/helion/pull/2228 * [cutedsl] Add flat tcgen05 TMA store epilogue by @jansel in https://github.com/pytorch/helion/pull/2229 * [cutedsl] Add persistent tcgen05 TMA store epilogue by @jansel in https://github.com/pytorch/helion/pull/2230 * [cutedsl] Close out tcgen05 TMA store acquire ordering by @jansel in https://github.com/pytorch/helion/pull/2231 * [cutedsl] add guarded CtaGroup.TWO structural codegen by @jansel in https://github.com/pytorch/helion/pull/2232 * [cutedsl] align two-CTA AB pipeline ownership by @jansel in https://github.com/pytorch/helion/pull/2233 * [cutedsl] align two-CTA TMEM setup ordering by @jansel in https://github.com/pytorch/helion/pull/2234 * [cutedsl] align two-CTA scheduler publication by @jansel in https://github.com/pytorch/helion/pull/2235 * [cutedsl] advance guarded two-CTA role-local codegen by @jansel in https://github.com/pytorch/helion/pull/2236 * [cutedsl] omit two-cta shared scheduler loop by @jansel in https://github.com/pytorch/helion/pull/2237 * [cutedsl] Guard tcgen05 omit-shared scalar setup by @jansel in https://github.com/pytorch/helion/pull/2238 * [cutedsl] Adjust two-CTA TMEM teardown by @jansel in https://github.com/pytorch/helion/pull/2239 * [cutedsl] split tma tail capability check by @jansel in https://github.com/pytorch/helion/pull/2240 * Fix tensor descriptor silent fallback for scalar SymInt subscripts by @ethche in https://github.com/pytorch/helion/pull/2222 * [cutedsl] defer two-cta pipeline constructor sync by @jansel in https://github.com/pytorch/helion/pull/2241 * [cutedsl] validate single-tile two-cta runtime by @jansel in https://github.com/pytorch/helion/pull/2242 * [cutedsl] admit non-recycling two-cta tiles by @jansel in https://github.com/pytorch/helion/pull/2243 * [cutedsl] validate shallow-k two-cta direct grid by @jansel in https://github.com/pytorch/helion/pull/2244 * [cutedsl] validate long-k two-cta direct grid by @jansel in https://github.com/pytorch/helion/pull/2245 * [cutedsl] enable CtaGroup.TWO TMA-store epilogue by @jansel in https://github.com/pytorch/helion/pull/2246 * [cutedsl] elide CtaGroup.TWO role schedulers by @jansel in https://github.com/pytorch/helion/pull/2247 * [cutedsl] restore two-cta scheduler recycling by @jansel in https://github.com/pytorch/helion/pull/2248 * Skip grid td xpu by @ethche in https://github.com/pytorch/helion/pull/2275 * [cutedsl] re-enable two-cta autotune search by @jansel in https://github.com/pytorch/helion/pull/2249 * [cutedsl] seed two-cta autotune search by @jansel in https://github.com/pytorch/helion/pull/2250 * [cutedsl] prune two-cta autotune failures by @jansel in https://github.com/pytorch/helion/pull/2251 * [cutedsl] seed two-cta l2 grouping by @jansel in https://github.com/pytorch/helion/pull/2252 * [cutedsl] seed two-cta tensor indexing by @jansel in https://github.com/pytorch/helion/pull/2253 * [cutedsl] trim tcgen05 epilogue barrier by @jansel in https://github.com/pytorch/helion/pull/2255 * [cutedsl] add two-cta pdl markers by @jansel in https://github.com/pytorch/helion/pull/2258 * Temporarily disable pallas CI until upstream torch_tpu is fixed by @jansel in https://github.com/pytorch/helion/pull/2281 * TPU CI: Use PyTorch nightly from 20260502 instead of most recent nightly to unblock CI by @AmesingFlank in https://github.com/pytorch/helion/pull/2298 * [Pallas] Cast bool masks to float before expanding in _mask_to codegen by @AmesingFlank in https://github.com/pytorch/helion/pull/2216 * [Pallas] Skip fp32 fallback for unary transcendentals on TPU by @norx1991 in https://github.com/pytorch/helion/pull/2268 * [Pallas] Add xfail tests for BMM with non-zero K begin by @norx1991 in https://github.com/pytorch/helion/pull/2271 * [Pallas] Fix pre-broadcasting transformation bug when non-broadcast dims exceed PRE_BROADCAST_SIZE by @AmesingFlank in https://github.com/pytorch/helion/pull/2223 * [Pallas] Lower hl.zeros / hl.full to plain jnp.full by @norx1991 in https://github.com/pytorch/helion/pull/2278 * [Pallas] Fix failing scratch shapes asserts due to land-time race when #2278 caused scratch shapes to be re-ordered by @AmesingFlank in https://github.com/pytorch/helion/pull/2302 * [language] Add hl.rand4x for 4-output Philox RNG by @karthickai in https://github.com/pytorch/helion/pull/2283 * Fix failing cutlass lints by @AmesingFlank in https://github.com/pytorch/helion/pull/2303 * [xpu] Disable proton build for XPU by @Stonepia in https://github.com/pytorch/helion/pull/2300 * [Pallas] Use dot_general instead of matmul for Pallas codegen by @AmesingFlank in https://github.com/pytorch/helion/pull/2299 * [Autotuner] Enable autotuner seed configs by @ethche in https://github.com/pytorch/helion/pull/2276 * update torch_tpu pin to a1ef0dd7fa2ffb730995e31953d1b5d316226c96 by @cota in https://github.com/pytorch/helion/pull/2316 * TPU CI: Restore to using latest nightly pytorch by @AmesingFlank in https://github.com/pytorch/helion/pull/2320 * [Pallas] Use jax_export_ignore_forward_compatibility=True when exporting JaxCallable, improving attention perf by @AmesingFlank in https://github.com/pytorch/helion/pull/2323 * [Pallas] Make pallas_pre_broadcast a tunable autotune fragment by @norx1991 in https://github.com/pytorch/helion/pull/2324 * Fix cute CI failures by @jansel in https://github.com/pytorch/helion/pull/2325 * [cute] Pin to official 4.5.0 by @oulgen in https://github.com/pytorch/helion/pull/2326 * [Pallas] Integrate TPU benchmarks into Benchmark Dispatch + dashboard by @norx1991 in https://github.com/pytorch/helion/pull/1913 * remove obsolete _init_tpu_device helper by @thcmbs in https://github.com/pytorch/helion/pull/2319 * Enable cute for error tests by @oulgen in https://github.com/pytorch/helion/pull/2339 * [cutedsl] fix race in scalar store with full-slice subscript by @jansel in https://github.com/pytorch/helion/pull/2327 * [cutedsl] reorder and hoist tcgen05 C-store epilogue by @jansel in https://github.com/pytorch/helion/pull/2328 * [cutedsl] prefetch tcgen05 consumer token, reset UMMA accumulate per tile, seed pid order by @jansel in https://github.com/pytorch/helion/pull/2329 * [cutedsl] add tcgen05 C-store / acc-wait / skip-UMMA / cubin-lineinfo diagnostic knobs by @jansel in https://github.com/pytorch/helion/pull/2330 * [cutedsl] add tcgen05 split-first and store-tail T2R epilogue diagnostics by @jansel in https://github.com/pytorch/helion/pull/2331 * [cutedsl] add tcgen05 module-helper T2R epilogue diagnostics by @jansel in https://github.com/pytorch/helion/pull/2332 * [cutedsl] add tcgen05 role-local bridge codegen and tests by @jansel in https://github.com/pytorch/helion/pull/2333 * [cutedsl] add tcgen05 role-local bridge pipeline, TMA mask, and ownership by @jansel in https://github.com/pytorch/helion/pull/2334 * [cutedsl] add tcgen05 bridge AB acc-advance and acquire diagnostics by @jansel in https://github.com/pytorch/helion/pull/2335 * [cutedsl] add tcgen05 bridge AB wait, phase, and initial-acquire diagnostics by @jansel in https://github.com/pytorch/helion/pull/2336 * [cutedsl] add tcgen05 larger-BN codegen test by @jansel in https://github.com/pytorch/helion/pull/2337 * Enable cute for int64 indexing tests by @oulgen in https://github.com/pytorch/helion/pull/2340 * Enable cute for cache tests by @oulgen in https://github.com/pytorch/helion/pull/2341 * Enable cute for autotune tests by @oulgen in https://github.com/pytorch/helion/pull/2342 * Add reduction support to helion autodiff by @karthickai in https://github.com/pytorch/helion/pull/1747 * Dashboard: only nightly runs populate Overview; manual dispatches stay in Compare by @choijon5 in https://github.com/pytorch/helion/pull/2355 * [Pallas] Don't pipeline tensors read or written outside the inner loop by @norx1991 in https://github.com/pytorch/helion/pull/2284 * [tutorials] pretuned Helion examples by @choijon5 in https://github.com/pytorch/helion/pull/2209 * [docs] Add AOT autotuning documentation by @choijon5 in https://github.com/pytorch/helion/pull/2274 * Enable cute for stack tensor tests by @oulgen in https://github.com/pytorch/helion/pull/2349 * Enable cute for jagged tile tests by @oulgen in https://github.com/pytorch/helion/pull/2350 * Enable cute for epilogue subtiling tests by @oulgen in https://github.com/pytorch/helion/pull/2352 * [Pallas] Align TPU kernel names with GPU dashboard + add compile-time measurement by @norx1991 in https://github.com/pytorch/helion/pull/2354 * [runtime:pallas] consolidate pallas_aliases computation in _pallas_prepare_args by @cota in https://github.com/pytorch/helion/pull/2348 * [docs] Fix broken tutorials/ links in AOT autotuning doc by @norx1991 in https://github.com/pytorch/helion/pull/2358 * Enable tensor_descriptor for static_shapes = False by @ethche in https://github.com/pytorch/helion/pull/2356 * [compile] Introduce KernelCompiler for pipeline orchestration by @hinriksnaer in https://github.com/pytorch/helion/pull/2267 * [Pallas] Default pallas_loop_type to emit_pipeline by @norx1991 in https://github.com/pytorch/helion/pull/2321 * ci: bump TPU jax/jaxlib pin to 0.10.0 by @thcmbs in https://github.com/pytorch/helion/pull/2361 * Dashboard: fix nightly detection and restrict Overview to main branch by @choijon5 in https://github.com/pytorch/helion/pull/2363 * Dashboard: add geomean footer rows to Speedup and Compare tables by @choijon5 in https://github.com/pytorch/helion/pull/2364 * [compile] Add create_reduction_strategy() and adjust_reduction_thread_count to Backend by @hinriksnaer in https://github.com/pytorch/helion/pull/2318 * Dashboard: don't flag manual-only kernels as infra_missing by @norx1991 in https://github.com/pytorch/helion/pull/2366 * Support lowering `torch.bmm(..., dtype=)`, use it for attention to avoid redundant fp32 -> fp16 -> fp32 roundtrip by @AmesingFlank in https://github.com/pytorch/helion/pull/2365 * [cute] Generalize sythetic lane loops and loop-carried accumulator checks by @hinriksnaer in https://github.com/pytorch/helion/pull/2347 * [Pallas] Make per-tile element cap a backend hook, disable for Pallas by @norx1991 in https://github.com/pytorch/helion/pull/2282 * [Pallas] Add larger shapes for attention and matmul_layernorm benchmarks by @norx1991 in https://github.com/pytorch/helion/pull/2368 * Docs: merge AOT Autotuning into Deployment guide; list pretuned kernels under examples. by @choijon5 in https://github.com/pytorch/helion/pull/2369 * Relax RMS pretuned kernel perf wins gate by @choijon5 in https://github.com/pytorch/helion/pull/2371 * [Bechmarking] Default to benchmark subprocess by @choijon5 in https://github.com/pytorch/helion/pull/2372 * [Autotuner] Clear Triton JIT fast-path caches after benchmarks by @ethche in https://github.com/pytorch/helion/pull/2367 * Support dynamic TD guards for container tensors by @ethche in https://github.com/pytorch/helion/pull/2370 * Increase effort for autoreview by @jansel in https://github.com/pytorch/helion/pull/2375 * [Dashboard] Use paired geomeans in comparisons by @choijon5 in https://github.com/pytorch/helion/pull/2376 * update torch_tpu pin to 104763049fe1df6834605fed1cd2b79434ea02d5 by @cota in https://github.com/pytorch/helion/pull/2362 * Use HALF_DTYPE in epilogue subtiling example by @thcmbs in https://github.com/pytorch/helion/pull/2343 * Relax test_pretuned_kernels.py targets by @jansel in https://github.com/pytorch/helion/pull/2379 * [pallas] remove remaining torch_tpu.api usage by @cota in https://github.com/pytorch/helion/pull/2345 * rms_norm: save inv_rms in fp32 to fix bf16 backward by @thcmbs in https://github.com/pytorch/helion/pull/2273 * [cutedsl] Add Tcgen05Strategy/WarpSpec data model and config keys by @jansel in https://github.com/pytorch/helion/pull/2380 * [cutedsl] Drive matmul warp roles from generated warp-spec records by @jansel in https://github.com/pytorch/helion/pull/2381 * [cutedsl] Implement ROLE_LOCAL_WITH_SCHEDULER matmul strategy by @jansel in https://github.com/pytorch/helion/pull/2382 * [cutedsl] Pin output dtype on matmul plan for epilogue tile shape by @jansel in https://github.com/pytorch/helion/pull/2383 * [cutedsl] Add CLC-persistent tile scheduler for matmul by @jansel in https://github.com/pytorch/helion/pull/2384 * [cutedsl] Support cluster_n=2 in matmul lowering by @jansel in https://github.com/pytorch/helion/pull/2385 * [cutedsl] Add unary epilogue chain analyzer and splicing by @jansel in https://github.com/pytorch/helion/pull/2386 * [cutedsl] Fuse auxiliary tensor loads in epilogue chains by @jansel in https://github.com/pytorch/helion/pull/2387 * [cutedsl] Enable cluster_n=2 under role-local scheduler by @jansel in https://github.com/pytorch/helion/pull/2388 * [cutedsl] Gate cluster_m=2 search by wave quantization and broaden epi-fusion shapes by @jansel in https://github.com/pytorch/helion/pull/2389 * [cutedsl] Add A/B SMEM and L2 scheduler swizzle controls by @jansel in https://github.com/pytorch/helion/pull/2390 * Add _gelu_tanh_approx op by @jansel in https://github.com/pytorch/helion/pull/2391 * [Autotuner] Confirm suspicious subprocess timings by @choijon5 in https://github.com/pytorch/helion/pull/2377 * Attention Perf: Multiply Q in-loop to avoid memory spillage by @AmesingFlank in https://github.com/pytorch/helion/pull/2373 * Attention Perf: Transpose blocked K right before QK instead of pre-transposing before the kernel by @AmesingFlank in https://github.com/pytorch/helion/pull/2374 * [compiler][autotuner] Autotuner heuristics by @ethche in https://github.com/pytorch/helion/pull/2392 * [compile] Remove unused device_load_count by @hinriksnaer in https://github.com/pytorch/helion/pull/2395 * [compile] Eliminate two-phase initialization of HostFunction by @hinriksnaer in https://github.com/pytorch/helion/pull/2396 * Avoid dynamic shape recompiles for 0/1 tensor dimensions by @oulgen in https://github.com/pytorch/helion/pull/2353 * Add Claude Code workflow by @choijon5 in https://github.com/pytorch/helion/pull/2412 * [XPU] Disable torch.compile fusion to unblock Inductor range-symbol failures by @karthickai in https://github.com/pytorch/helion/pull/2413 * Skip unsupported fbcode and MTIA RNG tests by @choijon5 in https://github.com/pytorch/helion/pull/2414 * [cutedsl] gate tcgen05_ab_stages=3 search behind per-CTA SMEM budget by @jansel in https://github.com/pytorch/helion/pull/2400 * [cutedsl] add autotune sweep harness for CuTe examples by @jansel in https://github.com/pytorch/helion/pull/2401 * [cutedsl] fix universal-MMA lane-loop and grid codegen guards by @jansel in https://github.com/pytorch/helion/pull/2402 * [autotuner] make initial-population benchmark phase budget-aware by @jansel in https://github.com/pytorch/helion/pull/2403 * [cutedsl] predicate atomic ops on CTA-resident ghost axes by @jansel in https://github.com/pytorch/helion/pull/2404 * [cutedsl] widen c_input_warps and loop_orders autotune surface by @jansel in https://github.com/pytorch/helion/pull/2405 * [cutedsl] discover aux-tensor descriptors at tcgen05 MMA codegen by @jansel in https://github.com/pytorch/helion/pull/2406 * [cutedsl] emit c-input warp role-local while for residual scheduling by @jansel in https://github.com/pytorch/helion/pull/2407 * [cutedsl] allocate c-input warp aux pipeline without producer barrier ops by @jansel in https://github.com/pytorch/helion/pull/2408 * [cutedsl] fuse c-input warp aux prefetch into smem ring by @jansel in https://github.com/pytorch/helion/pull/2409 * [cutedsl] widen autotune surface for c_input warp on residual kernels by @jansel in https://github.com/pytorch/helion/pull/2410 * [cutedsl] fix c_input warp aux tile coords for cluster + l2_groupings by @jansel in https://github.com/pytorch/helion/pull/2411 * RoPE kernel by @ethche in https://github.com/pytorch/helion/pull/2415 * Add RoPE to nightly GPU benchmarks by @choijon5 in https://github.com/pytorch/helion/pull/2419 * Add Mamba2 and GDN to nightly GPU benchmarks by @choijon5 in https://github.com/pytorch/helion/pull/2424 * [compile] Add DeviceFunction.resolved_block_size(block_id) helper by @hinriksnaer in https://github.com/pytorch/helion/pull/2418 * Fix perf dashboard for newly added examples by @choijon5 in https://github.com/pytorch/helion/pull/2434 * Add RemoteCacheBackend ABC for pluggable remote autotune caching by @fulvius31 in https://github.com/pytorch/helion/pull/2317 * Add CuTe NVFP4 GEMV example by @oulgen in https://github.com/pytorch/helion/pull/2433 * [test/cute] use env directly in _get_mma_k_loop_info for block size resolution by @hinriksnaer in https://github.com/pytorch/helion/pull/2444 * Infer CuTe NVFP4 conversions from dtypes by @oulgen in https://github.com/pytorch/helion/pull/2437 * torch_tpu: update pin to 157713848ac0a510eb3a057c550861d999d4ec93 by @cota in https://github.com/pytorch/helion/pull/2438 * Fixing the stale global memory read for AMD GPUs. by @umechand-amd in https://github.com/pytorch/helion/pull/1845 * Make Triton do_not_specialize opt-in by @choijon5 in https://github.com/pytorch/helion/pull/2426 * [metal] eliminate trivial stride-1 multiplication in MSL codegen by @hinriksnaer in https://github.com/pytorch/helion/pull/2432 * [metal] use array subscript syntax for MSL memory access by @hinriksnaer in https://github.com/pytorch/helion/pull/2441 * [metal] format MSL signature with one parameter per line by @hinriksnaer in https://github.com/pytorch/helion/pull/2442 * Fix B200 benchmark CI failures by @choijon5 in https://github.com/pytorch/helion/pull/2455 * [Pallas] Add fused_linear_jsd and grpo_loss to TPU benchmark sweep by @norx1991 in https://github.com/pytorch/helion/pull/2421 * [Pallas] Accept kernels_tpu='all' for full-coverage TPU bench by @norx1991 in https://github.com/pytorch/helion/pull/2459 * Limit A10G CI pytest workers to two by @choijon5 in https://github.com/pytorch/helion/pull/2457 * Enable cudagraph for running examples by @choijon5 in https://github.com/pytorch/helion/pull/2461 * Skip pretuned kernel perf gating in fbcode by @choijon5 in https://github.com/pytorch/helion/pull/2463 * Optimize nvfp4 CuTe perf paths by @oulgen in https://github.com/pytorch/helion/pull/2462 * ci: declare workflow-level `contents: read` on 3 workflows by @arpitjain099 in https://github.com/pytorch/helion/pull/2460 * [Autotuner] LLM search: effort_level knob + Anthropic adaptive thinking + OpenAI xhigh by @choijon5 in https://github.com/pytorch/helion/pull/2446 * [Autotuner] LLM search: Anthropic Opus 4.6/4.7 fast mode by @choijon5 in https://github.com/pytorch/helion/pull/2450 * [Autotuner] LLM search: fail loudly + mTLS gateway compatibility by @choijon5 in https://github.com/pytorch/helion/pull/2448 * [Examples] rope: print benchmark table via run_example by @choijon5 in https://github.com/pytorch/helion/pull/2451 * [Autotuner] LLM prompt: diversify num_stages/num_warps in seed batch by @choijon5 in https://github.com/pytorch/helion/pull/2465 * Add H100 (sm90) pretuned heuristics and perf gates by @choijon5 in https://github.com/pytorch/helion/pull/2454 * Add Cute benchmark by @oulgen in https://github.com/pytorch/helion/pull/2466 * [cache] Wire from_best_available / from_cache to RemoteCacheBackend by @fulvius31 in https://github.com/pytorch/helion/pull/2453 * [Pallas] Add epilogue_subtiling to TPU benchmark sweep by @norx1991 in https://github.com/pytorch/helion/pull/2458 * Fix rope-bwd cudagraph crash and tighten gdn_fwd_h accuracy gate by @choijon5 in https://github.com/pytorch/helion/pull/2467 * [Pallas] Slice store values to match clamped Pallas BlockSpec ref shape by @thcmbs in https://github.com/pytorch/helion/pull/2398 * # PR Summary: Support reductions under branch-by-grid control flow by @yushangdi in https://github.com/pytorch/helion/pull/2480 * Restore TF32 backend state by @yushangdi in https://github.com/pytorch/helion/pull/2482 * [Pallas] Add kl_div to TPU benchmark sweep and dashboard by @norx1991 in https://github.com/pytorch/helion/pull/2484 * Fix nightly perf CI by @choijon5 in https://github.com/pytorch/helion/pull/2476 * torch_tpu: update pin to 3fb6cdbd96180e69df2233db51089656b230e6b6 by @cota in https://github.com/pytorch/helion/pull/2474 * [docs] Document remote autotune cache and warm-start behavior by @fulvius31 in https://github.com/pytorch/helion/pull/2475 * [CI fix] Raise benchmark subprocess timeout to 90s in fbcode by @choijon5 in https://github.com/pytorch/helion/pull/2487 * Factor-out a bit of common logic for finding return names of if and else branches by @AmesingFlank in https://github.com/pytorch/helion/pull/2486 * [Pallas] Add FP8 dtype mappings to torch-to-JAX table by @thcmbs in https://github.com/pytorch/helion/pull/2489 * [Pallas] sympy mod printer by @thcmbs in https://github.com/pytorch/helion/pull/2490 * Fix keepdim scalar reduction reshape in Triton codegen by @yushangdi in https://github.com/pytorch/helion/pull/2483 * [Pallas] Add test for fused_linear_jsd_fwd autograd path by @norx1991 in https://github.com/pytorch/helion/pull/2456 * Only include common outputs as outputs of traced if subgraph by @AmesingFlank in https://github.com/pytorch/helion/pull/2485 * [dashboard] Suppress 'No Result' for kernels removed from workflow defaults by @choijon5 in https://github.com/pytorch/helion/pull/2492 * [Pallas] Add a helion setting for pallas interpret mode by @AmesingFlank in https://github.com/pytorch/helion/pull/2522 * [Pallas] Render outer_prefix for emit_pipeline and fori_loop scopes by @norx1991 in https://github.com/pytorch/helion/pull/2496 * [Pallas] Thread pallas_interpret through runtime launchers by @AmesingFlank in https://github.com/pytorch/helion/pull/2524 * [Pallas] Disable factory padding and preserve concrete dims by @thcmbs in https://github.com/pytorch/helion/pull/2477 * [Pallas] Support tile.index broadcast indexing in load codegen by @norx1991 in https://github.com/pytorch/helion/pull/2532 * [Pallas] Make Pallas interpret mode honor TPU constraints by @norx1991 in https://github.com/pytorch/helion/pull/2525 * [Pallas] Route meta output-only tensors to CPU under interpret by @norx1991 in https://github.com/pytorch/helion/pull/2526 ## New Contributors * @allgather made their first contribution in https://github.com/pytorch/helion/pull/1994 * @svdrecbd made their first contribution in https://github.com/pytorch/helion/pull/1885 * @Hamlin-Li made their first contribution in https://github.com/pytorch/helion/pull/1996 * @yarongmu-google made their first contribution in https://github.com/pytorch/helion/pull/2024 * @will-cromar made their first contribution in https://github.com/pytorch/helion/pull/2030 * @Bodlux made their first contribution in https://github.com/pytorch/helion/pull/2036 * @xiaohongchen1991 made their first contribution in https://github.com/pytorch/helion/pull/2042 * @chuanqi129 made their first contribution in https://github.com/pytorch/helion/pull/1327 * @stmcgovern made their first contribution in https://github.com/pytorch/helion/pull/2177 * @arpitjain099 made their first contribution in https://github.com/pytorch/helion/pull/2460 **Full Changelog**: https://github.com/pytorch/helion/compare/v1.0.0...v1.1.0

v0.3.2
? · 2026-03-13

## What's Changed * [pallas-tpu] Enable test_geglu, test_swiglu on Pallas; fix softmax/kl_div/gdn xfails by @v0i0 in https://github.com/pytorch/helion/pull/1637 * [pallas-tpu] make dot work: use jnp.matmul and f32 accumulator by @v0i0 in https://github.com/pytorch/helion/pull/1647 * [pallas-tpu] Enable broadcasting and control flow tests for Pallas backend by @v0i0 in https://github.com/pytorch/helion/pull/1643 * Use ephemeral Triton cache during autotuning to eliminate loser artifacts by @fulvius31 in https://github.com/pytorch/helion/pull/1649 * Try public bazel cache for torch_tpu build by @v0i0 in https://github.com/pytorch/helion/pull/1658 * fix cudagraph grouped gemm fail in benchmarks by @v0i0 in https://github.com/pytorch/helion/pull/1662 * Use matmul fwd direclty in autograd for performance by @tianrengao in https://github.com/pytorch/helion/pull/1045 * Recreate foreign SymInts in helion's own ShapeEnv by @gmagogsfm in https://github.com/pytorch/helion/pull/1671 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.3.1...v0.3.2

v0.3.1
? · 2026-03-12

## What's Changed * [Autotuner] Use chunked comparison in autotuner accuracy checks to reduce peak memory by @yf225 in https://github.com/pytorch/helion/pull/1538 * one_shot_allreduce_bias_rmsnorm: alloc&rendezvous symm memory only once by @shunting314 in https://github.com/pytorch/helion/pull/1525 * Add Horace as Core Maintainer by @oulgen in https://github.com/pytorch/helion/pull/1552 * add two-shot all redcue rms norm kernel by @shunting314 in https://github.com/pytorch/helion/pull/1526 * Update bazel build command to use remote caching by @malfet in https://github.com/pytorch/helion/pull/1550 * Add BlockSpec support and proper indexing to Pallas launcher by @oulgen in https://github.com/pytorch/helion/pull/1548 * Add Pallas codegen for prims.iota by @oulgen in https://github.com/pytorch/helion/pull/1556 * [CI] Fix AMD error on `test_default_block_sizes_high_dim_with_reduction` by @yf225 in https://github.com/pytorch/helion/pull/1546 * [Autotuner] Eliminate `self._original_args` clone to reduce peak memory by @yf225 in https://github.com/pytorch/helion/pull/1547 * sync bench/rebench result across ranks by @shunting314 in https://github.com/pytorch/helion/pull/1542 * Skip failing test on MTIA by @Myrthan in https://github.com/pytorch/helion/pull/1558 * [Cache] Defer some initialization in autotuner to skip unnecessary work on cache hits by @fulvius31 in https://github.com/pytorch/helion/pull/1557 * Enable Pallas backend for test_control_flow with lax.cond by @oulgen in https://github.com/pytorch/helion/pull/1554 * Add Pallas atomic ops -- everything is atomic by default by @oulgen in https://github.com/pytorch/helion/pull/1560 * Add Pallas emit_pipeline by @oulgen in https://github.com/pytorch/helion/pull/1561 * Move do_bench/sync_object from _testing to autotuner/benchmarking to fix docs build by @oulgen in https://github.com/pytorch/helion/pull/1562 * Improve launcher overhead by @oulgen in https://github.com/pytorch/helion/pull/1563 * fix mock in debug utils - hopefully make ci less flaky by @v0i0 in https://github.com/pytorch/helion/pull/1568 * fix fp8 autotuner fail for ci by @v0i0 in https://github.com/pytorch/helion/pull/1569 * fix some indexing by @v0i0 in https://github.com/pytorch/helion/pull/1453 * [chore](deps): Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in https://github.com/pytorch/helion/pull/1579 * [chore](deps): Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in https://github.com/pytorch/helion/pull/1580 * Build TorchTPU in opt mode by @oulgen in https://github.com/pytorch/helion/pull/1573 * Add Pallas fori_loop with async DMA and pallas_loop_type config by @oulgen in https://github.com/pytorch/helion/pull/1574 * Enable waves_per_eu tunable on RDNA GPUs by @fulvius31 in https://github.com/pytorch/helion/pull/1571 * [cutedsl] Cross-warp reductions by @jansel in https://github.com/pytorch/helion/pull/1543 * sync seeds across ranks by @shunting314 in https://github.com/pytorch/helion/pull/1555 * [cutedsl] Add more reduction types by @jansel in https://github.com/pytorch/helion/pull/1565 * [cutedsl] Tuple reductions by @jansel in https://github.com/pytorch/helion/pull/1566 * Fix CPU tests by @jansel in https://github.com/pytorch/helion/pull/1582 * Add Pallas reduction support and enable test_reductions for TPU by @oulgen in https://github.com/pytorch/helion/pull/1549 * Tell AGENTS to not run git push by @oulgen in https://github.com/pytorch/helion/pull/1592 * partition aot tuning by config validity by @v0i0 in https://github.com/pytorch/helion/pull/1581 * bump pytorch to 2.10 in benchmark nightly to unblock grouped_gemm tritonbench by @v0i0 in https://github.com/pytorch/helion/pull/1597 * fix benchmark parsing by @v0i0 in https://github.com/pytorch/helion/pull/1596 * make sure persistent setup code uses index type for total pids by @v0i0 in https://github.com/pytorch/helion/pull/1595 * Fix issue with branching and static_range by @jansel in https://github.com/pytorch/helion/pull/1586 * Update AGENTS.md assertExpectedJournal reference by @jansel in https://github.com/pytorch/helion/pull/1587 * [cutedsl] Enable more test files by @jansel in https://github.com/pytorch/helion/pull/1583 * [cutedsl] Fix issue with sympy printer by @jansel in https://github.com/pytorch/helion/pull/1585 * [Cache] Fix cross-backend cache poisoning by adding backend to cache key by @fulvius31 in https://github.com/pytorch/helion/pull/1593 * [Helion + torch.compile] Add additional inductor fusion tests by @yf225 in https://github.com/pytorch/helion/pull/1594 * [Autotuner] Add FROM_BEST_AVAILABLE initial population strategy by @fulvius31 in https://github.com/pytorch/helion/pull/1365 * Unwrap single-element list in hl.tile() to match scalar behavior by @blake-snc in https://github.com/pytorch/helion/pull/1559 * Enable test_examples by @oulgen in https://github.com/pytorch/helion/pull/1598 * Generalize autotuning infrastructure to support Pallas/TPU backend by @oulgen in https://github.com/pytorch/helion/pull/1591 * Fix symbolic variable specialization when indexing tensor in host block by @yf225 in https://github.com/pytorch/helion/pull/1575 * Add CLAUDE.md as symlink to AGENTS.md by @oulgen in https://github.com/pytorch/helion/pull/1610 * update grouped gemm tb signature by @v0i0 in https://github.com/pytorch/helion/pull/1608 * Update logo and add events for hackathon and PLDI tutorial by @choijon5 in https://github.com/pytorch/helion/pull/1611 * Add claude skill for TPU development by @oulgen in https://github.com/pytorch/helion/pull/1612 * Enable test random and rnd by @oulgen in https://github.com/pytorch/helion/pull/1607 * [Helion + torch.compile] Temporarily skip torch.compile fusion test cases to wait for cross-repo changes by @yf225 in https://github.com/pytorch/helion/pull/1613 * add ci health check (hopefully catches cudaDeviceUnavailable) by @v0i0 in https://github.com/pytorch/helion/pull/1614 * [Helion + torch.compile] Skip test_symint_return_from_tensor_shape temporarily by @yf225 in https://github.com/pytorch/helion/pull/1615 * update rocm in benchmark now that we bumped pytorch by @v0i0 in https://github.com/pytorch/helion/pull/1609 * Remove Triton CPU backend and all CPU references by @oulgen in https://github.com/pytorch/helion/pull/1616 * [Internal CI] Use MTIA-aligned tensor shape in test_tile_single_element_list by @yf225 in https://github.com/pytorch/helion/pull/1618 * Refactor device_ir passes by @jansel in https://github.com/pytorch/helion/pull/1606 * Add @skipIfCudaSharedMemoryLessThan for failing RTX5090 tests by @jansel in https://github.com/pytorch/helion/pull/1617 * another benchmark parsing fix by @v0i0 in https://github.com/pytorch/helion/pull/1621 * Disable forking to fix failing test by @jansel in https://github.com/pytorch/helion/pull/1619 * Support for Advanced Control Files in Autotuner and Configs by @ptorru in https://github.com/pytorch/helion/pull/1576 * Fix scalar tensor indexing crash by @hinriksnaer in https://github.com/pytorch/helion/pull/1620 * [Docs] Update autotuner and TileIR backend documentation by @fulvius31 in https://github.com/pytorch/helion/pull/1600 * benchmarking all_gather_matmul by @shunting314 in https://github.com/pytorch/helion/pull/1605 * Pin H100 nightly and skip flakey pallas test by @jansel in https://github.com/pytorch/helion/pull/1624 * [CI] Relax tolerances in `test_hl_arange_non_power_of_2` by @yf225 in https://github.com/pytorch/helion/pull/1627 * Decrease sizes for test_batch_softmax_block_ptr by @jansel in https://github.com/pytorch/helion/pull/1628 * fix dynamic shapes handling tensor descriptors conservatively by @v0i0 in https://github.com/pytorch/helion/pull/1604 * [Docs] Fix Helion repo link by @choijon5 in https://github.com/pytorch/helion/pull/1629 * Rename Helion Puzzles to Tutorials; fix broken tutorial examples; move to Markdown by @yf225 in https://github.com/pytorch/helion/pull/1631 * fix size hint lint from nightly by @v0i0 in https://github.com/pytorch/helion/pull/1630 * Introduce MTIA autotuning knobs by @kile01 in https://github.com/pytorch/helion/pull/1572 * change to gfx942.1 runner like pytorch, hopefully shorter queue by @v0i0 in https://github.com/pytorch/helion/pull/1632 * Set TRITON_STORE_BINARY_ONLY=1 during autotuning to reduce cache size by @fulvius31 in https://github.com/pytorch/helion/pull/1590 * Enable fast triton sigmoid by @hinriksnaer in https://github.com/pytorch/helion/pull/1564 * Fix fake impl inference with unbacked SymInts by @gmagogsfm in https://github.com/pytorch/helion/pull/1626 * [pallas-tpu] Add HALF_DTYPE constant for backend-portable half-precision tests by @v0i0 in https://github.com/pytorch/helion/pull/1636 * add gpu health check to tests as well by @v0i0 in https://github.com/pytorch/helion/pull/1634 * Properly generate floor division using // for constexpr by @PaulZhang12 in https://github.com/pytorch/helion/pull/1625 * Add --file-header option for custom headers in AOT generated files by @v0i0 in https://github.com/pytorch/helion/pull/1645 * [pallas-tpu] Bump libtpu to 0.0.37, jax/jaxlib to 0.9.1 by @v0i0 in https://github.com/pytorch/helion/pull/1641 * [pallas-tpu] Enable pallas backend for view/reshape tests in test_views.py by @v0i0 in https://github.com/pytorch/helion/pull/1638 * fix a10g lerp nightly error by @v0i0 in https://github.com/pytorch/helion/pull/1652 * [pallas-tpu] remove shape based block specs by @v0i0 in https://github.com/pytorch/helion/pull/1633 * Fix lerp decomp in _make_fx for PyTorch nightly by @v0i0 in https://github.com/pytorch/helion/pull/1653 * [pallas-tpu] Fix BlockSpec regressions from codegen BlockSpecs PR by @v0i0 in https://github.com/pytorch/helion/pull/1656 * aot tuning standalone output by @v0i0 in https://github.com/pytorch/helion/pull/1650 * [pallas-tpu] Enable pallas backend for test_loops.py TestLoops class by @v0i0 in https://github.com/pytorch/helion/pull/1639 * [pallas-tpu] Switch float16 to HALF_DTYPE in examples for TPU compatibility by @v0i0 in https://github.com/pytorch/helion/pull/1648 ## New Contributors * @malfet made their first contribution in https://github.com/pytorch/helion/pull/1550 * @blake-snc made their first contribution in https://github.com/pytorch/helion/pull/1559 * @ptorru made their first contribution in https://github.com/pytorch/helion/pull/1576 * @kile01 made their first contribution in https://github.com/pytorch/helion/pull/1572 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.3.0...v0.3.1

v0.2.10
? · 2026-01-13

## What's Changed * Add examples/split_k_barrier.py to docs by @oulgen in https://github.com/pytorch/helion/pull/1320 * Add list of all events (upcoming and previous) to docs. by @choijon5 in https://github.com/pytorch/helion/pull/1321 * Fix docs event page by @choijon5 in https://github.com/pytorch/helion/pull/1323 * Print output file path by @parsshar-RH in https://github.com/pytorch/helion/pull/1322 * [example] flex attention by @v0i0 in https://github.com/pytorch/helion/pull/764 * Add static shape support to hl.rand and hl.randint by @karthickai in https://github.com/pytorch/helion/pull/1328 * Fix test_jagged_hstu_attn for PyTorch nightly silu decomposition change by @karthickai in https://github.com/pytorch/helion/pull/1329 * [CI] Add normalization for tl.full by @oulgen in https://github.com/pytorch/helion/pull/1333 * Autotune persistent kernels for multi occupancy by @oulgen in https://github.com/pytorch/helion/pull/1307 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.2.9...v0.2.10

v0.2.9
? · 2025-12-31

## What's Changed * Update autotuner.md with LFBO Pattern Search by @ethche in https://github.com/pytorch/helion/pull/1293 * Pin pyrefly to 0.44.0 by @oulgen in https://github.com/pytorch/helion/pull/1313 * [CI] Bump pyrefly to 0.46 by @oulgen in https://github.com/pytorch/helion/pull/1314 * [CI] Bump ruff to 0.14.10 by @oulgen in https://github.com/pytorch/helion/pull/1315 * Update Events with Helion Tutorial at PLDI 2026 by @choijon5 in https://github.com/pytorch/helion/pull/1316 * Incorporate loop iteration variable for rand by @oulgen in https://github.com/pytorch/helion/pull/1310 * Add compile time breakdown by @oulgen in https://github.com/pytorch/helion/pull/1312 * Update pyrefly to 0.46.2 by @rchen152 in https://github.com/pytorch/helion/pull/1317 * Pin pyrefly in lint.yml to 0.46.2. by @rchen152 in https://github.com/pytorch/helion/pull/1318 * settings: normalize HELION_AUTOTUNER parsing by @fulvius31 in https://github.com/pytorch/helion/pull/1308 * Support hl.barrier for mega-kernels by @jansel in https://github.com/pytorch/helion/pull/1151 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.2.8...v0.2.9

v0.2.1
? · 2025-10-26

## What's Changed * No autotuning on block_ptr if tma is available by @PaulZhang12 in https://github.com/pytorch/helion/pull/997 * Add reps for benchmarking stability by @PaulZhang12 in https://github.com/pytorch/helion/pull/999 * Prioritize outermost loop for warp spec by @PaulZhang12 in https://github.com/pytorch/helion/pull/1000 * Add backward pass for softmax kernel by @karthickai in https://github.com/pytorch/helion/pull/744 * Fix linter in softmax by @oulgen in https://github.com/pytorch/helion/pull/1003 * Fix test_examples.expected by @oulgen in https://github.com/pytorch/helion/pull/1002 * Beef up caching tests by @oulgen in https://github.com/pytorch/helion/pull/1001 * Add HELION_ASSERT_CACHE_HIT to debug/explain cache miss by @oulgen in https://github.com/pytorch/helion/pull/1006 * Better error message for calling Helion kernel from another kernel by @yf225 in https://github.com/pytorch/helion/pull/1008 * Assert that we are cache hitting on the CI by @oulgen in https://github.com/pytorch/helion/pull/1007 * Always raise `FailedToUnpackTile` when `for tile_m, tile_d in hl.tile(m, d)` is used by @yf225 in https://github.com/pytorch/helion/pull/1009 * Adding demo for running softmax kernel on Google colab by @choijon5 in https://github.com/pytorch/helion/pull/944 * int4 gemm accurate baselines by @PaulZhang12 in https://github.com/pytorch/helion/pull/1010 * Add sitemap xml by @sekyondaMeta in https://github.com/pytorch/helion/pull/1013 * [helion] backward support for swiglu by @shunting314 in https://github.com/pytorch/helion/pull/756 * Raise informative error when `hl.dot` with 3D inputs have batch dim mismatch by @yf225 in https://github.com/pytorch/helion/pull/1012 * [CI] Fix AMD journal check errors by @yf225 in https://github.com/pytorch/helion/pull/1016 * Support `breakpoint()` in device code when interpret mode is on by @yf225 in https://github.com/pytorch/helion/pull/1020 * Sort requirements file by @oulgen in https://github.com/pytorch/helion/pull/1021 * Better type checking for eviction policies by @oulgen in https://github.com/pytorch/helion/pull/1024 * Bump linter versions by @jansel in https://github.com/pytorch/helion/pull/1018 * Garbage collect expected results by @jansel in https://github.com/pytorch/helion/pull/1017 * Make indexing choice a list by @oulgen in https://github.com/pytorch/helion/pull/1025 * [Docs] Add list of indexing autotuning docs by @oulgen in https://github.com/pytorch/helion/pull/1027 * Make store indexing also individually tunable by @oulgen in https://github.com/pytorch/helion/pull/1028 ## New Contributors * @shunting314 made their first contribution in https://github.com/pytorch/helion/pull/756 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.2.0...v0.2.1

v0.1.8
? · 2025-10-15

## What's Changed * fix rmsnorm fwd tritonbench by @v0i0 in https://github.com/pytorch/helion/pull/840 * Update input shapes for example kernels by @yf225 in https://github.com/pytorch/helion/pull/845 * Extend eviction policy tests to all indexing types by @oulgen in https://github.com/pytorch/helion/pull/833 * [Docs] Remove early development warning by @oulgen in https://github.com/pytorch/helion/pull/846 * [Docs] Add link to gpumode discord by @oulgen in https://github.com/pytorch/helion/pull/847 * [Docs] Add PTC promotional material by @oulgen in https://github.com/pytorch/helion/pull/848 * [Benchmark] Add low mem dropout example by @karthickai in https://github.com/pytorch/helion/pull/641 * Update lint.yml by @oulgen in https://github.com/pytorch/helion/pull/854 * Remove `hl.register_reduction_dim` API by @yf225 in https://github.com/pytorch/helion/pull/834 * Error message for boolean masking or torch.nonzero by @yf225 in https://github.com/pytorch/helion/pull/687 * Remove hardcoded `block_size=1` usage in attention kernel example by @yf225 in https://github.com/pytorch/helion/pull/843 * Revert "Update to use the new attribute setting for tf32." by @choijon5 in https://github.com/pytorch/helion/pull/856 * Decrease `num_stages` default from 3 to 2, to avoid shared memory OOM by @yf225 in https://github.com/pytorch/helion/pull/841 * Allow user-defined specialization key by @jansel in https://github.com/pytorch/helion/pull/853 * [Benchmark CI] Use fewer num_inputs for flash_attention to avoid timeout by @yf225 in https://github.com/pytorch/helion/pull/857 * Remove legacy `register_inductor_lowering` code by @yf225 in https://github.com/pytorch/helion/pull/864 * Set setstate/getstate methods to Config by @jansel in https://github.com/pytorch/helion/pull/868 * [doc] Add deployment/autotuning guide by @jansel in https://github.com/pytorch/helion/pull/869 * [Benchmark CI] Use equally-spaced-k mode to sample input shapes by @yf225 in https://github.com/pytorch/helion/pull/861 * Fix sphinx warnings by @jansel in https://github.com/pytorch/helion/pull/871 * Normalize tl.sqrt and libdevice.sqrt for tests by @oulgen in https://github.com/pytorch/helion/pull/866 * [CI] Pin py3.10 and one py3.12 on pytorch2.9 by @oulgen in https://github.com/pytorch/helion/pull/858 * [Docs] Suggest PyTorch 2.9 or above by @oulgen in https://github.com/pytorch/helion/pull/859 * [Benchmark] Pin benchmarks to PyTorch 2.9 by @oulgen in https://github.com/pytorch/helion/pull/860 * Print Triton code when error for easier debugging by @yf225 in https://github.com/pytorch/helion/pull/874 * Terminate autotuning faster if progress is minimal by @oulgen in https://github.com/pytorch/helion/pull/855 * Update README.md by @oulgen in https://github.com/pytorch/helion/pull/877 * [CI] pin b200 to pytorch2.9 by @oulgen in https://github.com/pytorch/helion/pull/878 * [Autotuner] Run CUDA synchronize before / after candidate func call, to surface CUDA errors sooner by @yf225 in https://github.com/pytorch/helion/pull/872 * [Benchmark] bf16 x int16 helion kernel by @karthickai in https://github.com/pytorch/helion/pull/794 * Install git for benchmarks by @oulgen in https://github.com/pytorch/helion/pull/882 * Pin AMD to 6.4.4 by @oulgen in https://github.com/pytorch/helion/pull/883 * Faster int4 gemm by @PaulZhang12 in https://github.com/pytorch/helion/pull/751 * Pin AMD to 6.4.4 by @oulgen in https://github.com/pytorch/helion/pull/881 * Remove PyTorch requirement from deps so that it is easier to install arbitrary version of pytorch by @oulgen in https://github.com/pytorch/helion/pull/879 * [Benchmark CI] Use regular matmul instead of split-k by @yf225 in https://github.com/pytorch/helion/pull/884 * [Benchmark] Use bespoke setup-python action by @oulgen in https://github.com/pytorch/helion/pull/885 * [Benchmark] Drop memory bound kernels and replace them with gemms by @oulgen in https://github.com/pytorch/helion/pull/887 * Add dependabot by @oulgen in https://github.com/pytorch/helion/pull/888 * Update dependabot.yml by @oulgen in https://github.com/pytorch/helion/pull/891 * [chore](deps): Bump actions/setup-python from 5 to 6 by @dependabot[bot] in https://github.com/pytorch/helion/pull/893 * [chore](deps): Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in https://github.com/pytorch/helion/pull/895 * [chore](deps): Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in https://github.com/pytorch/helion/pull/894 * [chore](deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/pytorch/helion/pull/892 * Upgrade ruff==0.14.0 by @jansel in https://github.com/pytorch/helion/pull/889 * [Benchmark CI] grouped_gemm: include input preproc in timing measurement; update gemm backend name mapping by @yf225 in https://github.com/pytorch/helion/pull/898 * [chore](deps): Bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in https://github.com/pytorch/helion/pull/896 * [Benchmark] use logger.exception for process errors by @oulgen in https://github.com/pytorch/helion/pull/902 * [Benchmark CI] Reduce num_inputs for grouped_gemm and gemm benchmarks by @yf225 in https://github.com/pytorch/helion/pull/903 * Query minimum dot size for XPU by @EikanWang in https://github.com/pytorch/helion/pull/900 * Add matmul/addmm bwd examples and add test coverage by @tianrengao in https://github.com/pytorch/helion/pull/748 * [CI] Pin amd to rocm7.0 by @oulgen in https://github.com/pytorch/helion/pull/907 * [Benchmark] Move benchmark kernel sharding to dispatch by @oulgen in https://github.com/pytorch/helion/pull/905 * [Benchmark] Provide a way to pass custom list of kernels by @oulgen in https://github.com/pytorch/helion/pull/906 * [Benchmark CI] Use triton_tutorial_matmul for triton matmul baseline by @yf225 in https://github.com/pytorch/helion/pull/911 * Remove cache around set_triton_allocator by @oulgen in https://github.com/pytorch/helion/pull/912 * Add int4_gemm by @oulgen in https://github.com/pytorch/helion/pull/917 * [chore](deps): Bump actions/github-script from 7 to 8 by @dependabot[bot] in https://github.com/pytorch/helion/pull/916 * Catch missing cudnn error by @jansel in https://github.com/pytorch/helion/pull/873 * Add progress bar for precompiling by @jansel in https://github.com/pytorch/helion/pull/919 * Adding new setting, autotune_effort=[none/quick/full] by @choijon5 in https://github.com/pytorch/helion/pull/913 * Print error message for torch.chunk / torch.unbind to redirect users to hl.split by @yf225 in https://github.com/pytorch/helion/pull/921 * Avoid setting default `--input-sample-mode` to `equally-spaced-k` by @yf225 in https://github.com/pytorch/helion/pull/922 * Remove `triton_helpers.*` usage in lifted device function arguments by @yf225 in https://github.com/pytorch/helion/pull/849 * Set HELION_DEV_LOW_VRAM=1 on a10g CI machines by @yf225 in https://github.com/pytorch/helion/pull/923 * Suggest use of `@helion.kernel(index_dtype=torch.int64)` if index offset is out of bound for int32 by @yf225 in https://github.com/pytorch/helion/pull/850 * Deprecate use_default_config and replace all its uses with autotune_effort by @choijon5 in https://github.com/pytorch/helion/pull/924 * Support `hl.arange()` with non-power-of-2 input by @yf225 in https://github.com/pytorch/helion/pull/862 * Setting up RunLLm AI Chatbot by @sekyondaMeta in https://github.com/pytorch/helion/pull/925 * Generalize examples with the DEVICE variable by @adam-smnk in https://github.com/pytorch/helion/pull/915 * Fix lint error by @jansel in https://github.com/pytorch/helion/pull/926 * Add lint to make sure examples and tests use device=DEVICE by @oulgen in https://github.com/pytorch/helion/pull/929 * Support tile+offset and tensor descriptors by @jansel in https://github.com/pytorch/helion/pull/928 * Fix triton/torch.compile compability issue by @jansel in https://github.com/pytorch/helion/pull/927 * Fix CUDA IMA from combination of unrolling + pipelining by @PaulZhang12 in https://github.com/pytorch/helion/pull/920 * Update the Agent ID by @sekyondaMeta in https://github.com/pytorch/helion/pull/931 * [Benchmark CI] Use `--non-square` flag for gemm by @yf225 in https://github.com/pytorch/helion/pull/938 ## New Contributors * @dependabot[bot] made their first contribution in https://github.com/pytorch/helion/pull/893 * @tianrengao made their first contribution in https://github.com/pytorch/helion/pull/748 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.1.7...v0.1.8

v0.1.6
? · 2025-10-02

## What's Changed * ci: Always auth for benchmarking workflows by @seemethere in https://github.com/pytorch/helion/pull/719 * [Benchmark] jagged_sum kernel and test by @Sibylau in https://github.com/pytorch/helion/pull/676 * Skip default config printing if in ref eager mode by @yf225 in https://github.com/pytorch/helion/pull/721 * [Benchmark CI] Make benchmark runner respect custom CLI args by @yf225 in https://github.com/pytorch/helion/pull/723 * Upgrade rocm CI to 7.0 by @oulgen in https://github.com/pytorch/helion/pull/720 * Add eviction policy argument to tl.load by @oulgen in https://github.com/pytorch/helion/pull/714 * [CI] use complete rocm docker images by @oulgen in https://github.com/pytorch/helion/pull/724 * More inconsistent naming by @oulgen in https://github.com/pytorch/helion/pull/725 * [Benchmark] jagged_layer_norm kernel and test by @Sibylau in https://github.com/pytorch/helion/pull/704 * [Bug fix] Preserve masks on reduction inputs that depend on reduction outputs; fix layer_norm accuracy check failure by @yf225 in https://github.com/pytorch/helion/pull/722 * Support torch.matmul with 3D inputs by @yf225 in https://github.com/pytorch/helion/pull/715 * Slightly improve logs by @angelayi in https://github.com/pytorch/helion/pull/740 * Autotuning Progress Bar by @msaroufim in https://github.com/pytorch/helion/pull/739 * make tritonbench optional in run.py so install works again by @v0i0 in https://github.com/pytorch/helion/pull/746 * fix new factory when size comes from kwargs by @v0i0 in https://github.com/pytorch/helion/pull/750 * Add linting instructions to README by @msaroufim in https://github.com/pytorch/helion/pull/763 * Add backward kernel for exp by @aditvenk in https://github.com/pytorch/helion/pull/736 * fix roll reduction meta when for ops with none output (like wait), cl… by @v0i0 in https://github.com/pytorch/helion/pull/767 * Move upload benchmark results to a separate workflows by @huydhn in https://github.com/pytorch/helion/pull/758 * Add flash_attention to benchmarks by @oulgen in https://github.com/pytorch/helion/pull/769 * Fix jagged_layer_norm linter error by @yf225 in https://github.com/pytorch/helion/pull/770 * Add SIGINT handler for clean interrupt of autotuning background processes by @msaroufim in https://github.com/pytorch/helion/pull/766 * Enable tensor descriptor for XPU by @EikanWang in https://github.com/pytorch/helion/pull/765 * Fix the issue that the XPU kernels cannot be cached well by @EikanWang in https://github.com/pytorch/helion/pull/761 * Print Helion kernel source line in symbolic shape debugging by @yf225 in https://github.com/pytorch/helion/pull/771 * ci: Set fail-fast to false by @seemethere in https://github.com/pytorch/helion/pull/776 * Add XPU support for RNG operations by @EikanWang in https://github.com/pytorch/helion/pull/774 * Enable test_dot for XPU by @EikanWang in https://github.com/pytorch/helion/pull/773 * Handle XPU compilation error by @adam-smnk in https://github.com/pytorch/helion/pull/779 * Fix type prop for and/or by @oulgen in https://github.com/pytorch/helion/pull/781 * Make print output code more robust by @oulgen in https://github.com/pytorch/helion/pull/780 * Revert "Add SIGINT handler for clean interrupt of autotuning background processes" by @oulgen in https://github.com/pytorch/helion/pull/784 * Add torch compile unit test to helion by @oulgen in https://github.com/pytorch/helion/pull/782 ## New Contributors * @seemethere made their first contribution in https://github.com/pytorch/helion/pull/719 * @angelayi made their first contribution in https://github.com/pytorch/helion/pull/740 * @msaroufim made their first contribution in https://github.com/pytorch/helion/pull/739 * @aditvenk made their first contribution in https://github.com/pytorch/helion/pull/736 * @EikanWang made their first contribution in https://github.com/pytorch/helion/pull/765 * @adam-smnk made their first contribution in https://github.com/pytorch/helion/pull/779 **Full Changelog**: https://github.com/pytorch/helion/compare/v0.1.5...v0.1.6