Difference between revisions of "NPU/zh"
From FriendlyELEC WiKi
(updated by API) |
(updated by API) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[NPU|English]] | [[NPU|English]] | ||
− | == | + | ==How to test NPU== |
===OS=== | ===OS=== | ||
− | Tested | + | Tested on the following OS: |
+ | ====Debian11 (bullseye)==== | ||
+ | * rk3588-sd-debian-bullseye-desktop-6.1-arm64-20240116.img.gz | ||
+ | * rk3568-sd-debian-bullseye-desktop-6.1-arm64-20231113.img.gz | ||
+ | ====Ubuntu20 (focal)==== | ||
+ | * rk3588-sd-ubuntu-focal-desktop-6.1-arm64-20240116.img.gz | ||
===install rknpu=== | ===install rknpu=== | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Line 13: | Line 18: | ||
sudo cp ./runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/ | sudo cp ./runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===install rknn_toolkit=== | + | |
+ | ===check rknn version=== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | strings /usr/bin/rknn_server |grep 'build@' | ||
+ | strings /usr/lib/librknnrt.so |grep 'librknnrt version:' | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===run rknn_yolov5_demo=== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install -y gcc g++ make cmake | ||
+ | cd examples/rknn_yolov5_demo | ||
+ | ./build-linux_RK3588.sh | ||
+ | |||
+ | cd install/rknn_yolov5_demo_Linux | ||
+ | ./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn model/bus.jpg | ||
+ | </syntaxhighlight> | ||
+ | Transfer the generated out.jpg to PC to view the result: | ||
+ | <syntaxhighlight lang="text"> | ||
+ | scp out.jpg xxx@YourIP:/tmp/ | ||
+ | </syntaxhighlight> | ||
+ | [[File:Rknn_yolov5_demo_out.jpg|640px]] | ||
+ | |||
+ | ===install rknn_toolkit on debian11=== | ||
+ | ====install rknn_toolkit==== | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt-get install -y python3-dev python3-numpy python3-opencv python3-pip | sudo apt-get install -y python3-dev python3-numpy python3-opencv python3-pip | ||
+ | cd ~ | ||
git clone https://github.com/rockchip-linux/rknn-toolkit2.git | git clone https://github.com/rockchip-linux/rknn-toolkit2.git | ||
(cd rknn-toolkit2 && git checkout tags/v1.5.2 -b v1.5.2) | (cd rknn-toolkit2 && git checkout tags/v1.5.2 -b v1.5.2) | ||
Line 22: | Line 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===run | + | ====run python demo==== |
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
$ cd rknn-toolkit2/rknn_toolkit_lite2/examples/inference_with_lite/ | $ cd rknn-toolkit2/rknn_toolkit_lite2/examples/inference_with_lite/ | ||
Line 45: | Line 75: | ||
done | done | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===install rknn_toolkit on ubuntu=== | ||
+ | ====build python3.9 from source==== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | sudo apt install build-essential libssl-dev libffi-dev software-properties-common \ | ||
+ | libbz2-dev libncurses-dev libncursesw5-dev libgdbm-dev liblzma-dev libsqlite3-dev \ | ||
+ | tk-dev libgdbm-compat-dev libreadline-dev | ||
+ | |||
+ | wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz | ||
+ | tar -xvf Python-3.9.16.tar.xz | ||
+ | cd Python-3.9.16/ | ||
+ | ./configure --enable-optimizations | ||
+ | make -j$(nproc) | ||
+ | sudo make install | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====install rknn_toolkit==== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | pip install --upgrade pip | ||
+ | pip install opencv-python | ||
+ | cd ~ | ||
+ | git clone https://github.com/rockchip-linux/rknn-toolkit2.git | ||
+ | (cd rknn-toolkit2 && git checkout tags/v1.5.2 -b v1.5.2) | ||
+ | /usr/local/bin/python3.9 -m pip install ./rknn-toolkit2/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.5.2-cp39-cp39-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/ | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====run python demo==== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | $ cd rknn-toolkit2/rknn_toolkit_lite2/examples/inference_with_lite/ | ||
+ | $ python3 test.py | ||
+ | --> Load RKNN model | ||
+ | done | ||
+ | --> Init runtime environment | ||
+ | I RKNN: [08:41:08.078] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) | ||
+ | I RKNN: [08:41:08.078] RKNN Driver Information: version: 0.9.2 | ||
+ | I RKNN: [08:41:08.080] RKNN Model Information: version: 6, toolkit version: 1.5.2-source_code(compiler version: 1.5.2 (71720f3fc@ | ||
+ | 2023-08-21T09:35:42)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inferenc | ||
+ | e type: static_shape | ||
+ | done | ||
+ | --> Running model | ||
+ | resnet18 | ||
+ | -----TOP 5----- | ||
+ | [812]: 0.9996760487556458 | ||
+ | [404]: 0.00024927023332566023 | ||
+ | [657]: 1.449744013370946e-05 | ||
+ | [466 833]: 9.023910024552606e-06 | ||
+ | [466 833]: 9.023910024552606e-06 | ||
+ | |||
+ | done | ||
+ | </syntaxhighlight> | ||
+ | ==Doc== | ||
+ | https://github.com/rockchip-linux/rknpu2/tree/master/doc | ||
+ | ==Other== | ||
+ | ===查看NPU占有率=== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | cat /sys/kernel/debug/rknpu/load | ||
+ | </syntaxhighlight> | ||
+ | ===设置NPU频率=== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | echo userspace > /sys/class/devfreq/fdab0000.npu/governor | ||
+ | echo 800000000 > /sys/class/devfreq/fdab0000.npu/min_freq | ||
+ | echo 1000000000 > /sys/class/devfreq/fdab0000.npu/max_freq | ||
+ | </syntaxhighlight> | ||
+ | ===查看NPU频率=== | ||
+ | <syntaxhighlight lang="text"> | ||
+ | cat /sys/class/devfreq/fdab0000.npu/cur_freq | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 05:54, 18 January 2024
Contents
1 How to test NPU
1.1 OS
Tested on the following OS:
1.1.1 Debian11 (bullseye)
- rk3588-sd-debian-bullseye-desktop-6.1-arm64-20240116.img.gz
- rk3568-sd-debian-bullseye-desktop-6.1-arm64-20231113.img.gz
1.1.2 Ubuntu20 (focal)
- rk3588-sd-ubuntu-focal-desktop-6.1-arm64-20240116.img.gz
1.2 install rknpu
export GIT_SSL_NO_VERIFY=1 git clone https://github.com/rockchip-linux/rknpu2.git cd rknpu2 git checkout tags/v1.5.2 -b v1.5.2 sudo cp ./runtime/RK3588/Linux/librknn_api/aarch64/* /usr/lib sudo cp ./runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/
1.3 check rknn version
strings /usr/bin/rknn_server |grep 'build@' strings /usr/lib/librknnrt.so |grep 'librknnrt version:'
1.4 run rknn_yolov5_demo
sudo apt-get update sudo apt-get install -y gcc g++ make cmake cd examples/rknn_yolov5_demo ./build-linux_RK3588.sh cd install/rknn_yolov5_demo_Linux ./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn model/bus.jpg
Transfer the generated out.jpg to PC to view the result:
scp out.jpg xxx@YourIP:/tmp/
1.5 install rknn_toolkit on debian11
1.5.1 install rknn_toolkit
sudo apt-get update sudo apt-get install -y python3-dev python3-numpy python3-opencv python3-pip cd ~ git clone https://github.com/rockchip-linux/rknn-toolkit2.git (cd rknn-toolkit2 && git checkout tags/v1.5.2 -b v1.5.2) pip3 install ./rknn-toolkit2/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.5.2-cp39-cp39-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
1.5.2 run python demo
$ cd rknn-toolkit2/rknn_toolkit_lite2/examples/inference_with_lite/ $ python3 test.py --> Load RKNN model done --> Init runtime environment I RKNN: [08:06:49.416] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) I RKNN: [08:06:49.416] RKNN Driver Information: version: 0.9.2 I RKNN: [08:06:49.416] RKNN Model Information: version: 6, toolkit version: 1.5.2-source_code(compiler version: 1.5.2 (71720f3fc@2023-08- 21T09:35:42)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inference type: static_s hape done --> Running model resnet18 -----TOP 5----- [812]: 0.9996760487556458 [404]: 0.00024927023332566023 [657]: 1.449744013370946e-05 [466 833]: 9.023910024552606e-06 [466 833]: 9.023910024552606e-06 done
1.6 install rknn_toolkit on ubuntu
1.6.1 build python3.9 from source
sudo apt install build-essential libssl-dev libffi-dev software-properties-common \ libbz2-dev libncurses-dev libncursesw5-dev libgdbm-dev liblzma-dev libsqlite3-dev \ tk-dev libgdbm-compat-dev libreadline-dev wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz tar -xvf Python-3.9.16.tar.xz cd Python-3.9.16/ ./configure --enable-optimizations make -j$(nproc) sudo make install
1.6.2 install rknn_toolkit
pip install --upgrade pip pip install opencv-python cd ~ git clone https://github.com/rockchip-linux/rknn-toolkit2.git (cd rknn-toolkit2 && git checkout tags/v1.5.2 -b v1.5.2) /usr/local/bin/python3.9 -m pip install ./rknn-toolkit2/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.5.2-cp39-cp39-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
1.6.3 run python demo
$ cd rknn-toolkit2/rknn_toolkit_lite2/examples/inference_with_lite/ $ python3 test.py --> Load RKNN model done --> Init runtime environment I RKNN: [08:41:08.078] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) I RKNN: [08:41:08.078] RKNN Driver Information: version: 0.9.2 I RKNN: [08:41:08.080] RKNN Model Information: version: 6, toolkit version: 1.5.2-source_code(compiler version: 1.5.2 (71720f3fc@ 2023-08-21T09:35:42)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inferenc e type: static_shape done --> Running model resnet18 -----TOP 5----- [812]: 0.9996760487556458 [404]: 0.00024927023332566023 [657]: 1.449744013370946e-05 [466 833]: 9.023910024552606e-06 [466 833]: 9.023910024552606e-06 done
2 Doc
https://github.com/rockchip-linux/rknpu2/tree/master/doc
3 Other
3.1 查看NPU占有率
cat /sys/kernel/debug/rknpu/load
3.2 设置NPU频率
echo userspace > /sys/class/devfreq/fdab0000.npu/governor echo 800000000 > /sys/class/devfreq/fdab0000.npu/min_freq echo 1000000000 > /sys/class/devfreq/fdab0000.npu/max_freq
3.3 查看NPU频率
cat /sys/class/devfreq/fdab0000.npu/cur_freq