"Select, install, check, and troubleshoot MMDeploy inference
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill backends --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Backends?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-backends-70de4085)More formats (shields.io, HTML) on the badges page.
---
name: backends
description: "Select, install, check, and troubleshoot MMDeploy inference
backends, custom ops, and backend manager availability."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# MMDeploy Backends Router
Use this sub-skill when a task is about choosing an MMDeploy backend, installing
backend packages or vendor toolkits, checking `BackendManager` availability,
building backend custom ops, or recovering from backend-specific failures.
Do not use this sub-skill to orchestrate full model conversion, SDK demo usage,
or regression benchmarking. For those workflows, keep this sub-skill responsible
only for backend readiness and failure diagnosis, then route the actual
conversion, SDK runtime, or validation flow to the owning route.
## Read These First
- [Backend matrix](references/backend-matrix.md) — backend role, device/platform
fit, CPU substitute status, required packages, tools, environment variables, and
backend manager checks.
- [Custom ops](references/custom-ops.md) — ONNXRuntime, TensorRT, NCNN, and
TorchScript custom-op build expectations and symptoms.
- [Troubleshooting](references/troubleshooting.md) — symptom-driven recovery for
missing packages, missing converter tools, TensorRT profiles, OpenVINO
`libpython`, TorchScript ABI/cuDNN, vendor toolkits, SDK runtime, config, and
API misuse.
- [Backend environment checker](scripts/check_env.py) — safe read-only helper
adapted from MMDeploy's environment checker.
## Route The User Request
1. **Identify the target artifact and device.**
- ONNX inference on CPU/GPU: ONNXRuntime.
- TensorRT engine on NVIDIA CUDA/Jetson: TensorRT.
- `.param`/`.bin` mobile or embedded CPU artifacts: NCNN.
- OpenVINO IR (`.xml`/`.bin`) on Intel CPU-oriented deployments: OpenVINO.
- PPL.NN artifacts, usually CUDA-oriented in MMDeploy examples: PPLNN.
- TorchScript `.pt` artifacts or LibTorch SDK backend: TorchScript.
- Vendor accelerator artifacts: RKNN, Ascend, CoreML, TVM, VACC, or SNPE.
- `mmdeploy_runtime` model directories and wrappers: SDK backend manager.
2. **Check backend availability before trying conversion.** Run the bundled
checker from this sub-skill:
```bash
python scripts/check_env.py --backend tensorrt --with-custom-ops
python scripts/check_env.py --backend onnxruntime --backend ncnn --json
```
When the package is installed but custom ops are missing, read
[Custom ops](references/custom-ops.md) before rebuilding anything.
3. **Inspect the deployment config shape.** The relevant key is always
`backend_config.type`; backend-specific details live under
`backend_config.common_config`, `backend_config.model_inputs`,
quantization fields, or Model Optimizer options. TensorRT dynamic profiles
must include coherent `min_shape`, `opt_shape`, and `max_shape` values for
every runtime input name.
4. **Install only the backend stack required by the selected target.** Do not
install all optional backends. Prefer Python package/import checks first,
then vendor toolkit and CMake/build checks only when SDK runtime or custom
ops are required.
5. **Stop instead of guessing** when a proprietary toolkit, hardware device,
driver, cross-compiler, service URI, or SDK runtime is absent and no CPU
substitute is available.
## Backend Manager Checks
Use manager checks when diagnosing availability or conditional API exports:
```python
from mmdeploy.backend.base import get_backend_manager
manager = get_backend_manager('tensorrt')
print(manager is not None)
print(manager.is_available())
print(manager.is_available(with_custom_ops=True))
print(manager.get_version())
```
Important interpretation rules:
- `is_available()` usually means the Python package or required converter tool
can be found; it does **not** prove custom ops, SDK runtime, or accelerator
hardware work.
- `is_available(with_custom_ops=True)` is stricter for ONNXRuntime,
TensorRT, NCNN, and TorchScript. It can be `False` even when the backend
package itself is available.
- Backend API modules may export converter functions conditionally. If a backend
package is unavailable, imports such as `from mmdeploy.apis.tensorrt import
onnx2tensorrt` may be absent even though `is_available` itself can still be
imported.
- SNPE manager availability is based on the `onnx2dlc` tool path; version
reporting is not implemented by its manager.
## Setup Sequence
1. Read the row for the target backend in [Backend matrix](references/backend-matrix.md).
2. Install the Python package(s) and make vendor libraries discoverable through
the documented environment variables.
3. Run `python scripts/check_env.py --backend <name>`.
4. If the selected model/codebase needs custom ops, run
`python scripts/check_env.py --backend <name> --with-custom-ops` and use
[Custom ops](references/custom-ops.md) to build the backend plugin only for
that backend.
5. Re-run the checker. Continue only when the required manager and custom-op
state match the target workflow, or record the backend as unavailable with a
clear stop reason.
## Boundaries And Handoffs
- Backend conversion should be called through the package API or the generated
conversion route, not through standalone backend converter scripts bundled
here. This sub-skill intentionally provides no standalone `onnx2*` converter
wrappers.
- Runtime SDK demos, package layout, and `mmdeploy_runtime` model execution are
owned by the SDK route. This sub-skill only checks SDK backend-manager
availability and explains missing runtime symptoms.
- Validation, profiling, and regression matrix execution are owned by the
validation route. This sub-skill only explains backend readiness failures that
block those tasks.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!