English | 中文
This Ascend device plugin is implemented for NPU-Slicing for HAMi and volcano. It supports three modes:
Memory slicing is supported based on virtualization template. For detailed information, check template
This project implements a soft slicing mechanism based on libvnpu.so interception and limiter token scheduling. For detailed information, check hami-vnpu-core
Note: hami-vnpu-core currently only supports ARM platforms.
The enpu backend provides compute and memory quotas through vCANN-RT, with optional memory oversubscription through a compatible enpu-manager/runtime. It supports A2/910B and A3/910C; the single-DIE mode prerequisite applies only to A3/910C. An existing ConfigMap entry for 910A does not imply ENPU support.
Before enabling ENPU, follow the official vCANN-RT configuration guide for the hardware, driver/CANN, runtime assets and container prerequisites. Use the HAMi ENPU guide for integration settings and the complete ordinary soft-slicing and mem-swap Pod examples. Mem-swap requires a version that includes that feature; annotations alone do not enable it in an older release.
Prerequisites, deployment steps and usage examples differ depending on which scheduler you use:
update submodule:
git submodule update --init --recursive
make all
docker buildx build -t $IMAGE_NAME .
CI builds official ENPU release 1.0.0 in the official ARM64 build image and bundles the verified assets alongside hami-vnpu-core. For a local build, prepare the existing hami-vnpu-core assets and run make docker-enpu VERSION=<image-tag> on an ARM64 Linux host with Docker, Git and Python 3. The official image includes CANN and the driver SDK, so no NPU or host driver installation is required for compilation. See release build prerequisites and options. Plain docker build only packages assets already prepared.