Skip to content

ci: add micro-tlx build & publish workflow - #100

Open
plotfi wants to merge 1 commit into
triton-lang:mainfrom
plotfi:plotfi-triton-utlx-gh-action
Open

ci: add micro-tlx build & publish workflow#100
plotfi wants to merge 1 commit into
triton-lang:mainfrom
plotfi:plotfi-triton-utlx-gh-action

Conversation

@plotfi

@plotfi plotfi commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

Adds .github/workflows/triton-utlx.yaml: builds the uTLX extension (extensions/utlx) into a pip wheel and publishes it as the distribution "micro-tlx" to PyPI on a v* tag, or to TestPyPI/PyPI on a manual run (workflow_dispatch defaults to a TestPyPI dry run).

Also un-ignores the workflow from .gitignore, which would otherwise match the root-anchored 'triton-*' dependency-dir pattern (same collision the existing '!triton-ext.toml' exception handles).

Assisted-by: Claude Code/claude-opus-4-8

Adds .github/workflows/triton-utlx.yaml: builds the uTLX extension
(extensions/utlx) into a pip wheel and publishes it as the distribution
"micro-tlx" to PyPI on a v* tag, or to TestPyPI/PyPI on a manual run
(workflow_dispatch defaults to a TestPyPI dry run).

Also un-ignores the workflow from .gitignore, which would otherwise match
the root-anchored 'triton-*' dependency-dir pattern (same collision the
existing '!triton-ext.toml' exception handles).

Signed-off-by: Puyan Lotfi <puyan@puyan.org>
Assisted-by: Claude Code/claude-opus-4-8
@plotfi
plotfi requested review from CRobeck, abrown and sjw36 as code owners June 20, 2026 06:37

@abrown abrown left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me; seems like something worth iterating on. Some high-level feedback:

  • if you want to publish as micro_tlx, why not just change the name of the extension to that?
  • I'm not a big fan of duplicating the CI steps from the main workflow in this one (e.g., drifting out of sync); isn't there a way to run one after the other or call one from the other?
  • feels like something is missing here CI-wise: don't you need credentials to publish these packages? How about a smoke test that the package actually loads from Triton?

Comment thread .gitignore
llvm-*
triton-*
!triton-ext.toml
!.github/workflows/triton-utlx.yaml

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, why not just rename the workflow publish-utlx.yaml (or publish-micro-tlx) to avoid this?

imperatormk added a commit to imperatormk/triton-ext that referenced this pull request Jul 14, 2026
- MetalTGGlobalCoalesce: shrink over-provisioned global_smem to the real
  async-copy high-water (reclaims the upstream allocator's dead staging tail),
  ~20% faster 64x64 GEMM via 2 threadgroups/core. Bails on any dynamic-GEP
  global with no async-copy writer (int8 dot stages via store-float dynamic
  GEPs with no DMA tile) so it never clips live staging.
- DotOpAppleMmaConversion: always emit the post-SG-load threadgroup_barrier on
  the multi-slot SMEM dot path. The num_stages>=3 barrier elision was unsound
  (write_slot == read_slot mod slots every iter -> DMA raced in-flight reads),
  fixing the 64x64x16:ns3 / ns3 GEMM miscompiles (triton-lang#98).
- AsyncCopyConversion: partition cross-warp async_copy_2d into per-warp row
  bands, each warp DMAs+waits its own band. Fixes the slice_scatter cross-warp
  race (warp-0-only copy + per-simdgroup wait left siblings reading stale
  staging) while keeping the async fast path (triton-lang#100). 1x traffic, no sync
  fallback regression.

Full inductor MPS suite: 1143 passed / 0 failed.
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