diff options
author | Aarni Koskela <akx@iki.fi> | 2023-10-28 15:43:01 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-28 15:43:01 +0300 |
commit | 82a6646e0221216c41edcdf99f5a44bb051391f5 (patch) | |
tree | 8c0cf9dfa2db958ecd3c474b9d9d2bae6e955b95 | |
parent | ba231e8a6dd8ad82acfe0e4d492ff7cef6b3f0a1 (diff) |
metal : try cwd for ggml-metal.metal if bundle lookup fails (#3793)
* Try cwd for ggml-metal if bundle lookup fails
When building with `-DBUILD_SHARED_LIBS=ON -DLLAMA_METAL=ON -DLLAMA_BUILD_SERVER=ON`,
`server` would fail to load `ggml-metal.metal` because `[bundle pathForResource:...]`
returns `nil`. In that case, fall back to `ggml-metal.metal` in the cwd instead of
passing `null` as a path.
Follows up on #1782
* Update ggml-metal.m
---------
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
-rw-r--r-- | ggml-metal.m | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ggml-metal.m b/ggml-metal.m index c1901dca..2380c431 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -210,6 +210,10 @@ struct ggml_metal_context * ggml_metal_init(int n_cb) { GGML_METAL_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__); NSString * sourcePath = [bundle pathForResource:@"ggml-metal" ofType:@"metal"]; + if (sourcePath == nil) { + GGML_METAL_LOG_WARN("%s: error: could not use bundle path to find ggml-metal.metal, falling back to trying cwd\n", __func__); + sourcePath = @"ggml-metal.metal"; + } GGML_METAL_LOG_INFO("%s: loading '%s'\n", __func__, [sourcePath UTF8String]); NSString * src = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:&error]; if (error) { |