Skip to content

Add nvtriton (Triton TileIR backend) to helion Dockerfile#461

Merged
msaroufim merged 1 commit intogpu-mode:mainfrom
glassmanK:add-nvtriton-tileir
Mar 11, 2026
Merged

Add nvtriton (Triton TileIR backend) to helion Dockerfile#461
msaroufim merged 1 commit intogpu-mode:mainfrom
glassmanK:add-nvtriton-tileir

Conversation

@glassmanK
Copy link
Contributor

Summary

  • Install nvtriton (Triton with TileIR compiler backend) into the helion Docker image
  • The nvtriton wheel replaces the upstream triton==3.6.0 that ships with PyTorch cu130 (same package name triton, drop-in compatible)
  • Sets ENABLE_TILE=1 to activate the TileIR backend by default

What is nvtriton / TileIR?

TileIR is an alternative compiler backend for Triton that lowers Triton IR to the cuda_tile dialect, then compiles via tileiras. It ships with embedded CUDA dependencies (ptxas, tileiras, libnvvm) so no external CUDA toolkit is needed for compilation.

Changes

Single Dockerfile change: after PyTorch install, before Helion install:

# nvtriton (Triton with TileIR backend — replaces upstream triton)
RUN curl -L -o /tmp/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl \
    https://github.com/triton-lang/Triton-to-tile-IR/releases/download/v3.6.0-rc1/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl \
    && sudo uv pip install --system /tmp/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl \
    && rm /tmp/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl

ENV ENABLE_TILE=1

Test plan

All verified inside the built Docker image on NVIDIA B200 (sm100):

  • Docker build: docker build --no-cache -f docker/helion.Dockerfile -t helion-tileir . — OK
  • TileIRDriver activation: from triton.runtime.driver import driver; type(driver.active).__name__TileIRDriver
  • tileiras embedded discovery: TileIREnvConf.get_tileiras_path().../cuda_dep_x86/bin/tileiras
  • Triton dot kernel (fp16 64×64): max diff: 0.0
  • Helion matmul (fp16 256×256): max diff: 0.0
  • IR pipeline dump: convert-triton-to-cuda-tilecuda_tile.modulefuse-fmastrip-debuginfo confirmed
  • Helion full test suite (HELION_BACKEND=tileir ENABLE_TILE=1 pytest -n4 -rf --timeout=60 --ignore=test/test_examples_dist.py .): 834 passed, 463 skipped, 0 failed (109s)
  • Helion import: import helion → OK
Docker build log (excerpt)
#11 [ 8/11] RUN curl -L -o /tmp/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl ...
#11 25.66 Using Python 3.13.12 environment at: /usr
#11 26.08 Uninstalled 1 package in 41ms
#11 26.08  - triton==3.6.0
#11 26.08 Installed 1 package in 647ms
#11 26.08  + triton==3.6.0 (from file:///tmp/nvtriton-3.6.0-cp313-cp313-linux_x86_64.whl)

Install nvtriton wheel from GitHub Release v3.6.0-rc1 after PyTorch,
replacing the upstream triton==3.6.0 that ships with PyTorch cu130.
Set ENABLE_TILE=1 to activate the TileIR compiler backend by default.

Verified on B200 (sm100):
- TileIRDriver activation: OK
- tileiras embedded discovery: OK
- Triton dot kernel (fp16 64x64): max diff 0.0
- Helion matmul (fp16 256x256): max diff 0.0
- IR pipeline: convert-triton-to-cuda-tile → cuda_tile.module confirmed
- Helion test suite (HELION_BACKEND=tileir): 834 passed, 463 skipped, 0 failed
@glassmanK
Copy link
Contributor Author

Build & test logs for reviewers

Full Docker build log and helion test suite log attached for your convenience:

🔗 Build & test logs (gist)

Contents:

  • helion-tileir-build-20260311-063909.log — full docker build --no-cache output (1967 lines)
  • helion-test-tileir-20260311-072602.logHELION_BACKEND=tileir ENABLE_TILE=1 pytest -n4 -rf --timeout=60 --ignore=test/test_examples_dist.py . output: 834 passed, 463 skipped, 0 failed

Tested on NVIDIA B200 (sm100, compute capability 10.0).

@msaroufim msaroufim merged commit 1f8f93e into gpu-mode:main Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants