rockchip-linux / rknn-toolkit2

BSD 3-Clause "New" or "Revised" License
865 stars 154 forks source link

running rknn toolkit2 lite resnet problem #244

Open byte-6174 opened 10 months ago

byte-6174 commented 10 months ago

we are trying to run the simple resnet18 model on aarch64 platform and get the following error.

D Starting ntp or adb, target soc is RK3588, device id is: None
E RKNN: [16:12:13.845] failed to open rknpu module, need to insmod rknpu dirver!
E RKNN: [16:12:13.845] failed to open rknn device!
E Catch exception when init runtime!
E Traceback (most recent call last):
  File "/home/vuaant/.local/lib/python3.10/site-packages/rknnlite/api/rknn_lite.py", line 148, in init_runtime
    self.rknn_runtime.build_graph(self.rknn_data, self.load_model_in_npu)
  File "rknnlite/api/rknn_runtime.py", line 875, in rknnlite.api.rknn_runtime.RKNNRuntime.build_graph
Exception: RKNN init failed. error code: RKNN_ERR_FAIL

Init runtime environment failed

we have installed the wheel file rknn-toolkit2/rknn_toolkit_lite2/packages /rknn_toolkit_lite2-1.5.2-cp310-cp310-linux_aarch64.whl

the script crashes on this line of the code:

ret = r.init_runtime(core_mask=RKNNLite.NPU_CORE_AUTO)

Any suggestions?!

ocanevet commented 10 months ago

Hi, are you running this script :

https://github.com/rockchip-linux/rknn-toolkit2/blob/b2564c1b011b34cebf7a5d39b5c5d986fea8979c/rknn_toolkit_lite2/examples/inference_with_lite/test.py#L88

Have you tried core_mask=RKNNLite.NPU_CORE_0 ?

Guemann-ui commented 10 months ago

@byte-6174

Try to follow the instructions below:

  1. Clone the rknpu2 repository: git clone https://github.com/rockchip-linux/rknpu2.git
  2. Copy the shared lib file to the lib dir: sudo cp rknpu2/runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/librknnrt.so

This should solve your problem.

chenxinfeng4 commented 9 months ago

我也有同样问题。使用普通用户运行时,报错。使用 sudo 执行,正常。

(rknn) my@orangepi5:~/ml-project/rknn_mmpose$ python test.py 
W Verbose file path is invalid, debug info will not dump to file.
--> Load RKNN model
done
--> Init runtime environment
D target set by user is: None
D Starting ntp or adb, target soc is RK3588, device id is: None
E RKNN: [00:48:57.471] failed to open rknpu module, need to insmod rknpu dirver!
E RKNN: [00:48:57.471] failed to open rknn device!
E Catch exception when init runtime!
E Traceback (most recent call last):
  File "/home/chenxinfeng/miniconda3/envs/rknn/lib/python3.8/site-packages/rknnlite/api/rknn_lite.py", line 148, in init_runtime
    self.rknn_runtime.build_graph(self.rknn_data, self.load_model_in_npu)
  File "rknnlite/api/rknn_runtime.py", line 875, in rknnlite.api.rknn_runtime.RKNNRuntime.build_graph
Exception: RKNN init failed. error code: RKNN_ERR_FAIL

Init runtime environment failed

使用 sudo 执行,正常。

(rknn) m@orangepi5:~/ml-project/rknn_mmpose$ sudo `which python` test.py
[sudo] password for m: 
W Verbose file path is invalid, debug info will not dump to file.
--> Load RKNN model
done
--> Init runtime environment
D target set by user is: None
D Starting ntp or adb, target soc is RK3588, device id is: None
I RKNN: [00:51:49.969] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22)
I RKNN: [00:51:49.969] RKNN Driver Information: version: 0.8.8
I RKNN: [00:51:49.970] RKNN Model Information: version: 6, toolkit version: 1.5.2+b642f30c(compiler version: 1.5.2 (c6b7b351a@2023-08-23T15:34:44)), target: RKNPU v2, target platform: rk3588, framework name: ONNX, framework layout: NCHW, model inference type: static_shape
D RKNN: [00:51:49.970] allocated memory, name: task, virt addr: 0x7f9bc3c000, dma addr: 0xfffd0000, obj addr: 0xffffff8126b82800, size: 143960, aligned size: 147456, fd: 4, handle: 1, flags: 0xb, gem name: 1
D RKNN: [00:51:50.015] allocated memory, name: weight, virt addr: 0x7f78197000, dma addr: 0xfd6a0000, obj addr: 0xffffff8126b81800, size: 43158976, aligned size: 43159552, fd: 5, handle: 2, flags: 0x3, gem name: 2
D RKNN: [00:51:50.033] subgraph 0 regcmdbuffer size: 1818816, taskbuffer size: 143960
D RKNN: [00:51:50.058] allocated memory, name: internal, virt addr: 0x7f728db000, dma addr: 0xfbf70000, obj addr: 0xffffff8126b81400, size: 24268800, aligned size: 24268800, fd: 6, handle: 3, flags: 0x3, gem name: 3
D RKNN: [00:51:50.060] ----------------------------------------------------------------------------------------------+---------------------------------
D RKNN: [00:51:50.060] ID  User           Tensor                         DataType  OrigShape       NativeShape       |     [Start       End)       Size
D RKNN: [00:51:50.060] ----------------------------------------------------------------------------------------------+---------------------------------
D RKNN: [00:51:50.060] 1   Conv           input_1                        INT8      (1,3,480,640)   (1,1,480,640,3)   | 0xfbf70000 0xfc051000 0x000e1000
D RKNN: [00:51:50.060] 2   Add            New_input_input_1              INT8      (1,3,480,640)   (1,2,480,640,16)  | 0xfc051000 0xfc9b1000 0x00960000
D RKNN: [00:51:50.060]
.
.
.

系统 Linux orangepi5 5.10.160-rockchip-rk3588 #1.1.8 SMP Mon Nov 13 10:15:33 CST 2023 aarch64 aarch64 aarch64 GNU/Linux

linux 库拷贝.


/lib/aarch64-linux-gnu/librkaiq.so
/lib/aarch64-linux-gnu/librkisp.so
/lib/aarch64-linux-gnu/librknnrt.so
/lib/aarch64-linux-gnu/librkuvc.so
/lib/aarch64-linux-gnu/librknn_api.so
wangchenghan commented 5 months ago

@chenxinfeng4 我也是同样的问题,正常不能用,要加sudo才可以

liuzong616 commented 2 months ago

我与你的问题相似,但有些不同点 --> Load RKNN model done --> Init runtime environment E RKNN: [15:14:02.114] failed to open rknpu module, need to insmod rknpu dirver! E RKNN: [15:14:02.114] failed to open rknn device! E Catch exception when init runtime! E Traceback (most recent call last): File "/home/hzhy/archiconda3/envs/rknnlite/lib/python3.9/site-packages/rknnlite/api/rknn_lite.py", line 148, in init_runtime self.rknn_runtime.build_graph(self.rknn_data, self.load_model_in_npu) File "rknnlite/api/rknn_runtime.py", line 815, in rknnlite.api.rknn_runtime.RKNNRuntime.build_graph Exception: RKNN init failed. error code: RKNN_ERR_FAIL

Init runtime environment failed 通过加sudo的方式并没有解决,是什么原因导致的呢?