xref: /OK3568_Linux_fs/external/rknpu2/examples/rknn_matmul_api_demo/README.md (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun<!--
2*4882a593Smuzhiyun * @Author: Chifred
3*4882a593Smuzhiyun * @Date: 2023-04-25 17:32:21
4*4882a593Smuzhiyun * @LastEditTime: 2023-04-25 17:47:01
5*4882a593Smuzhiyun * @Editors: Chifred
6*4882a593Smuzhiyun * @Description: TODO
7*4882a593Smuzhiyun-->
8*4882a593Smuzhiyunrknn_matmul_demo is a example which performs int8 matrix multiplication using the RKNPU matmul C API.
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunUsage:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun./rknn_matmul_demo
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunThe following <TARGET_PLATFORM> represents RK356X or RK3588
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun# Aarch64 Linux Demo
17*4882a593Smuzhiyun## Build
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunmodify `GCC_COMPILER` on `build-linux_<TARGET_PLATFORM>.sh` for target platform,
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunthen execute
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun```
24*4882a593Smuzhiyun./build-linux_<TARGET_PLATFORM>.sh
25*4882a593Smuzhiyun```
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun## Install
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunCopy install/rknn_matmul_demo_Linux to the devices under /userdata/.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun- If you use rockchip's evb board, you can use the following way:
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunConnect device and push the program and rknn model to `/userdata`
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun```
36*4882a593Smuzhiyunadb push install/rknn_matmul_demo_Linux /userdata/
37*4882a593Smuzhiyun```
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun- If your board has sshd service, you can use scp or other methods to copy the program and rknn model to the board.
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun## Run
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun```
44*4882a593Smuzhiyunadb shell
45*4882a593Smuzhiyuncd /userdata/rknn_matmul_demo_Linux/
46*4882a593Smuzhiyun```
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun```
49*4882a593Smuzhiyunexport LD_LIBRARY_PATH=./lib
50*4882a593Smuzhiyun./rknn_matmul_demo
51*4882a593Smuzhiyun```
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun# Android Demo
54*4882a593Smuzhiyun## Build
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunmodify `ANDROID_NDK_PATH` on `build-android_<TARGET_PLATFORM>.sh` for target platform, then execute
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun```
59*4882a593Smuzhiyun./build-android_<TARGET_PLATFORM>.sh
60*4882a593Smuzhiyun```
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun## Install
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunconnect device and push build output into `/data`
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun```
67*4882a593Smuzhiyunadb push install/rknn_matmul_demo_Android /data/
68*4882a593Smuzhiyun```
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun## Run
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun```
73*4882a593Smuzhiyunadb shell
74*4882a593Smuzhiyuncd /data/rknn_matmul_demo_Android/
75*4882a593Smuzhiyun```
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun```
78*4882a593Smuzhiyunexport LD_LIBRARY_PATH=./lib
79*4882a593Smuzhiyun./rknn_matmul_demo
80*4882a593Smuzhiyun```
81