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="Llama-3.2-3B-Instruct-Q4_0.gguf"
19[ "$M" != "" ] && model="$M"
20
21device="HTP0"
22[ "$D" != "" ] && device="$D"
23
24experimental=
25[ "$E" != "" ] && experimental="GGML_HEXAGON_EXPERIMENTAL=$E"
26
27verbose=
28[ "$V" != "" ] && verbose="GGML_HEXAGON_VERBOSE=$V" cli_opts="$cli_opts -v"
29
30sched=
31[ "$SCHED" != "" ] && sched="GGML_SCHED_DEBUG=2" cli_opts="$cli_opts -v"
32
33profile=
34[ "$PROF" != "" ] && profile="GGML_HEXAGON_PROFILE=$PROF GGML_HEXAGON_OPSYNC=1" cli_opts="$cli_opts -v"
35
36opmask=
37[ "$OPMASK" != "" ] && opmask="GGML_HEXAGON_OPMASK=$OPMASK"
38
39nhvx=
40[ "$NHVX" != "" ] && nhvx="GGML_HEXAGON_NHVX=$NHVX"
41
42ndev=
43[ "$NDEV" != "" ] && ndev="GGML_HEXAGON_NDEV=$NDEV"
44
45hb=
46[ "$HB" != "" ] && hb="GGML_HEXAGON_HOSTBUF=$HB"
47
48set -x
49
50adb $adbserial $adbhost shell " \
51  cd $basedir; ulimit -c unlimited;        \
52    LD_LIBRARY_PATH=$basedir/$branch/lib   \
53    ADSP_LIBRARY_PATH=$basedir/$branch/lib \
54    $verbose $experimental $sched $opmask $profile $nhvx $ndev $hb        \
55      ./$branch/bin/llama-completion --no-mmap -m $basedir/../gguf/$model \
56         --poll 1000 -t 6 --cpu-mask 0xfc --cpu-strict 1                  \
57         --ctx-size 8192 --batch-size 128 -fa on \
58         -ngl 99 -no-cnv --device $device $cli_opts $@   \
59"