@@ -7,13 +7,17 @@ ANDROID_PLATFORM=android-34
7
7
ANDROID_NDK=${PWD} /android-ndk-r26c
8
8
REMOTE_PATH=/data/local/tmp/
9
9
GGUF_MODEL_NAME=/sdcard/deepseek-r1-distill-qwen-1.5b-q4_0.gguf
10
+ GGUF_MODEL_NAME=/sdcard/qwen1_5-1_8b-chat-q4_0.gguf
10
11
11
12
# QNN SDK could be found at:
12
13
# https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
13
14
# https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools
14
15
QNN_SDK_URL=https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
15
16
QNN_SDK_PATH=/opt/qcom/aistack/qairt/2.31.0.250130/
16
17
18
+ # default is QNN NPU
19
+ qnnbackend=2
20
+
17
21
function dump_vars()
18
22
{
19
23
echo -e " ANDROID_NDK: ${ANDROID_NDK} "
@@ -137,10 +141,28 @@ function run_llamacli()
137
141
138
142
adb shell " cd ${REMOTE_PATH} \
139
143
&& export LD_LIBRARY_PATH=${REMOTE_PATH} \
140
- && ${REMOTE_PATH} /llama-cli -mg 2 -m ${GGUF_MODEL_NAME} -p \" introduce the movie Once Upon a Time in America briefly.\n\" "
144
+ && ${REMOTE_PATH} /llama-cli -mg ${qnnbackend} -m ${GGUF_MODEL_NAME} -p \" introduce the movie Once Upon a Time in America briefly.\n\" "
141
145
142
146
}
143
147
148
+
149
+ function run_llamabench()
150
+ {
151
+ check_qnn_libs
152
+
153
+ if [ -f ./out/android/bin/libggml-qnn.so ]; then
154
+ adb push ./out/android/bin/* .so ${REMOTE_PATH} /
155
+ fi
156
+ adb push ./out/android/bin/llama-bench ${REMOTE_PATH} /
157
+ adb shell chmod +x ${REMOTE_PATH} /llama-bench
158
+
159
+ adb shell " cd ${REMOTE_PATH} \
160
+ && export LD_LIBRARY_PATH=${REMOTE_PATH} \
161
+ && ${REMOTE_PATH} /llama-bench -mg ${qnnbackend} -m ${GGUF_MODEL_NAME} "
162
+
163
+ }
164
+
165
+
144
166
function run_test-backend-ops()
145
167
{
146
168
check_qnn_libs
@@ -163,8 +185,9 @@ function show_usage()
163
185
echo " Usage:"
164
186
echo " $0 build"
165
187
echo " $0 updateqnnlib"
166
- echo " $0 run_llamacli"
167
188
echo " $0 run_testop"
189
+ echo " $0 run_llamacli 0 (QNN_CPU) / 1 (QNN_GPU) / 2 (QNN_NPU) / 3 (ggml)"
190
+ echo " $0 run_llamabench 0 (QNN_CPU) / 1 (QNN_GPU) / 2 (QNN_NPU) / 3 (ggml)"
168
191
echo -e " \n\n\n"
169
192
}
170
193
@@ -186,15 +209,30 @@ elif [ $# == 1 ]; then
186
209
elif [ " $1 " == " build" ]; then
187
210
build_ggml_qnn
188
211
exit 0
189
- elif [ " $1 " == " run_llamacli" ]; then
190
- run_llamacli
191
- exit 0
212
+
192
213
elif [ " $1 " == " run_testop" ]; then
193
214
run_test-backend-ops
194
215
exit 0
195
216
elif [ " $1 " == " updateqnnlib" ]; then
196
217
update_qnn_libs
197
218
exit 0
219
+ else
220
+ show_usage
221
+ exit 1
222
+ fi
223
+ elif [ $# == 2 ]; then
224
+ qnnbackend=$2
225
+ if [ ${qnnbackend} -gt 3 ]; then
226
+ show_usage
227
+ exit 1
228
+ fi
229
+
230
+ if [ " $1 " == " run_llamacli" ]; then
231
+ run_llamacli
232
+ exit 0
233
+ elif [ " $1 " == " run_llamabench" ]; then
234
+ run_llamabench
235
+ exit 0
198
236
fi
199
237
else
200
238
show_usage
0 commit comments