Conversation
Expose the remaining raw Tile IR operations, types and controls with selected-assembler bytecode negotiation and conjunctive version/architecture validation. Preserve older encodings and default launch ordering; add unsafe per-launch PDL, regression coverage and reference documentation. Validate on CUDA 13.3 and 13.4 after integration with current main, retain strict kernel-body identity for loop returns, and reject invalid explicit exp/tanh rounding. Signed-off-by: Melih Elibol <elibol@users.noreply.github.com>
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.
Executive summary
Add the approved raw Tile IR 13.4 surface and previously missing 13.3
controls. JIT compilation checks both the selected assembler's bytecode
version and the actual device architecture, including configuration-specific
restrictions, before calling tileiras. Bytecode selection follows the
selected executable (including CUTILE_TILEIRAS_PATH), not build-time headers.
CUDA 13.2/13.3 keep their wire layouts and reject newer nondefault options.
PDL is an unsafe, disabled-by-default per-launch opt-in on the existing
builder. The consumer opts in and token-orders dependent accesses after
gdc_wait_tko. Driver lookup is runtime-only; an unavailable extended launch
entry point returns unsupported rather than silently dropping the request.
API surface changes
memory_fence_alias_tko, and local/global alloca.
saturating ftoi, pointer classification, fast-accumulation MMA and
exp/tanh rounding controls.
ordering/scope, hints and inbounds promises; complete padding choices.
metadata and constant/private Global annotations.
helper returns remain restricted, without changing helper-return semantics.
AsyncKernelLaunch; cuda_core::api::launch_kernel_pdl.
capability validation, and compile-only bytecode_version selection.
FP4 is supported on SM120/121. The new f8E5M3FNU scaled-MMA configuration
requires SM107 specifically; it is not a numeric “SM100 only” restriction
on all FP4 operations.
Validation
assembler; serial execution for process-global cache/timing-sensitive tests.
checks against an external cuTile Python encoder checkout (not vendored).
and scale_format_refuses_sm_120_even_with_13_4. Positive SM107 compile-only
coverage and an execution test gated on that hardware.
insert, fast accumulation, allocation, globals, classified pointers,
gather/scatter, strided reduction and conditional kernel return.
raw-view aliasing/bounds, launch ABI, runtime lookup and inline return scope.
No SM107 hardware was available for execution. CI retains the 13.3 build and
13.0 host floor; the added 13.4 lane activates when CUDA_13_4_IMAGE is set.
Pinned refusal messages
insert_refuses_13_3_before_tileiras_with_source_span:scale_format_refuses_sm_120_even_with_13_4:Both tests also assert the original Rust source location.