add script to update llama.cpp

This commit is contained in:
Michael Yang 2023-07-19 18:39:36 -07:00
parent 924ce739f9
commit 5156e48c2a

61
llama/update-llama-cpp.sh Normal file
View file

@ -0,0 +1,61 @@
#!/bin/sh
set -eu
status() { echo >&2 ">>> $*"; }
error() { status "ERROR $*"; }
usage() {
echo "usage: $(basename $0) /path/to/repo"
exit 1
}
OUT=$(dirname $0)
while getopts "hC:" OPTION; do
case $OPTION in
C) OUT=$OPTARG ;;
*) usage ;;
esac
done
shift $(( $OPTIND - 1 ))
[ $# -eq 1 ] || usage
status "updating source..."
cp -a "$1"/*.{c,h,cpp,m,metal,cu} "$OUT"
status "removing incompatible files..."
rm -f "$OUT"/build-info.h
rm -f "$OUT"/ggml-{mpi,opencl}.*
SHA1=$(git -C $1 rev-parse @)
LICENSE=$(mktemp)
cleanup() {
rm -f $LICENSE
}
trap cleanup 0
cat <<EOF | sed 's/ *$//' >$LICENSE
/**
* llama.cpp - git $SHA1
*
$(sed 's/^/ * /' <$1/LICENSE)
*/
EOF
for f in $OUT/*.{c,h,cpp,m,metal,cu}; do
TMP=$(mktemp)
status "updating license: $f"
cat $LICENSE $f >$TMP
mv $TMP $f
done
status "touching up MacOS files..."
TMP=$(mktemp)
{
echo "// +build darwin"
echo
} | cat - $OUT/ggml-metal.m >$TMP
mv $TMP $OUT/ggml-metal.m