Skip to content

Conversation

@qelk123
Copy link

@qelk123 qelk123 commented Dec 11, 2025

Overview and Motivation

This PR introduces support for the Triton-TileIR backend within Helion. The Triton-TileIR backend is an upcoming bridge tool that allows users to use the Triton DSL for developing and compiling operators targeting the TileIR backend. This PR includes performance tuning configuration adjustments tailored for the Triton-TileIR bridge, generating kernels with better performance and improving the efficiency of the autotuning process.

Key Changes

1. Tuning Knob Modifications

All following changes only take effect for the Triton-TileIR backend and won't influence other backends.

  • New Knobs Introduced:
    • num_ctas: analogous to num_ctas in cuTile, used to control the number of CTA in one CGA.
    • occupancy: analogous to occupancy in cuTile, used to control the hardware utilization/occupancy.
  • Unsupported Knobs Removed/Cleaned: The following knobs are either currently unsupported by the Triton-TileIR backend or are ignored during compilation, and have thus been removed from the search space to prevent unnecessary tuning iterations:
    • static_ranges, range_unroll_factors, range_multi_buffers, range_flattens, range_warp_specialize, load_eviction_policies.
  • Existing Knobs Modified:
    • num_warps:
      • The value is constrained to 4.
        • Rationale: This currently acts as a placeholder. The Triton-TileIR bridge is expected to introduce broader support for other num_warps values in the future.
    • num_stages:
      • The ConfigFragment type has been changed from IntegerFragment to EnumFragment.
        • Rationale: num_stages is analogous to latency in cuTile. Switching to EnumFragment allows for more discrete search directions, enhancing overall search effectiveness.
    • indexing:
      • The block_ptr type has been removed from the available indexing types.
        • Rationale: The block_ptr indexing type is currently unsupported by the Triton-TileIR backend.

2. Test Cases Adjustments

  • Cleaned Knob-Related Tests Skipped: All test cases related to the removed/cleaned tuning knobs (listed above) have been skipped or modified specifically for the TileIR backend.
  • Unsupported Operation Tests Skipped: Test cases containing currently unsupported Triton operations, such as tl.make_block_ptr and tl.inline_asm_elementwise, have been skipped for the TileIR backend.
  • New Feature Tests Added: New test cases were introduced to validate the correct functionality and impact of the newly added tuning knobs: num_ctas and occupancy.

How to Use

Currently, a completely reliable runtime check for the Triton-TileIR backend is unavailable. Users can explicitly enable the code generation and performance tuning targeting this new backend by setting the environment variable:

export ENABLE_TILE=1

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Meta Open Source bot. label Dec 11, 2025
@oulgen
Copy link
Contributor

oulgen commented Dec 11, 2025

Thank you for the contribution, I dont see anything in the code to show how you're using the triton/tileir bridge. Bridge code is missing, could you elaborate?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants