pre-patch

This commit is contained in:
jmorganca 2024-05-18 23:27:01 -07:00
parent 9fe48978a8
commit 785f76d390
2 changed files with 68 additions and 68 deletions

View File

@ -87,12 +87,7 @@ void ggml_backend_buffer_free(ggml_backend_buffer_t buffer) {
if (buffer->iface.free_buffer != NULL) { if (buffer->iface.free_buffer != NULL) {
buffer->iface.free_buffer(buffer); 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); free(buffer);
#endif
} }
size_t ggml_backend_buffer_get_size(ggml_backend_buffer_t buffer) { size_t ggml_backend_buffer_get_size(ggml_backend_buffer_t buffer) {

View File

@ -6,73 +6,78 @@ src_dir=$1
# Set the destination directory (current directory) # Set the destination directory (current directory)
dst_dir="." dst_dir="."
# # llama.cpp # llama.cpp
# cp $src_dir/unicode.cpp $dst_dir/unicode.cpp cp $src_dir/unicode.cpp $dst_dir/unicode.cpp
# cp $src_dir/unicode.h $dst_dir/unicode.h 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.cpp $dst_dir/unicode-data.cpp
# cp $src_dir/unicode-data.h $dst_dir/unicode-data.h cp $src_dir/unicode-data.h $dst_dir/unicode-data.h
# cp $src_dir/llama.cpp $dst_dir/llama.cpp cp $src_dir/llama.cpp $dst_dir/llama.cpp
# cp $src_dir/llama.h $dst_dir/llama.h cp $src_dir/llama.h $dst_dir/llama.h
# cp $src_dir/sgemm.cpp $dst_dir/sgemm.cpp cp $src_dir/sgemm.cpp $dst_dir/sgemm.cpp
# cp $src_dir/sgemm.h $dst_dir/sgemm.h cp $src_dir/sgemm.h $dst_dir/sgemm.h
# # ggml # ggml
# cp $src_dir/ggml.c $dst_dir/ggml.c cp $src_dir/ggml.c $dst_dir/ggml.c
# cp $src_dir/ggml.h $dst_dir/ggml.h 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.c $dst_dir/ggml-quants.c
# cp $src_dir/ggml-quants.h $dst_dir/ggml-quants.h 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.metal $dst_dir/ggml-metal.metal
# cp $src_dir/ggml-metal.h $dst_dir/ggml-metal.h 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-metal.m $dst_dir/ggml-metal.m
# cp $src_dir/ggml-impl.h $dst_dir/ggml-impl.h 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.h $dst_dir/ggml-cuda.h
# cp $src_dir/ggml-cuda.cu $dst_dir/ggml-cuda.cu 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-common.h $dst_dir/ggml-common.h
# cp $src_dir/ggml-backend.h $dst_dir/ggml-backend.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.c $dst_dir/ggml-backend.c
# cp $src_dir/ggml-backend-impl.h $dst_dir/ggml-backend-impl.h 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.h $dst_dir/ggml-alloc.h
# cp $src_dir/ggml-alloc.c $dst_dir/ggml-alloc.c cp $src_dir/ggml-alloc.c $dst_dir/ggml-alloc.c
# # ggml-cuda # ggml-cuda
# mkdir -p $dst_dir/ggml-cuda mkdir -p $dst_dir/ggml-cuda
# cp $src_dir/ggml-cuda/*.cu $dst_dir/ggml-cuda/ cp $src_dir/ggml-cuda/*.cu $dst_dir/ggml-cuda/
# cp $src_dir/ggml-cuda/*.cuh $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 # ggml-metal
# sed -i '34iGGML_API GGML_CALL ggml_backend_buffer_type_t ggml_backend_cuda_host_buffer_type(void);' ggml-cuda.h 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 # apply patches
# 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
# add license info # add license
LICENSE=$(mktemp) # sha1=$(git -C $src_dir rev-parse @)
cleanup() {
rm -f $LICENSE
}
trap cleanup 0
cat <<EOF | sed 's/ *$//' >$LICENSE # tempdir=$(mktemp)
/** # cleanup() {
* llama.cpp - git $SHA1 # rm -f $tempdir
* # }
$(sed 's/^/ * /' <$1/$src_dir/LICENSE) # trap cleanup 0
*/
for IN in $OUT/*.{c,h,cpp,m,metal,cu}; do # cat <<EOF | sed 's/ *$//' >$tempdir
TMP=$(mktemp) # /**
status "updating license $IN" # * llama.cpp - git $sha1
cat $LICENSE $IN >$TMP # *
mv $TMP $IN # $(sed 's/^/ * /' <$src_dir/LICENSE)
done # */
# 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