diff --git a/.github/workflows/kcpp-build-release-macos.yaml b/.github/workflows/kcpp-build-release-macos.yaml index fa20518e6..e95a0e719 100644 --- a/.github/workflows/kcpp-build-release-macos.yaml +++ b/.github/workflows/kcpp-build-release-macos.yaml @@ -43,7 +43,10 @@ jobs: mv build_artifacts/koboldcpp_default.so . chmod +x './create_ver_file.sh' . create_ver_file.sh - pyinstaller --noconfirm --onefile --collect-all customtkinter --collect-all jinja2 --collect-all psutil --add-data './koboldcpp_default.so:.' --add-data './koboldcpp_failsafe.so:.' --add-data './ggml-metal-merged.metal:.' --add-data './kcpp_adapters:./kcpp_adapters' --add-data './koboldcpp.py:.' --add-data './json_to_gbnf.py:.' --add-data './LICENSE.md:.' --add-data './MIT_LICENSE_GGML_SDCPP_LLAMACPP_ONLY.md:.' --add-data './embd_res:./embd_res' --version-file './version.txt' --clean --console koboldcpp.py -n "koboldcpp-mac-arm64" + mkdir -p kernels + cp ggml/src/ggml-metal/kernels/*.metal ggml/src/ggml-metal/kernels/*.h kernels/ + cp ggml/src/ggml-common.h ggml/src/ggml-metal/ggml-metal-impl.h kernels/ + pyinstaller --noconfirm --onefile --collect-all customtkinter --collect-all jinja2 --collect-all psutil --add-data './koboldcpp_default.so:.' --add-data './koboldcpp_failsafe.so:.' --add-data './kernels:./kernels' --add-data './kcpp_adapters:./kcpp_adapters' --add-data './koboldcpp.py:.' --add-data './json_to_gbnf.py:.' --add-data './LICENSE.md:.' --add-data './MIT_LICENSE_GGML_SDCPP_LLAMACPP_ONLY.md:.' --add-data './embd_res:./embd_res' --version-file './version.txt' --clean --console koboldcpp.py -n "koboldcpp-mac-arm64" - name: Test id: test diff --git a/koboldcpp.py b/koboldcpp.py index c9d4f0a72..b76dc1a34 100644 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -962,6 +962,11 @@ def init_library(): dir_path = getdirpath() abs_path = getabspath() + if os.name == 'posix' and "GGML_METAL_PATH_RESOURCES" not in os.environ: + metal_resource_path = os.path.join(dir_path, "kernels") + if os.path.isdir(metal_resource_path): + os.environ["GGML_METAL_PATH_RESOURCES"] = dir_path + #add all potential paths if os.name=='nt': os.add_dll_directory(dir_path)