From 785f76d39069f8e43ddd3a579533bc1c7cda7aa9 Mon Sep 17 00:00:00 2001 From: jmorganca Date: Sat, 18 May 2024 23:27:01 -0700 Subject: [PATCH] pre-patch --- llama/ggml-backend.c | 5 -- llama/sync.sh | 131 ++++++++++++++++++++++--------------------- 2 files changed, 68 insertions(+), 68 deletions(-) diff --git a/llama/ggml-backend.c b/llama/ggml-backend.c index 179be840..9e35ce98 100644 --- a/llama/ggml-backend.c +++ b/llama/ggml-backend.c @@ -87,12 +87,7 @@ void ggml_backend_buffer_free(ggml_backend_buffer_t buffer) { if (buffer->iface.free_buffer != NULL) { buffer->iface.free_buffer(buffer); } - -// TODO: this needs to be freed in cuda and hipblas backends because -// the cuda backend implementation compiled with msvc -#if !defined(GGML_USE_CUDA) && !defined(GGML_USE_HIPBLAS) free(buffer); -#endif } size_t ggml_backend_buffer_get_size(ggml_backend_buffer_t buffer) { diff --git a/llama/sync.sh b/llama/sync.sh index 5fc00222..d3843b6b 100755 --- a/llama/sync.sh +++ b/llama/sync.sh @@ -6,73 +6,78 @@ src_dir=$1 # Set the destination directory (current directory) dst_dir="." -# # llama.cpp -# cp $src_dir/unicode.cpp $dst_dir/unicode.cpp -# cp $src_dir/unicode.h $dst_dir/unicode.h -# cp $src_dir/unicode-data.cpp $dst_dir/unicode-data.cpp -# cp $src_dir/unicode-data.h $dst_dir/unicode-data.h -# cp $src_dir/llama.cpp $dst_dir/llama.cpp -# cp $src_dir/llama.h $dst_dir/llama.h -# cp $src_dir/sgemm.cpp $dst_dir/sgemm.cpp -# cp $src_dir/sgemm.h $dst_dir/sgemm.h +# llama.cpp +cp $src_dir/unicode.cpp $dst_dir/unicode.cpp +cp $src_dir/unicode.h $dst_dir/unicode.h +cp $src_dir/unicode-data.cpp $dst_dir/unicode-data.cpp +cp $src_dir/unicode-data.h $dst_dir/unicode-data.h +cp $src_dir/llama.cpp $dst_dir/llama.cpp +cp $src_dir/llama.h $dst_dir/llama.h +cp $src_dir/sgemm.cpp $dst_dir/sgemm.cpp +cp $src_dir/sgemm.h $dst_dir/sgemm.h -# # ggml -# cp $src_dir/ggml.c $dst_dir/ggml.c -# cp $src_dir/ggml.h $dst_dir/ggml.h -# cp $src_dir/ggml-quants.c $dst_dir/ggml-quants.c -# cp $src_dir/ggml-quants.h $dst_dir/ggml-quants.h -# cp $src_dir/ggml-metal.metal $dst_dir/ggml-metal.metal -# cp $src_dir/ggml-metal.h $dst_dir/ggml-metal.h -# cp $src_dir/ggml-metal.m $dst_dir/ggml-metal.m -# cp $src_dir/ggml-impl.h $dst_dir/ggml-impl.h -# cp $src_dir/ggml-cuda.h $dst_dir/ggml-cuda.h -# cp $src_dir/ggml-cuda.cu $dst_dir/ggml-cuda.cu -# cp $src_dir/ggml-common.h $dst_dir/ggml-common.h -# cp $src_dir/ggml-backend.h $dst_dir/ggml-backend.h -# cp $src_dir/ggml-backend.c $dst_dir/ggml-backend.c -# cp $src_dir/ggml-backend-impl.h $dst_dir/ggml-backend-impl.h -# cp $src_dir/ggml-alloc.h $dst_dir/ggml-alloc.h -# cp $src_dir/ggml-alloc.c $dst_dir/ggml-alloc.c +# ggml +cp $src_dir/ggml.c $dst_dir/ggml.c +cp $src_dir/ggml.h $dst_dir/ggml.h +cp $src_dir/ggml-quants.c $dst_dir/ggml-quants.c +cp $src_dir/ggml-quants.h $dst_dir/ggml-quants.h +cp $src_dir/ggml-metal.metal $dst_dir/ggml-metal.metal +cp $src_dir/ggml-metal.h $dst_dir/ggml-metal.h +cp $src_dir/ggml-metal.m $dst_dir/ggml-metal.m +cp $src_dir/ggml-impl.h $dst_dir/ggml-impl.h +cp $src_dir/ggml-cuda.h $dst_dir/ggml-cuda.h +cp $src_dir/ggml-cuda.cu $dst_dir/ggml-cuda.cu +cp $src_dir/ggml-common.h $dst_dir/ggml-common.h +cp $src_dir/ggml-backend.h $dst_dir/ggml-backend.h +cp $src_dir/ggml-backend.c $dst_dir/ggml-backend.c +cp $src_dir/ggml-backend-impl.h $dst_dir/ggml-backend-impl.h +cp $src_dir/ggml-alloc.h $dst_dir/ggml-alloc.h +cp $src_dir/ggml-alloc.c $dst_dir/ggml-alloc.c -# # ggml-cuda -# mkdir -p $dst_dir/ggml-cuda -# cp $src_dir/ggml-cuda/*.cu $dst_dir/ggml-cuda/ -# cp $src_dir/ggml-cuda/*.cuh $dst_dir/ggml-cuda/ +# ggml-cuda +mkdir -p $dst_dir/ggml-cuda +cp $src_dir/ggml-cuda/*.cu $dst_dir/ggml-cuda/ +cp $src_dir/ggml-cuda/*.cuh $dst_dir/ggml-cuda/ -# sed -i 's/extern "C" GGML_CALL int ggml_backend_cuda_reg_devices();/\/\/ extern "C" GGML_CALL int ggml_backend_cuda_reg_devices();/' ggml-cuda.cu -# sed -i '34iGGML_API GGML_CALL ggml_backend_buffer_type_t ggml_backend_cuda_host_buffer_type(void);' ggml-cuda.h +# ggml-metal +sed -i '' '1s;^;//go:build darwin,arm64\n;' ggml-metal.m +sed -e '/#include "ggml-common.h"/r ggml-common.h' -e '/#include "ggml-common.h"/d' < ggml-metal.metal > temp.metal +TEMP_ASSEMBLY=$(mktemp) +echo ".section __DATA, __ggml_metallib" > $TEMP_ASSEMBLY +echo ".globl _ggml_metallib_start" >> $TEMP_ASSEMBLY +echo "_ggml_metallib_start:" >> $TEMP_ASSEMBLY +echo ".incbin \"temp.metal\"" >> $TEMP_ASSEMBLY +echo ".globl _ggml_metallib_end" >> $TEMP_ASSEMBLY +echo "_ggml_metallib_end:" >> $TEMP_ASSEMBLY +as -mmacosx-version-min=11.3 $TEMP_ASSEMBLY -o ggml-metal.o +rm -f $TEMP_ASSEMBLY +rm -rf temp.metal -# # ggml-metal -# sed -i '' '1s;^;//go:build darwin,arm64\n;' ggml-metal.m -# sed -e '/#include "ggml-common.h"/r ggml-common.h' -e '/#include "ggml-common.h"/d' < ggml-metal.metal > temp.metal -# TEMP_ASSEMBLY=$(mktemp) -# echo ".section __DATA, __ggml_metallib" > $TEMP_ASSEMBLY -# echo ".globl _ggml_metallib_start" >> $TEMP_ASSEMBLY -# echo "_ggml_metallib_start:" >> $TEMP_ASSEMBLY -# echo ".incbin \"temp.metal\"" >> $TEMP_ASSEMBLY -# echo ".globl _ggml_metallib_end" >> $TEMP_ASSEMBLY -# echo "_ggml_metallib_end:" >> $TEMP_ASSEMBLY -# as -mmacosx-version-min=11.3 $TEMP_ASSEMBLY -o ggml-metal.o -# rm -f $TEMP_ASSEMBLY -# rm -rf temp.metal +# apply patches -# add license info -LICENSE=$(mktemp) -cleanup() { - rm -f $LICENSE -} -trap cleanup 0 +# add license +# sha1=$(git -C $src_dir rev-parse @) -cat <$LICENSE -/** - * llama.cpp - git $SHA1 - * -$(sed 's/^/ * /' <$1/$src_dir/LICENSE) - */ +# tempdir=$(mktemp) +# cleanup() { +# rm -f $tempdir +# } +# trap cleanup 0 -for IN in $OUT/*.{c,h,cpp,m,metal,cu}; do - TMP=$(mktemp) - status "updating license $IN" - cat $LICENSE $IN >$TMP - mv $TMP $IN -done +# cat <$tempdir +# /** +# * llama.cpp - git $sha1 +# * +# $(sed 's/^/ * /' <$src_dir/LICENSE) +# */ + +# EOF + +# for IN in $dst_dir/*.{c,h,cpp,m,metal,cu}; do +# if [[ "$IN" == *"sgemm.cpp" || "$IN" == *"sgemm.h" ]]; then +# continue +# fi +# TMP=$(mktemp) +# cat $tempdir $IN >$TMP +# mv $TMP $IN +# done