Skip to content
Back to skills

Backends

ASecurity

"Select, install, check, and troubleshoot MMDeploy inference

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
toolspythonbashapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill backends --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Backends?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Backends
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-backends-70de4085/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-backends-70de4085)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Files in this skill

  • SKILL.md5.7 KB
  • references/backend-matrix.md10.7 KB
  • references/custom-ops.md8.5 KB
  • references/troubleshooting.md14.9 KB
  • scripts/check_env.py8.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.