reComputer RK3576 con acelerador M.2 DEEPX DX-M1
Última actualización:
DEEPX DX-M1 es un acelerador de IA M.2 PCIe con tres núcleos NPU y memoria LPDDR5 integrada. Este tutorial explica cómo detectar la tarjeta en un reComputer RK3576, compilar un Runtime compatible con el firmware instalado, verificar su inicialización y supervisar el estado de la NPU.
La tarjeta utilizada en esta guía ejecuta firmware v1.6.0, combinado con DX-RT v2.6.0.
Antes de empezar
Necesitas un módulo DX-M1 y acceso a una terminal con privilegios de sudo. Apaga el equipo y desconecta la alimentación antes de instalar la tarjeta M.2. Asegúrate de que el runtime coincida con la versión de firmware indicada en la tabla de configuración antes de instalar el software.
Configuración del sistema
| Elemento | Configuración |
|---|---|
| Host | reComputer RK3576 Dev Kit |
| Sistema operativo | Armbian unofficial 26.05.0-trunk, Debian 12 (bookworm) |
| Kernel | 6.1.115-vendor-seeed-rk3576 |
| Acelerador | DEEPX DX-M1A M.2, LPDDR5 de clase 4 GB |
| Dispositivo PCIe | 1ff4:0001 |
| Enlace negociado | PCIe Gen2 x1 |
| Controlador NPU | dxrt-driver-dkms 2.4.1-2 |
| Firmware de la tarjeta | v1.6.0 |
| Runtime | DX-RT v2.6.0, compilado desde la etiqueta oficial |
Instalar el controlador PCIe
Descarga DX-All-Suite v2.4.2 para AArch64 Linux desde la página de software de DEEPX y copia el archivo al RK3576. Extráelo y entra en dx-runtime:
tar -xzf dx-all-suite_v2.4.2.tar.gz
cd dx-all-suite/dx-runtimeSelecciona e instala el controlador utilizado en esta prueba. Este paso solo instala el controlador PCIe y no modifica el firmware de la tarjeta.
ln -sfn 2.4.1 dx_rt_npu_linux_driver/release/latest
./install.sh --target=dx_rt_npu_linux_driver --exclude-fw
sudo rebootTras reiniciar, continúa con la comprobación del hardware. La biblioteca DX-RT compatible se compila por separado en lugar de instalar el Runtime incluido en el paquete actual.
Comprobar el hardware y el controlador
Instala el DX-M1 en la ranura M.2 PCIe, inicia el RK3576 y comprueba la función PCIe:
lspci -nnk -s 01:00.0
Comprueba el nodo creado por el controlador:
ls -l /dev/dxrt0
La presencia de /dev/dxrt0 confirma que el controlador PCIe ha inicializado el acelerador. Si no existe, resuelve primero el problema del controlador.
Compilar la versión compatible de DX-RT
DX-RT v3.3.0 requiere firmware v2.5.2 o posterior y no puede inicializar una tarjeta con firmware v1.6.0. DX-RT v2.6.0 establece v1.5.9 como firmware mínimo y es compatible con esta tarjeta.
Instala las herramientas de compilación:
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build python3-dev gitClona la etiqueta exacta de DX-RT. Su configuración CMake requiere pybind11 v2.12; clonarlo de forma superficial evita descargar todo el historial.
cd ~
git clone --branch v2.6.0 --depth 1 https://github.com/DEEPX-AI/dx_rt.git
cd dx_rt
git clone --depth 1 --branch v2.12 https://github.com/pybind/pybind11.git extern/pybind11Configura y compila para la CPU AArch64 del RK3576:
cmake -S . -B build_aarch64 -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain.aarch64.cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DPython_EXECUTABLE="$(command -v python3)"
cmake --build build_aarch64 --parallel 4Estos comandos no cambian la instalación DX-RT del sistema. Para la primera comprobación, usa directamente el binario y la biblioteca del directorio de compilación:
export LD_LIBRARY_PATH="$HOME/dx_rt/build_aarch64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
$HOME/dx_rt/build_aarch64/bin/dxrt-cli -s
Verificar el servicio Runtime
Detén cualquier servicio DX-RT incompatible antes de iniciar el del directorio de compilación. El siguiente comando termina automáticamente después de 20 segundos y no instala una unidad systemd:
sudo systemctl stop dxrt
timeout --signal=TERM 20s "$HOME/dx_rt/build_aarch64/bin/dxrtd"La inicialización correcta incluye:
[DXRT_SVC][DxrtService] Initialized Devices count=1
[DXRT_SVC][DxrtService] Initialized Scheduler
[DXRT_IPC][DxrtService] Initialized IPC ServerEstos mensajes indican que el Runtime ha abierto el controlador e inicializado el DX-M1.
Supervisar el estado de la NPU
DX-RT v2.6.0 incluye un modo de supervisión en dxrt-cli. Este comando lee el estado cada segundo y termina tras tres segundos:
timeout --signal=INT 3s "$HOME/dx_rt/build_aarch64/bin/dxrt-cli" -m 1
El monitor muestra el voltaje, la frecuencia, la temperatura y el estado de DVFS de los tres núcleos NPU.
Instalar Model Zoo (opcional)
Para consultar los modelos disponibles, instala el paquete Model Zoo y sus dependencias de Python desde el directorio DX-All-Suite extraído:
sudo apt-get install -y python3-venv
cd ~/dx-all-suite/dx-modelzoo
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
dxmz list
dxmz info resnet50_224x224Los modelos DXNN dependen de las versiones de DX-COM y DX-RT con las que se generaron. Antes de ejecutar un modelo, consulta la página de DEEPX Model Zoo para confirmar la compatibilidad entre el modelo, el Runtime y el firmware. Esta guía utiliza DX-RT v2.6.0 con firmware v1.6.0.
Solución de problemas
lspcino muestra1ff4:0001: apaga el equipo, vuelve a instalar el módulo M.2 y comprueba la ranura PCIe y la configuración de la placa.- Falta
/dev/dxrt0: confirma quedx_dma_pcieestá cargado y admite el dispositivo. - DX-RT 3.x no se inicializa con firmware
v1.6.0: usa la ruta v2.6.0 verificada o únicamente el procedimiento de migración de DEEPX para la revisión exacta del módulo. dxtopmuestra un símbolo indefinido o solicita un servicio incompatible: eldxtopinstalado pertenece a otra generación de DX-RT. Usadxrt-cli -m 1de v2.6.0 o instala un conjunto de herramientas con versiones coincidentes.