#!/usr/bin/env bash MODEL="${1:-models/quantized_q4km.gguf}" PROMPT="${2:-Hallo BitNet}" TOKENS="${3:-64}" THREADS=$(nproc) VK_ICD_FILENAMES="$PREFIX/share/vulkan/icd.d/freedreno_icd.aarch64.json" KMP_AFFINITY="disabled" EXECUTABLE_DISABLE_MTE="1" echo "Model: $MODEL" echo "Threads: $THREADS" echo "Prompt: $PROMPT" echo "Max new tokens: $TOKENS" START_LOAD=$(date +%s) export LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib/python3.13/site-packages/lib:/data/data/com.termux/files/usr/lib:$LD_LIBRARY_PATH python3 run_inference.py --model "$MODEL" --backend llama.cpp --threads $THREADS --n_ctx 512 --max_new_tokens 1 --prompt "$PROMPT" >/dev/null 2>&1 END_LOAD=$(date +%s) LOAD_SEC=$((END_LOAD-START_LOAD)) echo "Model load + first token time: ${LOAD_SEC}s (approx)" # Measure generation time for TOKENS START_GEN=$(date +%s.%N) python3 run_inference.py --model "$MODEL" --backend llama.cpp --threads $THREADS --n_ctx 512 --max_new_tokens $TOKENS --prompt "$PROMPT" --no-stream >/dev/null 2>&1 END_GEN=$(date +%s.%N) GEN_SEC=$(echo "$END_GEN - $START_GEN" | bc -l) TOK_PER_SEC=$(echo "$TOKENS / $GEN_SEC" | bc -l) printf "Generated %s tokens in %.2f s → %.2f tokens/s\n" "$TOKENS" "$GEN_SEC" "$TOK_PER_SEC"