1#!/bin/sh
2#
3
4# Basedir on device
5basedir=/data/local/tmp/llama.cpp
6
7cli_opts=
8
9branch=.
10[ "$B" != "" ] && branch=$B
11
12adbserial=
13[ "$S" != "" ] && adbserial="-s $S"
14
15adbhost=
16[ "$H" != "" ] && adbhost="-H $H"
17
18model="gemma-3-4b-it-Q4_0.gguf"
19[ "$M" != "" ] && model="$M"
20
21mmproj="mmproj-F16.gguf"
22[ "$MMPROJ" != "" ] && mmproj="$MMPROJ"
23
24image=
25[ "$IMG" != "" ] && image="$IMG"
26
27device="HTP0"
28[ "$D" != "" ] && device="$D"
29
30verbose=
31[ "$V" != "" ] && verbose="GGML_HEXAGON_VERBOSE=$V"
32
33experimental="GGML_HEXAGON_EXPERIMENTAL=1"
34[ "$E" != "" ] && experimental="GGML_HEXAGON_EXPERIMENTAL=$E"
35
36sched=
37[ "$SCHED" != "" ] && sched="GGML_SCHED_DEBUG=2" cli_opts="$cli_opts -v"
38
39profile=
40[ "$PROF" != "" ] && profile="GGML_HEXAGON_PROFILE=$PROF GGML_HEXAGON_OPSYNC=1"
41
42opmask=
43[ "$OPMASK" != "" ] && opmask="GGML_HEXAGON_OPMASK=$OPMASK"
44
45nhvx=
46[ "$NHVX" != "" ] && nhvx="GGML_HEXAGON_NHVX=$NHVX"
47
48ndev=
49[ "$NDEV" != "" ] && ndev="GGML_HEXAGON_NDEV=$NDEV"
50
51# MTMD backend device for vision model (defaults to CPU if not set)
52mtmd_backend=
53[ "$MTMD_DEVICE" != "" ] && mtmd_backend="MTMD_BACKEND_DEVICE=$MTMD_DEVICE"
54
55set -x
56
57adb $adbserial $adbhost shell " \
58 cd $basedir; ulimit -c unlimited; \
59 LD_LIBRARY_PATH=$basedir/$branch/lib \
60 ADSP_LIBRARY_PATH=$basedir/$branch/lib \
61 $verbose $experimental $sched $opmask $profile $nhvx $ndev $mtmd_backend \
62 ./$branch/bin/llama-mtmd-cli --no-mmap -m $basedir/../gguf/$model \
63 --mmproj $basedir/../gguf/$mmproj \
64 --image $basedir/../gguf/$image \
65 --poll 1000 -t 6 --cpu-mask 0xfc --cpu-strict 1 \
66 --ctx-size 8192 --batch-size 128 -ctk q8_0 -ctv q8_0 -fa on \
67 -ngl 99 --device $device -v $cli_opts $@ \
68"