De DEEPX DX-M1 M.2 gebruiken met de reComputer RK3576
De DEEPX DX-M1 is een M.2 PCIe-AI-accelerator met drie NPU-kernen en ingebouwd LPDDR5-geheugen. Deze tutorial laat zien hoe je de kaart op een reComputer RK3576 detecteert, een Runtime bouwt die bij de firmware past, de initialisatie controleert en de NPU-status bewaakt.
De kaart in deze handleiding gebruikt firmware v1.6.0 in combinatie met DX-RT v2.6.0.
Systeemconfiguratie
| Onderdeel | Configuratie |
|---|---|
| Host | reComputer RK3576 Dev Kit |
| Besturingssysteem | Armbian unofficial 26.05.0-trunk, Debian 12 (bookworm) |
| Kernel | 6.1.115-vendor-seeed-rk3576 |
| Accelerator | DEEPX DX-M1A M.2, LPDDR5 van de 4-GB-klasse |
| PCIe-apparaat | 1ff4:0001 |
| Onderhandelde link | PCIe Gen2 x1 |
| NPU-driver | dxrt-driver-dkms 2.4.1-2 |
| Kaartfirmware | v1.6.0 |
| Runtime | DX-RT v2.6.0, gebouwd vanaf de DEEPX-brontag |
De PCIe-driver installeren
Download DX-All-Suite v2.4.2 voor AArch64 Linux via de DEEPX-softwarepagina en kopieer het archief naar de RK3576. Pak het uit en open de map dx-runtime:
tar -xzf dx-all-suite_v2.4.2.tar.gz
cd dx-all-suite/dx-runtimeSelecteer en installeer de driverversie die bij de bovenstaande configuratie past. Alleen de PCIe-driver wordt geïnstalleerd; de kaartfirmware verandert niet.
ln -sfn 2.4.1 dx_rt_npu_linux_driver/release/latest
./install.sh --target=dx_rt_npu_linux_driver --exclude-fw
sudo rebootGa na de herstart verder met de hardwarecontrole. De compatibele DX-RT-gebruikersbibliotheek wordt afzonderlijk gebouwd in plaats van de Runtime uit de huidige suite te installeren.
Hardware en driver controleren
Plaats de DX-M1 in de M.2 PCIe-sleuf, start de RK3576 en controleer de PCIe-functie:
lspci -nnk -s 01:00.0
Controleer het apparaatknooppunt dat door de driver is gemaakt:
ls -l /dev/dxrt0
/dev/dxrt0 bevestigt dat de PCIe-driver de accelerator heeft geïnitialiseerd. Los een ontbrekend apparaatknooppunt op voordat je DX-RT bouwt of uitvoert.
De compatibele DX-RT-versie bouwen
DX-RT v3.3.0 vereist firmware v2.5.2 of nieuwer en kan een kaart met firmware v1.6.0 niet initialiseren. DX-RT v2.6.0 noemt v1.5.9 als minimale firmware en is compatibel met deze kaart.
Installeer de bouwgereedschappen:
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build python3-dev gitKloon de exacte DX-RT-tag. De CMake-configuratie vereist pybind11 v2.12; een oppervlakkige kloon voorkomt dat de volledige geschiedenis wordt opgehaald.
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/pybind11Configureer en bouw voor de AArch64-CPU van de 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 4Deze opdrachten veranderen de DX-RT-installatie van het systeem niet. Gebruik voor de eerste controle de binaire bestanden en bibliotheek rechtstreeks uit de buildmap:
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
De Runtime-service controleren
Stop een incompatibele DX-RT-service voordat je de service uit de buildmap start. De volgende opdracht stopt na 20 seconden en installeert geen systemd-unit:
sudo systemctl stop dxrt
timeout --signal=TERM 20s "$HOME/dx_rt/build_aarch64/bin/dxrtd"Een geslaagde initialisatie bevat:
[DXRT_SVC][DxrtService] Initialized Devices count=1
[DXRT_SVC][DxrtService] Initialized Scheduler
[DXRT_IPC][DxrtService] Initialized IPC ServerDeze meldingen geven aan dat de Runtime de driver heeft geopend en de DX-M1 heeft geïnitialiseerd.
De NPU-status bewaken
DX-RT v2.6.0 heeft een bewakingsmodus in dxrt-cli. Deze opdracht leest de status elke seconde en stopt na drie seconden:
timeout --signal=INT 3s "$HOME/dx_rt/build_aarch64/bin/dxrt-cli" -m 1
De monitor toont de spanning, kloksnelheid, temperatuur en DVFS-status van alle drie de NPU-kernen.
Model Zoo installeren (optioneel)
Installeer het Model Zoo-pakket en de Python-afhankelijkheden vanuit de uitgepakte DX-All-Suite-map om de beschikbare modellen te bekijken:
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-modellen zijn afhankelijk van de DX-COM- en DX-RT-versies waarmee ze zijn gemaakt. Controleer vóór het uitvoeren van een model op de DEEPX Model Zoo-pagina of het model, de Runtime en de firmware compatibel zijn. Deze handleiding gebruikt DX-RT v2.6.0 met firmware v1.6.0.
Problemen oplossen
lspcitoont1ff4:0001niet: schakel het systeem uit, plaats de M.2-module opnieuw en controleer de PCIe-sleuf en bordconfiguratie./dev/dxrt0ontbreekt: controleer ofdx_dma_pcieis geladen en dit apparaat ondersteunt.- DX-RT 3.x initialiseert niet met firmware
v1.6.0: gebruik de v2.6.0-route hierboven of uitsluitend de DEEPX-migratieprocedure voor de exacte modulerevisie. dxtopmeldt een ongedefinieerd symbool of incompatibele service: het hoort bij een andere DX-RT-generatie. Gebruikdxrt-cli -m 1van v2.6.0 of installeer een volledig versie-gelijk gereedschapspakket.