Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

vllm-ascend-quant-ext

Runtime-only W8A8 extension for the project-frozen vLLM-HUST Ascend stack. The package contains no calibration data, ModelSlim conversion, PPL evaluation or benchmark orchestration.

Supported host baseline

This alpha targets the frozen v1 release baseline:

Component Frozen revision
vLLM-HUST ref v1, commit f18cf803c5f63625e2c71253ddaf8b0bad0bad1a
vLLM-Ascend-HUST commit 74f0c0a272376412b51e1c1864803d5f3a0f1b5f
torch / torch-npu 2.13.0 / 2.13.0rc1
CANN >=9.1,<9.2

Admission checks both the declared package version and the Git revision token embedded in the installed vLLM distributions. Unknown revisions fail closed.

Integration boundary

The wheel declares exactly two entry points:

[project.entry-points."vllm.general_plugins"]
vllm_ascend_quant = "vllm_ascend_quant_ext.plugin:register"

[project.entry-points."vllm_hust.extension_bundles"]
"org.vllm-hust.ascend-quant-runtime" = "vllm_ascend_quant_ext.manifests"

The first is the runtime activation hook that vLLM loads in every process. The second is a static Manifest 0.2 locator consumed by the vLLM-HUST Extension Manager: it resolves to manifests/vllm-hust-extension-v0.2.json, which the Manager validates before importing any implementation module. The registration name is identical to the manifest extension_id, and no new vllm.* entry-point namespace is claimed.

The extension does not monkey patch vLLM or vLLM-Ascend. vLLM owns process startup and shutdown; vLLM-Ascend continues to own weight loading, parameter layout, W8A8 execution and NPU operators. The plugin owns artifact admission and the namespaced ASCEND_QUANT_W8A8 scheme alias.

Installation and discovery are side-effect free: after installation torch, vllm and vllm_ascend stay unimported. The registration callback is idempotent and remains disabled unless explicitly enabled.

Manifest

manifests/vllm-hust-extension-v0.2.json declares:

Field Value
schema_version 0.2-experimental
extension_id org.vllm-hust.ascend-quant-runtime
kind in_process_plugin
host vllm / vllm-ascend / >=0.25.1rc1,<0.25.2
runtime python, vllm_engine_and_ascend_worker, trusted_in_process
lifecycle_owner vllm
protocols vllm.general_plugins, vllm-ascend.quantization-scheme-surface
components[].permissions device_access, filesystem_read

No host API version is declared because the frozen host exposes no independently versioned plugin API, and the deployment artifact path is user configuration that is deliberately kept out of the static manifest.

Inspect it with the Extension Manager when that tooling is available:

python -m pip install 'vllm-hust-ext @ git+https://github.com/vLLM-HUST/extension-manager.git'
vllm-hust-ext extension list
vllm-hust-ext extension inspect org.vllm-hust.ascend-quant-runtime
vllm-hust-ext extension validate org.vllm-hust.ascend-quant-runtime

Install and inspect

python -m pip install vllm-ascend-quant-ext==0.4.1a4

vllm-ascend-quant-ext check --model /path/to/w8a8-model
vllm-ascend-quant-ext status
vllm-ascend-quant-ext render --model /path/to/w8a8-model

Start vLLM

export VLLM_ASCEND_QUANT_EXT_ENABLE=1
export VLLM_ASCEND_QUANT_EXT_ARTIFACT=/path/to/w8a8-model

vllm-hust serve /path/to/w8a8-model \
  --host 0.0.0.0 \
  --port 18000

Do not set VLLM_PLUGINS to only vllm_ascend_quant: that variable filters every plugin group and would suppress required vLLM-Ascend platform/general plugins. The frozen host discovers installed general plugins automatically; the extension-owned enable switch keeps this callback default-off.

The contract is validated before importing the vLLM-Ascend scheme module. Missing files, hashes, tensors, software versions, frozen revisions or scheme providers abort startup.

Frozen-host NPU gate

tools/npu_e2e.py is the release gate that proves the wheel serves the reference artifact on the frozen host. It installs the wheel non-editable with the extension source tree removed from PYTHONPATH, activates it through vLLM's own general-plugin loader, serves the artifact, compares two identical completions, then uninstalls, restores the previous install and re-hashes the artifact. Host paths are parameters; nothing about a specific host is hard-coded.

python runtime-extension/tools/npu_e2e.py \
  --wheel runtime-extension/dist/vllm_ascend_quant_ext-0.4.1a4-py3-none-any.whl \
  --artifact /path/to/w8a8-model \
  --legacy-artifact /path/to/pre-v1-model \
  --python /path/to/host/python \
  --device 6 --port 18003 \
  --env-script /path/to/cann/set_env.sh \
  --env-script '/path/to/atb/set_env.sh --cxx_abi=0' \
  --host-source /path/to/vllm-hust \
  --host-source /path/to/vllm-ascend-hust \
  --summary npu_e2e_summary.json

--dry-run prints every command without touching the host. The gate fails closed: the summary reports "ok": false plus the failed phase list, and the previous install is restored even after an error. --keep-installed leaves the wheel in place instead of restoring, and --skip-hash skips the two full artifact hash passes.

The gate never narrows VLLM_PLUGINS, never imports the extension from the source tree, and refuses a --host-source that resolves inside this repository's own src directory.

Disable and uninstall

The plugin is process scoped; it is not hot-unloaded. Stop the old vLLM process, then start a new process without the selection variables:

unset VLLM_ASCEND_QUANT_EXT_ENABLE
unset VLLM_ASCEND_QUANT_EXT_ARTIFACT
python -m pip uninstall -y vllm-ascend-quant-ext

When the Extension Manager owns the deployment, keep the same order it documents: disable, restart and verify the built-in path, then forget, then uninstall.

vllm-hust-ext extension disable org.vllm-hust.ascend-quant-runtime
# stop the old process, then start a new one and verify the built-in path
vllm-hust-ext extension forget org.vllm-hust.ascend-quant-runtime
python -m pip uninstall -y vllm-ascend-quant-ext

Installation, validation and uninstall never modify the model directory. A model whose active metadata names ASCEND_QUANT_W8A8 still requires the plugin; restoring native W8A8_MIX metadata is a separate offline Toolkit operation.

This extension loads model weights and registers the validated dense-linear W8A8 activation/weight path only. It does not own KV-cache format, allocation, compression or request scheduling.

Metadata

Release files for vllm-ascend-quant-ext 0.4.1a4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vllm-ascend-quant-ext 0.4.1a4
File Size Uploaded
vllm_ascend_quant_ext-0.4.1a4.tar.gz 35.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vllm-ascend-quant-ext 0.4.1a4
File Interpreter ABI Platform
vllm_ascend_quant_ext-0.4.1a4-py3-none-any.whl Python 3 none any Details

Total release size: 59.6 kB

Release files / vllm_ascend_quant_ext-0.4.1a4.tar.gz

Download URL vllm_ascend_quant_ext-0.4.1a4.tar.gz
Size 35.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c1e7dd455980b498a674a679897a86a47a0f1a1d01fa0cfdb9fae72d7569125c
BLAKE2b-256 checksum
How to use checksums
a430a828a79d15eea594b993f5e3b35b04d47c0814c1ae3661740902773bc25a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / vllm_ascend_quant_ext-0.4.1a4-py3-none-any.whl

Download URL vllm_ascend_quant_ext-0.4.1a4-py3-none-any.whl
Size 24.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24ab724c6e526206c504d6e0baf0b5a98ddc0a160fdc01d7e3c1764857169f5c
BLAKE2b-256 checksum
How to use checksums
71f9583a9e8a6edc733d89e62a182e0fcf2f5956b65131081dc03b54f8a8a611
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1a4 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page