]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
examples : add GGML_USE_CPU=ON flag to whisper.objc (#2880)
authorDaniel Bevenius <redacted>
Fri, 14 Mar 2025 14:40:20 +0000 (15:40 +0100)
committerGitHub <redacted>
Fri, 14 Mar 2025 14:40:20 +0000 (15:40 +0100)
This commit adds the GGML_USE_CPU=ON flag to the whisper.objc project in
order to enable the CPU backend for the whisper.objc project.

The motivation for this change is that currently the following error
is generated when running the example:
```console
ggml_backend_buffer_type_t ggml_backend_get_default_buffer_type(ggml_backend_t backend) {
    return ggml_backend_dev_buffer_type(backend->device); <- Thread 1: EXC_BAD_ACCESS (code=1, address=0x70)
}
```
If we inspect the `backend` variable we can see that it is a `nullptr`.
```console
(lldb) p backend
(ggml_backend_t) nullptr
```
When running in a simulator and that automatically means that there will
be no gpu as there is a check for this in the code. But the CPU backend
should still be present.

The objective-c code will compile the whisper sources including the ggml
sources. And if `-DGGMLL_USE_CPU` is not defined then there will be no
CPU backend, and in this particular case of backend at all.

Resolves: https://github.com/ggerganov/whisper.cpp/issues/2870

examples/whisper.objc/whisper.objc.xcodeproj/project.pbxproj

index d0ab491309d1de3c444e95a2ca068e2b5e91159f..ca93ff989478c4354a927474d3b053b9b921cef6 100644 (file)
                                );
                                MARKETING_VERSION = 1.0;
                                MTL_HEADER_SEARCH_PATHS = "";
+                               OTHER_CFLAGS = "-DGGML_USE_CPU=ON";
                                PRODUCT_BUNDLE_IDENTIFIER = "com.ggerganov.whisper-objc";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                );
                                MARKETING_VERSION = 1.0;
                                MTL_HEADER_SEARCH_PATHS = "";
+                               OTHER_CFLAGS = "-DGGML_USE_CPU=ON";
                                PRODUCT_BUNDLE_IDENTIFIER = "com.ggerganov.whisper-objc";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SWIFT_EMIT_LOC_STRINGS = YES;