DEEPX DX-M1 M.2 mit dem reComputer RK3576 verwenden
Der DEEPX DX-M1 ist ein M.2-PCIe-KI-Beschleuniger mit drei NPU-Kernen und integriertem LPDDR5-Speicher. Dieses Tutorial zeigt, wie die Karte auf einem reComputer RK3576 erkannt, eine zur Firmware passende Runtime gebaut, die Initialisierung geprüft und der NPU-Status überwacht wird.
Die in dieser Anleitung verwendete Karte nutzt Firmware v1.6.0 zusammen mit DX-RT v2.6.0.
Systemkonfiguration
| Element | Konfiguration |
|---|---|
| Host | reComputer RK3576 Dev Kit |
| Betriebssystem | Armbian unofficial 26.05.0-trunk, Debian 12 (bookworm) |
| Kernel | 6.1.115-vendor-seeed-rk3576 |
| Beschleuniger | DEEPX DX-M1A M.2, LPDDR5 der 4-GB-Klasse |
| PCIe-Gerät | 1ff4:0001 |
| Ausgehandelter Link | PCIe Gen2 x1 |
| NPU-Treiber | dxrt-driver-dkms 2.4.1-2 |
| Karten-Firmware | v1.6.0 |
| Runtime | DX-RT v2.6.0, aus dem DEEPX-Quell-Tag gebaut |
PCIe-Treiber installieren
DX-All-Suite v2.4.2 für AArch64 Linux von der DEEPX-Downloadseite herunterladen und auf den RK3576 kopieren. Das Archiv entpacken und in dx-runtime wechseln:
tar -xzf dx-all-suite_v2.4.2.tar.gz
cd dx-all-suite/dx-runtimeDie zur obigen Konfiguration passende Treiberversion auswählen und installieren. Dabei wird nur der PCIe-Treiber installiert; die Karten-Firmware bleibt unverändert.
ln -sfn 2.4.1 dx_rt_npu_linux_driver/release/latest
./install.sh --target=dx_rt_npu_linux_driver --exclude-fw
sudo rebootNach dem Neustart mit der Hardwareprüfung fortfahren. Die kompatible DX-RT-Bibliothek wird separat gebaut und nicht aus der aktuellen Suite installiert.
Hardware und Treiber prüfen
Den DX-M1 in den M.2-PCIe-Steckplatz einsetzen, den RK3576 starten und die PCIe-Funktion prüfen:
lspci -nnk -s 01:00.0
Den vom Treiber erzeugten Geräteknoten prüfen:
ls -l /dev/dxrt0
/dev/dxrt0 bestätigt, dass der PCIe-Treiber den Beschleuniger initialisiert hat. Fehlt der Knoten, muss zuerst der Treiber korrigiert werden.
Kompatible DX-RT-Version bauen
DX-RT v3.3.0 benötigt Firmware v2.5.2 oder neuer und kann eine Karte mit Firmware v1.6.0 nicht initialisieren. DX-RT v2.6.0 nennt v1.5.9 als Mindest-Firmware und ist mit dieser Karte kompatibel.
Build-Werkzeuge installieren:
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build python3-dev gitDen exakten DX-RT-Tag klonen. Die CMake-Konfiguration benötigt pybind11 v2.12; ein flacher Clone vermeidet den vollständigen Verlauf.
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/pybind11Für die AArch64-CPU des RK3576 konfigurieren und bauen:
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 4Diese Befehle ändern die DX-RT-Systeminstallation nicht. Für die erste Prüfung werden Binärdatei und Bibliothek direkt aus dem Build-Verzeichnis verwendet:
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
Runtime-Dienst prüfen
Vor dem Start des Dienstes aus dem Build-Verzeichnis einen inkompatiblen DX-RT-Dienst stoppen. Der folgende Befehl endet nach 20 Sekunden und installiert keine systemd-Unit:
sudo systemctl stop dxrt
timeout --signal=TERM 20s "$HOME/dx_rt/build_aarch64/bin/dxrtd"Eine erfolgreiche Initialisierung enthält:
[DXRT_SVC][DxrtService] Initialized Devices count=1
[DXRT_SVC][DxrtService] Initialized Scheduler
[DXRT_IPC][DxrtService] Initialized IPC ServerDiese Meldungen zeigen, dass die Runtime den Treiber geöffnet und den DX-M1 initialisiert hat.
NPU-Status überwachen
DX-RT v2.6.0 bietet in dxrt-cli einen Überwachungsmodus. Dieser Befehl liest den Status einmal pro Sekunde und endet nach drei Sekunden:
timeout --signal=INT 3s "$HOME/dx_rt/build_aarch64/bin/dxrt-cli" -m 1
Der Monitor zeigt Spannung, Takt, Temperatur und DVFS-Status aller drei NPU-Kerne an.
Model Zoo installieren (optional)
Um die verfügbaren Modelle anzuzeigen, installieren Sie das Model-Zoo-Paket und seine Python-Abhängigkeiten aus dem entpackten DX-All-Suite-Verzeichnis:
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_224x224DXNN-Modelle hängen von den DX-COM- und DX-RT-Versionen ab, mit denen sie erstellt wurden. Prüfen Sie vor dem Ausführen eines Modells auf der DEEPX-Model-Zoo-Seite, ob Modell, Runtime und Firmware kompatibel sind. Diese Anleitung verwendet DX-RT v2.6.0 mit Firmware v1.6.0.
Fehlerbehebung
lspcizeigt1ff4:0001nicht: System ausschalten, M.2-Modul neu einsetzen und PCIe-Steckplatz sowie Board-Konfiguration prüfen./dev/dxrt0fehlt: prüfen, obdx_dma_pciegeladen ist und das Gerät unterstützt.- DX-RT 3.x scheitert mit Firmware
v1.6.0: den geprüften v2.6.0-Pfad oder ausschließlich das DEEPX-Migrationsverfahren für die genaue Modulrevision verwenden. dxtopmeldet ein undefiniertes Symbol oder einen inkompatiblen Dienst: es gehört zu einer anderen DX-RT-Generation.dxrt-cli -m 1aus v2.6.0 verwenden oder einen vollständig versionsgleichen Werkzeugsatz installieren.