From 17a14593deeb06e0c99b842c8cbd39b636c5e368 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 5 Mar 2023 18:31:09 +0200 Subject: [PATCH] coreml : simlpify whisper_encode + log messages --- whisper.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/whisper.cpp b/whisper.cpp index ab242d7..54c9bec 100644 --- a/whisper.cpp +++ b/whisper.cpp @@ -1405,6 +1405,7 @@ static bool whisper_encode( } } +#ifndef WHISPER_USE_COREML struct ggml_tensor * cur; // convolution + gelu @@ -1704,9 +1705,6 @@ static bool whisper_encode( wctx.use_buf(ctx0, -1); // run the computation -#ifdef WHISPER_USE_COREML - whisper_coreml_encode(wctx.ctx_coreml, (float *) mel->data, (float *) cur->data); -#else { struct ggml_cgraph gf = {}; gf.n_threads = n_threads; @@ -1716,6 +1714,12 @@ static bool whisper_encode( //ggml_graph_print(&gf); } +#else + wctx.use_buf(ctx0, -1); + + struct ggml_tensor * cur = ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, n_state, n_ctx); + + whisper_coreml_encode(wctx.ctx_coreml, (float *) mel->data, (float *) cur->data); #endif // cur @@ -2569,12 +2573,15 @@ struct whisper_context * whisper_init_from_file(const char * path_model) { #ifdef WHISPER_USE_COREML const auto path_coreml = whisper_get_coreml_path(ctx->path_model); fprintf(stderr, "%s: loading Core ML model from '%s'\n", __func__, path_coreml.c_str()); + fprintf(stderr, "%s: first run on a device may take a while ...\n", __func__); ctx->ctx_coreml = whisper_coreml_init(path_coreml.c_str()); if (!ctx->ctx_coreml) { fprintf(stderr, "%s: failed to load Core ML model from '%s'\n", __func__, path_coreml.c_str()); return nullptr; } + + fprintf(stderr, "%s: Core ML model loaded\n", __func__); #endif }