[CPU] Use pre-built triton by bigPYJ1151 · Pull Request #58140 · vllm-project/vllm · GitHub
Skip to content

[CPU] Use pre-built triton - #58140

Merged
bigPYJ1151 merged 12 commits into
vllm-project:mainfrom
bigPYJ1151:worktree-triton-cpu-wheel
Sep 24, 2026
Merged

bigPYJ1151 merged 12 commits into
vllm-project:mainfrom
bigPYJ1151:worktree-triton-cpu-wheel

Conversation

@bigPYJ1151

@bigPYJ1151 bigPYJ1151 commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Purpose

Use public pre-built triton cpu

Test Plan

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.

@bigPYJ1151
bigPYJ1151 force-pushed the worktree-triton-cpu-wheel branch from 2dc39ed to 530749c Compare September 22, 2026 11:00
@bigPYJ1151

Copy link
Copy Markdown
Member Author

… build

The Dockerfile.cpu triton-cpu stage cloned triton-lang/triton-cpu and
compiled it from a pinned commit on every CPU image build. v3.8.0 now
publishes prebuilt manylinux wheels (per Python tag) on GitHub releases,
so downloading the matching one is faster and removes the CMake/sleef
submodule build entirely. requirements/cpu.txt gains matching
platform/python-version-gated pins so a plain `pip install -r
requirements/cpu.txt` on x86_64 also gets triton-cpu without a source
build.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
…eel inline

The dedicated build stage only ever downloaded a prebuilt release wheel
(no compilation), so the extra stage plus bind-mount indirection was
unnecessary. Instead, strip the transitive triton==3.6.0 pin from
requirements/test/cpu.txt on x86 builds and install the triton-cpu
wheel directly via uv pip install where it's needed (vllm-test-deps
consumers: vllm-dev, vllm-test). vllm-openai needs no changes since it
never installs requirements/test/cpu.txt and already gets triton-cpu
via requirements/cpu.txt.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
…stall

requirements/test/cpu.txt transitively pins a generic PyPI triton (via
xgrammar) that clobbers the triton-cpu wheel from requirements/cpu.txt.
Rather than sed-stripping that pin and manually re-downloading the
triton-cpu wheel by hand-selecting its Python-version tag, just let the
existing install steps fix it up:

- vllm-test already runs `uv pip install dist/*.whl` after test/cpu.txt;
  the vllm wheel's install_requires (generated from requirements/cpu.txt
  by setup.py) already pins the same triton-cpu URL, so uv corrects it
  automatically.
- vllm-dev has no such wheel-install step (it uses `setup.py develop`),
  so reinstall requirements/cpu.txt afterward to restore triton-cpu.
- vllm-openai and vllm-test-deps need no changes.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
….txt

Stripping requirements/test/cpu.txt's generic triton==3.6.0 pin (like
the existing decord/terratorch handling for arm builds) is more direct
than letting it clobber the triton-cpu wheel and then reinstalling
requirements/cpu.txt to fix it back up. Since the pin is never applied,
vllm-dev needs no corrective step at all.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
triton-cpu is a required CPU runtime dependency on x86_64 (see
requirements/cpu.txt) that several CPU kernels quietly fall back
from (spec decode, GDN mamba) via triton_utils.HAS_TRITON. Surface
that expectation explicitly instead of only failing later inside
individual kernels.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
Signed-off-by: jiang1.li <jiang1.li@intel.com>
Signed-off-by: jiang1.li <jiang1.li@intel.com>
@mergify mergify Bot added the ci/build label Sep 22, 2026
@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #90418 for commit 10f0c40877dc.

@mergify mergify Bot added the cpu Related to CPU backends label Sep 22, 2026
vllm bench sweep/mm-processor/plotting features need pandas,
matplotlib, seaborn, datasets, scipy, plotly. Installing them at
build time (by wheel path, alongside audio) avoids the uv
URL-dependency error that installing "vllm[bench]" by name hits
post-hoc, since triton is pinned via a direct URL in cpu.txt.

Signed-off-by: jiang1.li <jiang1.li@intel.com>
@bigPYJ1151

Copy link
Copy Markdown
Member Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #90627 for commit ddfccc54f17a.

@bigPYJ1151

Copy link
Copy Markdown
Member Author

/ci run

@github-actions

Copy link
Copy Markdown

@bigPYJ1151
bigPYJ1151 marked this pull request as ready for review September 24, 2026 06:57

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@bigPYJ1151
bigPYJ1151 merged commit b44895c into vllm-project:main Sep 24, 2026
148 checks passed
@bigPYJ1151
bigPYJ1151 deleted the worktree-triton-cpu-wheel branch September 24, 2026 08:12
michael-gpu pushed a commit to practical-inference/vllm-ampere-extended that referenced this pull request Oct 20, 2026
Signed-off-by: jiang1.li <jiang1.li@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build cpu Related to CPU backends

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants