Uh oh!
There was an error while loading. Please reload this page.
feat(linked): add MetaX vLLM silu_and_mul backend - #873
Merged
Conversation
20 tasks
voltjia
marked this pull request as ready for review
August 6, 2026 08:08
20 tasks
silu_and_mul backendZiminli
approved these changes
Aug 6, 2026
whjthu
approved these changes
Aug 7, 2026
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Summary
src/linkedas a peer implementation backend for operators recovered from installed shared libraries.(operator, device)through provider-named YAML/C++ files and independent implementation slots.src/linked/<transport>/<device>and add MetaX vLLMsilu_and_mulat implementation slot16.Motivation
Some accelerator vendors distribute optimized vLLM operators only as shared objects. InfiniOps needs a narrow, auditable integration path for those implementations without vendoring generated kernels, adding a submodule, or treating them as native source implementations.
The public API remains InfiniOps
silu_and_mul(input, out), with packed-input semantics following vLLMSiluAndMul. The installed MetaX provider ABI is verified independently bynmandreadelfas:N/A - no linked issue.
Type of Change
feat- new feature / new operator / new platformfix- bug fixperf- performance improvement (no behavioral change)refactor- code restructuring without behavior changetest- adding or fixing tests onlydocs- documentation onlybuild/ci- build system or CI configurationchore- tooling, formatting, or other non-code changesPlatforms Affected
WITH_CPU)WITH_NVIDIA)WITH_ILUVATAR)WITH_METAX)WITH_CAMBRICON)WITH_MOORE)WITH_ASCEND)WITH_HYGON)WITH_TORCH)Smoke Test Result
Environment:
ssh metax, imagecr.metax-tech.com/public-ai-release/maca/vllm-metax:0.10.2-maca.ai3.2.1.7-torch2.6-py310-ubuntu22.04-amd64(sha256:6e519687a9e4...), exact commit20ceb1cc50f575449ba258a746f736e3bd6327f9.Test Results on Supported Platforms
tests/test_silu_and_mul.py:50 passedAdditional validation
Benchmark / Performance Impact
N/A - this PR establishes an integration path and makes no performance claim.
Notes for Reviewers
src/linked/<transport>/<device>. Platform-level<library>.yamlfiles discover DSOs; operator-level provider files use one stem, for examplevllm.yaml,vllm.h, andvllm.cc.python_distribution_packageandlibrary_globfor DSO discovery.library: vllm; multiple implementations may reference the same DSO.16;kMaxImplementationsis32.TorchSiluAndMul<Backend>owns tensor wrapping, contiguous staging, and output copy-back. Each provider Backend inheritsC10<device>for device identity and stream handling, then adds only its exactCallABI.src/linked/torch/ops/silu_and_mul.h. Provider.ccremains the ABI and explicit-instantiation boundary; provider.husesextern templateso generated translation units do not instantiate it again.C10<device>converts the caller's external stream to the vendor Torch stream type and exposes the matching stream guard; it does not replace the caller-selected stream.