Utiliser l'accélérateur DEEPX DX-M1 M.2 avec le reComputer RK3576
Le DEEPX DX-M1 est un accélérateur IA M.2 PCIe doté de trois cœurs NPU et de mémoire LPDDR5 embarquée. Ce tutoriel montre comment détecter la carte sur un reComputer RK3576, compiler un Runtime compatible avec son firmware, vérifier son initialisation et surveiller l'état du NPU.
La carte utilisée dans ce guide exécute le firmware v1.6.0, associé à DX-RT v2.6.0.
Configuration du système
| Élément | Configuration |
|---|---|
| Hôte | reComputer RK3576 Dev Kit |
| Système | Armbian unofficial 26.05.0-trunk, Debian 12 (bookworm) |
| Noyau | 6.1.115-vendor-seeed-rk3576 |
| Accélérateur | DEEPX DX-M1A M.2, LPDDR5 classe 4 Go |
| Périphérique PCIe | 1ff4:0001 |
| Liaison négociée | PCIe Gen2 x1 |
| Pilote NPU | dxrt-driver-dkms 2.4.1-2 |
| Firmware | v1.6.0 |
| Runtime | DX-RT v2.6.0, compilé depuis le tag DEEPX |
Installer le pilote PCIe
Téléchargez DX-All-Suite v2.4.2 pour AArch64 Linux depuis la page de téléchargement DEEPX, puis copiez l'archive sur le RK3576. Extrayez-la et ouvrez le répertoire dx-runtime :
tar -xzf dx-all-suite_v2.4.2.tar.gz
cd dx-all-suite/dx-runtimeSélectionnez et installez la version du pilote correspondant à la configuration ci-dessus. Cette étape installe uniquement le pilote PCIe et ne modifie pas le firmware de la carte.
ln -sfn 2.4.1 dx_rt_npu_linux_driver/release/latest
./install.sh --target=dx_rt_npu_linux_driver --exclude-fw
sudo rebootAprès le redémarrage, poursuivez avec le contrôle matériel. La bibliothèque DX-RT compatible sera compilée séparément, sans installer le Runtime du paquet actuel.
Vérifier le matériel et le pilote
Installez le DX-M1 dans le logement M.2 PCIe, démarrez le RK3576 et vérifiez la fonction PCIe :
lspci -nnk -s 01:00.0
Vérifiez le nœud créé par le pilote :
ls -l /dev/dxrt0
La présence de /dev/dxrt0 confirme que le pilote PCIe a initialisé l'accélérateur. S'il manque, corrigez d'abord l'installation du pilote.
Compiler la version DX-RT compatible
DX-RT v3.3.0 exige le firmware v2.5.2 ou plus récent et ne peut pas initialiser une carte utilisant le firmware v1.6.0. DX-RT v2.6.0 exige au minimum v1.5.9 et est compatible avec cette carte.
Installez les outils de compilation :
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build python3-dev gitClonez le tag DX-RT exact. La configuration CMake demande pybind11 v2.12 ; un clone superficiel évite de télécharger tout l'historique.
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/pybind11Configurez et compilez pour le processeur AArch64 du 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 4Ces commandes ne modifient pas l'installation DX-RT du système. Pour la première vérification, utilisez directement les fichiers du répertoire de compilation :
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
Vérifier le service Runtime
Arrêtez tout service DX-RT incompatible avant de lancer celui du répertoire de compilation. La commande suivante s'arrête après 20 secondes et n'installe pas d'unité systemd :
sudo systemctl stop dxrt
timeout --signal=TERM 20s "$HOME/dx_rt/build_aarch64/bin/dxrtd"Une initialisation réussie contient :
[DXRT_SVC][DxrtService] Initialized Devices count=1
[DXRT_SVC][DxrtService] Initialized Scheduler
[DXRT_IPC][DxrtService] Initialized IPC ServerCes messages indiquent que le Runtime a ouvert le pilote et initialisé le DX-M1.
Surveiller l'état du NPU
DX-RT v2.6.0 fournit un mode de surveillance dans dxrt-cli. Cette commande lit l'état chaque seconde et s'arrête après trois secondes :
timeout --signal=INT 3s "$HOME/dx_rt/build_aarch64/bin/dxrt-cli" -m 1
Le moniteur affiche la tension, la fréquence, la température et l'état DVFS des trois cœurs NPU.
Installer Model Zoo (facultatif)
Pour parcourir les modèles disponibles, installez le paquet Model Zoo et ses dépendances Python depuis le répertoire DX-All-Suite extrait :
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_224x224Les modèles DXNN dépendent des versions de DX-COM et DX-RT utilisées pour les générer. Avant d'exécuter un modèle, consultez la page DEEPX Model Zoo pour vérifier la compatibilité du modèle, du Runtime et du firmware. Ce guide utilise DX-RT v2.6.0 avec le firmware v1.6.0.
Dépannage
lspcin'affiche pas1ff4:0001: éteignez la machine, réinstallez le module M.2 et vérifiez le logement PCIe et la configuration de la carte./dev/dxrt0est absent : vérifiez quedx_dma_pcieest chargé et prend en charge le périphérique.- DX-RT 3.x échoue avec le firmware
v1.6.0: utilisez la version v2.6.0 vérifiée ou uniquement la procédure de migration DEEPX correspondant exactement à la révision du module. dxtopsignale un symbole absent ou un service incompatible : il appartient à une autre génération DX-RT. Utilisezdxrt-cli -m 1de v2.6.0 ou installez un ensemble d'outils aux versions correspondantes.