需要先确认一下目录系统是否加载了NPU,使用什么方法加载NPU驱动的,方法是: dmesg | grep -i rknpu 正确的话应该可以看到 [ 9.617119] [drm] Initialized rknpu 0.8.2 20220829 for fdab0000.npu on minor 1 之类的初始化日志。 再运行:ls -l /dev/dri 2>/dev/null || echo "no /dev/dri" 正常的话应该可以看到: crw-rw----+ 1 root video 226, 0 2023年 5月 9日 card0 crw-rw----+ 1 root video 226, 1 2023年 5月 9日 card1 crw-rw-rw- 1 root render 226, 128 2023年 5月 9日 renderD128 crw-rw-rw- 1 root render 226, 129 2023年 5月 9日 renderD129 再运行 sudo find /usr -name "librk nn*.so*" 2>/dev/null 正常应该至少看到: /usr/lib/librknnrt.so/usr/lib/librknnrt.so 这样就可以确定系统是以内核的方式加载了npu驱动,并具备一个最小的runtime 库 librknnrt.so 这样就可以使用以下命令启动一个能调用npu 的容器:
docker run -it --rm \
  --device=/dev/dri/card1 \
  --device=/dev/dri/renderD129 \
  -v /usr/lib/librknnrt.so:/usr/lib/librknnrt.so:ro \
  <镜像> bash