-
Notifications
You must be signed in to change notification settings - Fork 11
/
README.HOW_TO_BUILD
42 lines (30 loc) · 2.21 KB
/
README.HOW_TO_BUILD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Here's how we are able to build Hexagon NN for MACE.
Note that in order to run code on target, you have to follow the SDK instructions for installing a testsig.
Try the "calculator" or other examples in the SDK to make sure you can execute on the DSP.
0) Download and install the Hexagon SDK 3.4.3 (other versions may also work)
1) Source the Hexagon SDK setup_sdk_env.sh script.
2) Build the Hexagon NN dynamic library
Note: For Hexagon SDK 3.4.0 and 3.4.1, please use toolv82 instead of toolv83 in all build instructions below.
For SD820: make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v60
For SD660: make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v60
For SD835: make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v60
For SD845: (best performance): make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v65 V65=1
For SD845: (Don't use V65 code): make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v65
For SD670: (best performance): make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v65 V65=1
For SD670: (Don't use V65 code): make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v65
For SD855: make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v66 V66=1
For SD855: (Don't use V66 code): make tree VERBOSE=1 V=hexagon_Release_dynamic_toolv83_v66
3) Build the Hexagon NN controller(for MACE)
For armeabi-v7a: make tree VERBOSE=1 V=android_Release CDSP_FLAG=1
For arm64-v8a: make tree VERBOSE=1 V=android_Release_aarch64 CDSP_FLAG=1
4) adb root ; adb remount
5) cp interface/ops.def /path_to_mace/third_party/nnlib/ops.h
cp android_Release/ship/libhexagon_controller.so /path_to_mace/third_party/nnlib/armeabi-v7a/
or
cp android_Release_aarch64/ship/libhexagon_controller.so /path_to_mace/third_party/nnlib/arm64-v8a/
6) adb push hexagon_Release_dynamic_toolv83_v6x/ship/libhexagon_nn_skel.so /system/vendor/lib/rfsa/adsp/
(Replace with the actual V= path that gets created from the appropriate option from above)
7) To test it could run successfully, after (3),
adb shell mkdir -p /data/local/tmp/hexagon_nn
adb push android_Release/ship/controller_test /data/local/tmp/hexagon_nn/
adb shell "LD_LIBRARY_PATH=/data/local/tmp/hexagon_nn /data/local/tmp/hexagon_nn/controller_test"