diff options
author | Jhen-Jie Hong <iainst0409@gmail.com> | 2023-08-14 21:37:39 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-14 16:37:39 +0300 |
commit | d783f7982e0e823a2626a9956359c0d36c1a7e21 (patch) | |
tree | bc9f49614cd4dbb333a964ff221b9c1c1f6ff3a7 | |
parent | d75561df207d22790609ee0ad924302f66ac2599 (diff) |
metal : return null instead of exit(1) (#2573)
-rw-r--r-- | ggml-metal.m | 6 | ||||
-rw-r--r-- | llama.cpp | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/ggml-metal.m b/ggml-metal.m index b47a98e2..fbac21e3 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -126,7 +126,7 @@ struct ggml_metal_context * ggml_metal_init(int n_cb) { ctx->library = [ctx->device newLibraryWithSource:msl_library_source options:nil error:&error]; if (error) { fprintf(stderr, "%s: error: %s\n", __func__, [[error description] UTF8String]); - exit(1); + return NULL; } } #else @@ -144,7 +144,7 @@ struct ggml_metal_context * ggml_metal_init(int n_cb) { NSString * src = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error) { fprintf(stderr, "%s: error: %s\n", __func__, [[error description] UTF8String]); - exit(1); + return NULL; } #ifdef GGML_QKK_64 @@ -156,7 +156,7 @@ struct ggml_metal_context * ggml_metal_init(int n_cb) { #endif if (error) { fprintf(stderr, "%s: error: %s\n", __func__, [[error description] UTF8String]); - exit(1); + return NULL; } } #endif @@ -3337,6 +3337,12 @@ struct llama_context * llama_new_context_with_model( // this allocates all Metal resources and memory buffers ctx->ctx_metal = ggml_metal_init(1); + if (!ctx->ctx_metal) { + LLAMA_LOG_ERROR("%s: ggml_metal_init() failed\n", __func__); + llama_free(ctx); + return NULL; + } + void * data_ptr = NULL; size_t data_size = 0; |