rk3588上创建一个能调用NPU加速的docker容器

需要先确认一下目录系统是否加载了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