[Iluvatar][TLE] Sync iluvatar backend and extend TLE primitives support - #880
Merged
Merged
Conversation
huatuoli
requested review from
Galaxy1458,
i3wanna2,
menchunlei,
sunnycase and
zhzhcookie
as code owners
July 30, 2026 10:11
huatuoli
force-pushed
the
triton_v3.6.x_iluvatar
branch
3 times, most recently
from
August 1, 2026 04:33
f883058 to
5ed4121
Compare
- Support async copy && tle.load, memory_space, cumsum and pipeline. - Support tle.gpu.warp_specialize && tle.pipe only for ivcore11. - Opt 01-fft && 03-topk.
huatuoli
force-pushed
the
triton_v3.6.x_iluvatar
branch
from
August 3, 2026 01:55
5ed4121 to
8e31f05
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[Iluvatar][TLE] Sync iluvatar backend and extend TLE primitives support
This PR syncs the backend to Iluvatar Triton commit
d10a6779d9aand extends Iluvatar TLE lowering with async copy, pipeline, cumsum, memory_space, warp_specialize, and pipe support.Included commits:
78ab6ee36c1[Iluvatar] Update iluvatar backend to commit d10a6779d9a.acd391c7ff8[Iluvatar][TLE] Update for more tle support.01-fft.pyand03-topk.py.8e31f05050d[CI/CD] Update iluvatar3.6 ci runner.Main changes:
third_party/iluvatarbackend to Iluvatar Tritond10a6779d9a: SME load path, load/store LLVM lowering, AccelerateMatmul, pipeline, FP8, integration tests (vLLM / SGLang / FBGEMM / Inductor), and expanded CI intest_triton.sh.tle.load(async),tle.gpu.memory_space,tle.cumsum, asynctle.gpu.copy,tle.gpu.pipeline, andtle.gpu.warp_specialize+tle.pipe(currently supported on ivcore11).01-fft.pyand03-topk.py(radix-select TopK) underthird_party/iluvatar/python/tutorials/tle/, including CoreX-optimized kernel variants for performance evaluation.Diff stats: 136 files changed, +17,687 / -1,493 (across both commits).
1. Overview
1.1 Backend sync (
78ab6ee36c1)Syncs
third_party/iluvatarto Iluvatar Triton commitd10a6779d9a. Major areas:add_matmul_smeloadpass;SmeLoad.cpprewrite; largetest_sme.pysuite.LoadStoreOpToLLVM.cppexpansion; newMembarUtility.AccelerateMatmul, pipeliner (AssignLatencies/LowerLoops),RemoveLayoutConversions, etc.test_triton.shexpanded with new language/operator/runtime/regression/integration suites.1.2 TLE extension (
acd391c7ff8)Continues to reuse the shared TLE Python frontend under
python/triton/experimental/tle/and extends backend-specific builder bindings and lowering viailuvatar_tle.third_party/iluvatar/python/.../tleoverride).third_party/iluvatar/tle/triton_iluvatar_tle.cc.iluvatar_tle(third_party/iluvatar/tle/include/IR/IluvatarTleOps.td).TleToLLVM/(extract/insert/local_pointers) +BarrierOpToLLVM.cpp+ConvertWarpSpecializeToLLVM.cpp.2. Supported primitives
Covers the 5 primitives from #724 plus 6 new / extended primitives in this PR.
2.1–2.5 Primitives from #724
tle.gpu.allocttg.local_alloc; smem only.tle.gpu.local_ptriluvatar_tle.local_pointers; integer indices; smem only.tle.gpu.copytle.extract_tiletle.insert_tile2.6
tle.gpu.copy(async GM→local)tt.load+local_pointerstt.store) is recognized and rewritten tottg.async_copy_global_to_local+ commit/wait bytriton-iluvatar-tle-optimize-local-pointer-async-stores.local_ptr→tl.load→tl.store.2.7
tle.load(async)tle.load(..., is_async=True)annotatestt.loadwithtt.load.async = true.triton-iluvatar-tle-lower-async-loadrewrites supported hints tottg.async_copy_global_to_local+ commit/wait +local_load.2.8
tle.gpu.memory_spacetle.gpu.memory_space(tensor, "shared_memory")markstt.memory_space = "shared_memory".triton-iluvatar-tle-early-assign-memory-spacematerializes before layout/MMA transforms:local_alloc+local_load."shared_memory"/ smem storage supported.2.9
tle.cumsumiluvatar_tle.exclusive_cumsum(create_exclusive_cumsum).reverse=True); 1D masked and 2D axis cases.tt.scan(add) +tt.reduce(total); exclusive = scan − src.2.10
tle.gpu.pipelinefor i in tle.gpu.pipeline(start, stop, step, num_stages=N)propagatestt.num_stagesonto the generatedscf.for.tl.range.add_pipelinepass whennum_stages > 1.2.11
tle.gpu.warp_specialize(currently supported on ivcore11)ttg.warp_specializeviacreate_warp_specialize/create_warp_specialize_partitions/create_warp_return/create_warp_yield.warp_yield; concurrent partition execution.ConvertWarpSpecializeToLLVM.cpp— software named-barrier protocol.2.12
tle.pipe(currently supported on ivcore11)iluvatar_tle.pipe.create/writer_acquire|commit|close/reader_wait|release, plusinit_barrier/wait_barrier/arrive_barrier.ttg.warp_specialize; MVP producer/consumer e2e (tile accumulate).triton-iluvatar-tle-lower-pipe-to-barriers→ software mbarrier ring in shared memory →BarrierOpToLLVM.cpp.3. Lowering path
Key differences from the native Triton path:
4. Tests
4.1 Shared TLE tests (FlagTree main tree)
python/test/tle/integration/test_tle_local_store.pypython/test/tle/unit/test_tle_gpu_local_ptr.pypython/test/tle/unit/test_extract_tile_static_index.pypython/test/tle/unit/test_extract_tile_dynamic_index.pypython/test/tle/unit/test_insert_tile_static_index.pypython/test/tle/unit/test_insert_tile_dynamic_index.pypython/test/tle/unit/test_tle.py4.2 Iluvatar-specific TLE tests (NEW in
acd391c7ff8)python/test/unit/tle/test_tle_copy.pypython/test/unit/tle/test_tle_async_load.pytle.load(is_async=True)pointer / block_ptrpython/test/unit/tle/test_tle_memory_space.pymemory_spaceload vs non-load pathspython/test/unit/tle/test_tle_cumsum.pypython/test/unit/tle/test_tle_pipeline.pytle.gpu.pipelinenum_stages hintpython/test/unit/tle/test_tle_pipeline_e2e.pypython/test/unit/tle/test_tle_warp_specialize.pytle.gpu.warp_specializee2epython/test/unit/tle/test_tle_pipe.pytle.pipe+ warp_specialize producer/consumer e2e5. Performance data
5.1 Measurement methodology
third_party/iluvatar/python/tutorials/tle/01-fft.py— complex FFT; compares Triton / TLE / TLE-CoreX / Torch.third_party/iluvatar/python/tutorials/tle/03-topk.py— radix-select TopK; compares Triton-RadixSelect / RadixSelect-CoreX / Triton-TopK / Torch.5.2 Environment
4.5.02.10.0triton_v3.6.x_iluvatarbranch5.3 Representative results
5.3.1 FFT (
01-fft.py, M=4096)Correctness check passed (triton/tle).
Speedup is computed as
baseline_time / TLE_time:5.3.2 TopK (
03-topk.py)Correctness check passed (radix + radix_corex + triton).
Speedup is computed as
baseline_time / CoreX_time, grouped by sequence lengthN:N ≤ 1024 (rows 0–1: N = 128, 1024):
N > 1024 (rows 2–3: N = 8192, 32768):
CoreX optimizations show limited gain at small N (RadixSelect-CoreX is still slower than Triton-TopK when N ≤ 1024), but deliver strong speedups at large N (up to 3.75x vs baseline RadixSelect at N = 32768).
6. Status note
78ab6ee36c1delivers a broad iluvatar backend sync (SME, matmul, pipeline, integrations, CI) aligned with Iluvatar Tritond10a6779d9a.acd391c7ff8delivers functional support for 6 additional TLE primitives / extensions on top of [Iluvatar][TLE] Triton v3.6.x iluvatar backend and 5 TLE primitives support #724, with correctness validated by iluvatar-specific unit/integration tests.tle.gpu.warp_specializeandtle.pipeare currently supported and validated on ivcore11 (software mbarrier emulation); support on other Iluvatar architectures may follow in future commits.