Skip to content

Commit d47f1e2

Browse files
committed
Merge tag 'v1.7.4'
* tag 'v1.7.4': (32 commits) release : v1.7.4 ci : cont ci : fix ubuntu runner names cli : fix segfault on missing argument (ggml-org#2700) ci : fix arm builds sync : ggml ggml : do not install metal source when embed library (ggml/1054) metal : avoid uint (llama/11019) ggml : fixes for AVXVNNI instruction set with MSVC and Clang (llama/11027) vulkan: optimize mul_mat for small values of N (llama/10991) vulkan: im2col and matmul optimizations for stable diffusion (llama/10942) vulkan: Use push constant offset to handle misaligned descriptors (llama/10987) vulkan: multi-row k quants (llama/10846) examples, ggml : fix GCC compiler warnings (llama/10983) ggml : more perfo with llamafile tinyblas on x86_64 (llama/10714) ggml : use wstring for backend search paths (llama/10960) ggml : fix arm enabled features check (llama/10961) ggml : fix const usage in SSE path (llama/10962) ggml : fix run-time on FreeBSD in get_executable_path() (llama/10948) vulkan: build fixes for 32b (llama/10927) ...
2 parents 46d96d4 + 8a9ad78 commit d47f1e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1728
-1375
lines changed

.github/workflows/build.yml

Lines changed: 121 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
name: CI
2-
on: [push, pull_request]
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
types: [opened, synchronize, reopened]
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
12+
cancel-in-progress: true
313

414
env:
515
ubuntu_image: "ubuntu:22.04"
@@ -12,7 +22,7 @@ jobs:
1222
strategy:
1323
fail-fast: false
1424
matrix:
15-
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
25+
arch: [linux/amd64, linux/ppc64le]
1626

1727
steps:
1828
- name: Clone
@@ -32,6 +42,58 @@ jobs:
3242
cmake -B build
3343
cmake --build build --config Release -j $(nproc)'
3444
45+
ubuntu-latest-arm64:
46+
runs-on: ubuntu-latest
47+
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
arch: [linux/arm64]
52+
53+
steps:
54+
- name: Clone
55+
uses: actions/checkout@v4
56+
57+
- name: Set up QEMU
58+
uses: docker/setup-qemu-action@v3
59+
60+
- name: Build ${{ matrix.arch }}
61+
run: |
62+
docker run --platform ${{ matrix.arch }} --rm \
63+
-v ${{ github.workspace }}:/workspace \
64+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
65+
set -e
66+
apt update
67+
apt install -y build-essential libsdl2-dev cmake
68+
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
69+
cmake --build build --config Release -j $(nproc)'
70+
71+
ubuntu-latest-arm-v7:
72+
runs-on: ubuntu-latest
73+
74+
strategy:
75+
fail-fast: false
76+
matrix:
77+
arch: [linux/arm/v7]
78+
79+
steps:
80+
- name: Clone
81+
uses: actions/checkout@v4
82+
83+
- name: Set up QEMU
84+
uses: docker/setup-qemu-action@v3
85+
86+
- name: Build ${{ matrix.arch }}
87+
run: |
88+
docker run --platform ${{ matrix.arch }} --rm \
89+
-v ${{ github.workspace }}:/workspace \
90+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
91+
set -e
92+
apt update
93+
apt install -y build-essential libsdl2-dev cmake
94+
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp
95+
cmake --build build --config Release -j $(nproc)'
96+
3597
macOS-latest:
3698
runs-on: macOS-latest
3799

@@ -74,7 +136,7 @@ jobs:
74136
fail-fast: false
75137
matrix:
76138
build: [Debug, Release]
77-
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
139+
arch: [linux/amd64, linux/ppc64le]
78140

79141
steps:
80142
- name: Clone
@@ -95,6 +157,62 @@ jobs:
95157
make
96158
ctest -L gh --output-on-failure'
97159
160+
ubuntu-latest-gcc-arm64:
161+
runs-on: ubuntu-latest
162+
163+
strategy:
164+
fail-fast: false
165+
matrix:
166+
build: [Debug, Release]
167+
arch: [linux/arm64]
168+
169+
steps:
170+
- name: Clone
171+
uses: actions/checkout@v4
172+
173+
- name: Set up QEMU
174+
uses: docker/setup-qemu-action@v3
175+
176+
- name: Build ${{ matrix.arch }}
177+
run: |
178+
docker run --platform ${{ matrix.arch }} --rm \
179+
-v ${{ github.workspace }}:/workspace \
180+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
181+
set -e
182+
apt update
183+
apt install -y build-essential cmake libsdl2-dev
184+
cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
185+
make
186+
ctest -L gh --output-on-failure'
187+
188+
ubuntu-latest-gcc-arm-v7:
189+
runs-on: ubuntu-latest
190+
191+
strategy:
192+
fail-fast: false
193+
matrix:
194+
build: [Debug, Release]
195+
arch: [linux/arm/v7]
196+
197+
steps:
198+
- name: Clone
199+
uses: actions/checkout@v4
200+
201+
- name: Set up QEMU
202+
uses: docker/setup-qemu-action@v3
203+
204+
- name: Build ${{ matrix.arch }}
205+
run: |
206+
docker run --platform ${{ matrix.arch }} --rm \
207+
-v ${{ github.workspace }}:/workspace \
208+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
209+
set -e
210+
apt update
211+
apt install -y build-essential cmake libsdl2-dev
212+
cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp
213+
make
214+
ctest -L gh --output-on-failure'
215+
98216
ubuntu-latest-clang:
99217
runs-on: ubuntu-latest
100218

.github/workflows/docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
matrix:
1919
config:
20-
- { tag: "main", dockerfile: ".devops/main.Dockerfile", platform: "linux/amd64,linux/arm64" }
20+
- { tag: "main", dockerfile: ".devops/main.Dockerfile", platform: "linux/amd64" }
2121
#TODO: the cuda image keeps failing - disable for now
2222
# https://github.com/ggerganov/whisper.cpp/actions/runs/11019444428/job/30602020339
2323
#- { tag: "main-cuda", dockerfile: ".devops/main-cuda.Dockerfile", platform: "linux/amd64" }

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.5) # for add_link_options and implicit target directories.
22
project("whisper.cpp" C CXX)
3-
project("whisper.cpp" VERSION 1.7.3)
3+
project("whisper.cpp" VERSION 1.7.4)
44
include(CheckIncludeFileCXX)
55

66
set(SOVERSION 1)

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![Conan Center](https://shields.io/conan/v/whisper-cpp)](https://conan.io/center/whisper-cpp)
88
[![npm](https://img.shields.io/npm/v/whisper.cpp.svg)](https://www.npmjs.com/package/whisper.cpp/)
99

10-
Stable: [v1.7.3](https://github.com/ggerganov/whisper.cpp/releases/tag/v1.7.3) / [Roadmap | F.A.Q.](https://github.com/ggerganov/whisper.cpp/discussions/126)
10+
Stable: [v1.7.4](https://github.com/ggerganov/whisper.cpp/releases/tag/v1.7.4) / [Roadmap | F.A.Q.](https://github.com/ggerganov/whisper.cpp/discussions/126)
1111

1212
High-performance inference of [OpenAI's Whisper](https://github.com/openai/whisper) automatic speech recognition (ASR) model:
1313

@@ -293,7 +293,7 @@ This can result in significant speedup in encoder performance. Here are the inst
293293
The first time run on an OpenVINO device is slow, since the OpenVINO framework will compile the IR (Intermediate Representation) model to a device-specific 'blob'. This device-specific blob will get
294294
cached for the next run.
295295

296-
For more information about the Core ML implementation please refer to PR [#1037](https://github.com/ggerganov/whisper.cpp/pull/1037).
296+
For more information about the OpenVINO implementation please refer to PR [#1037](https://github.com/ggerganov/whisper.cpp/pull/1037).
297297

298298
## NVIDIA GPU support
299299

@@ -381,9 +381,9 @@ The [stream](examples/stream) tool samples the audio every half a second and run
381381
More info is available in [issue #10](https://github.com/ggerganov/whisper.cpp/issues/10).
382382

383383
```bash
384-
cmake -B build
384+
cmake -B build -DWHISPER_SDL2=ON
385385
cmake --build build --config Release
386-
./build/bin/stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000
386+
./build/bin/whisper-stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000
387387
```
388388

389389
https://user-images.githubusercontent.com/1991296/194935793-76afede7-cfa8-48d8-a80f-28ba83be7d09.mp4

bindings/javascript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "whisper.cpp",
3-
"version": "1.7.3",
3+
"version": "1.7.4",
44
"description": "Whisper speech recognition",
55
"main": "whisper.js",
66
"scripts": {

examples/cli/cli.cpp

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ static char * whisper_param_turn_lowercase(char * in){
106106
return in;
107107
}
108108

109+
static char * requires_value_error(const std::string & arg) {
110+
fprintf(stderr, "error: argument %s requires value\n", arg.c_str());
111+
exit(0);
112+
}
113+
109114
static bool whisper_params_parse(int argc, char ** argv, whisper_params & params) {
110115
for (int i = 1; i < argc; i++) {
111116
std::string arg = argv[i];
@@ -124,22 +129,23 @@ static bool whisper_params_parse(int argc, char ** argv, whisper_params & params
124129
whisper_print_usage(argc, argv, params);
125130
exit(0);
126131
}
127-
else if (arg == "-t" || arg == "--threads") { params.n_threads = std::stoi(argv[++i]); }
128-
else if (arg == "-p" || arg == "--processors") { params.n_processors = std::stoi(argv[++i]); }
129-
else if (arg == "-ot" || arg == "--offset-t") { params.offset_t_ms = std::stoi(argv[++i]); }
130-
else if (arg == "-on" || arg == "--offset-n") { params.offset_n = std::stoi(argv[++i]); }
131-
else if (arg == "-d" || arg == "--duration") { params.duration_ms = std::stoi(argv[++i]); }
132-
else if (arg == "-mc" || arg == "--max-context") { params.max_context = std::stoi(argv[++i]); }
133-
else if (arg == "-ml" || arg == "--max-len") { params.max_len = std::stoi(argv[++i]); }
134-
else if (arg == "-bo" || arg == "--best-of") { params.best_of = std::stoi(argv[++i]); }
135-
else if (arg == "-bs" || arg == "--beam-size") { params.beam_size = std::stoi(argv[++i]); }
136-
else if (arg == "-ac" || arg == "--audio-ctx") { params.audio_ctx = std::stoi(argv[++i]); }
137-
else if (arg == "-wt" || arg == "--word-thold") { params.word_thold = std::stof(argv[++i]); }
138-
else if (arg == "-et" || arg == "--entropy-thold") { params.entropy_thold = std::stof(argv[++i]); }
139-
else if (arg == "-lpt" || arg == "--logprob-thold") { params.logprob_thold = std::stof(argv[++i]); }
140-
else if (arg == "-nth" || arg == "--no-speech-thold") { params.no_speech_thold = std::stof(argv[++i]); }
141-
else if (arg == "-tp" || arg == "--temperature") { params.temperature = std::stof(argv[++i]); }
142-
else if (arg == "-tpi" || arg == "--temperature-inc") { params.temperature_inc = std::stof(argv[++i]); }
132+
#define ARGV_NEXT (((i + 1) < argc) ? argv[++i] : requires_value_error(arg))
133+
else if (arg == "-t" || arg == "--threads") { params.n_threads = std::stoi(ARGV_NEXT); }
134+
else if (arg == "-p" || arg == "--processors") { params.n_processors = std::stoi(ARGV_NEXT); }
135+
else if (arg == "-ot" || arg == "--offset-t") { params.offset_t_ms = std::stoi(ARGV_NEXT); }
136+
else if (arg == "-on" || arg == "--offset-n") { params.offset_n = std::stoi(ARGV_NEXT); }
137+
else if (arg == "-d" || arg == "--duration") { params.duration_ms = std::stoi(ARGV_NEXT); }
138+
else if (arg == "-mc" || arg == "--max-context") { params.max_context = std::stoi(ARGV_NEXT); }
139+
else if (arg == "-ml" || arg == "--max-len") { params.max_len = std::stoi(ARGV_NEXT); }
140+
else if (arg == "-bo" || arg == "--best-of") { params.best_of = std::stoi(ARGV_NEXT); }
141+
else if (arg == "-bs" || arg == "--beam-size") { params.beam_size = std::stoi(ARGV_NEXT); }
142+
else if (arg == "-ac" || arg == "--audio-ctx") { params.audio_ctx = std::stoi(ARGV_NEXT); }
143+
else if (arg == "-wt" || arg == "--word-thold") { params.word_thold = std::stof(ARGV_NEXT); }
144+
else if (arg == "-et" || arg == "--entropy-thold") { params.entropy_thold = std::stof(ARGV_NEXT); }
145+
else if (arg == "-lpt" || arg == "--logprob-thold") { params.logprob_thold = std::stof(ARGV_NEXT); }
146+
else if (arg == "-nth" || arg == "--no-speech-thold") { params.no_speech_thold = std::stof(ARGV_NEXT); }
147+
else if (arg == "-tp" || arg == "--temperature") { params.temperature = std::stof(ARGV_NEXT); }
148+
else if (arg == "-tpi" || arg == "--temperature-inc") { params.temperature_inc = std::stof(ARGV_NEXT); }
143149
else if (arg == "-debug"|| arg == "--debug-mode") { params.debug_mode = true; }
144150
else if (arg == "-tr" || arg == "--translate") { params.translate = true; }
145151
else if (arg == "-di" || arg == "--diarize") { params.diarize = true; }
@@ -151,31 +157,31 @@ static bool whisper_params_parse(int argc, char ** argv, whisper_params & params
151157
else if (arg == "-osrt" || arg == "--output-srt") { params.output_srt = true; }
152158
else if (arg == "-owts" || arg == "--output-words") { params.output_wts = true; }
153159
else if (arg == "-olrc" || arg == "--output-lrc") { params.output_lrc = true; }
154-
else if (arg == "-fp" || arg == "--font-path") { params.font_path = argv[++i]; }
160+
else if (arg == "-fp" || arg == "--font-path") { params.font_path = ARGV_NEXT; }
155161
else if (arg == "-ocsv" || arg == "--output-csv") { params.output_csv = true; }
156162
else if (arg == "-oj" || arg == "--output-json") { params.output_jsn = true; }
157163
else if (arg == "-ojf" || arg == "--output-json-full"){ params.output_jsn_full = params.output_jsn = true; }
158-
else if (arg == "-of" || arg == "--output-file") { params.fname_out.emplace_back(argv[++i]); }
164+
else if (arg == "-of" || arg == "--output-file") { params.fname_out.emplace_back(ARGV_NEXT); }
159165
else if (arg == "-np" || arg == "--no-prints") { params.no_prints = true; }
160166
else if (arg == "-ps" || arg == "--print-special") { params.print_special = true; }
161167
else if (arg == "-pc" || arg == "--print-colors") { params.print_colors = true; }
162168
else if (arg == "-pp" || arg == "--print-progress") { params.print_progress = true; }
163169
else if (arg == "-nt" || arg == "--no-timestamps") { params.no_timestamps = true; }
164-
else if (arg == "-l" || arg == "--language") { params.language = whisper_param_turn_lowercase(argv[++i]); }
170+
else if (arg == "-l" || arg == "--language") { params.language = whisper_param_turn_lowercase(ARGV_NEXT); }
165171
else if (arg == "-dl" || arg == "--detect-language") { params.detect_language = true; }
166-
else if ( arg == "--prompt") { params.prompt = argv[++i]; }
167-
else if (arg == "-m" || arg == "--model") { params.model = argv[++i]; }
168-
else if (arg == "-f" || arg == "--file") { params.fname_inp.emplace_back(argv[++i]); }
169-
else if (arg == "-oved" || arg == "--ov-e-device") { params.openvino_encode_device = argv[++i]; }
170-
else if (arg == "-dtw" || arg == "--dtw") { params.dtw = argv[++i]; }
172+
else if ( arg == "--prompt") { params.prompt = ARGV_NEXT; }
173+
else if (arg == "-m" || arg == "--model") { params.model = ARGV_NEXT; }
174+
else if (arg == "-f" || arg == "--file") { params.fname_inp.emplace_back(ARGV_NEXT); }
175+
else if (arg == "-oved" || arg == "--ov-e-device") { params.openvino_encode_device = ARGV_NEXT; }
176+
else if (arg == "-dtw" || arg == "--dtw") { params.dtw = ARGV_NEXT; }
171177
else if (arg == "-ls" || arg == "--log-score") { params.log_score = true; }
172178
else if (arg == "-ng" || arg == "--no-gpu") { params.use_gpu = false; }
173179
else if (arg == "-fa" || arg == "--flash-attn") { params.flash_attn = true; }
174180
else if (arg == "-sns" || arg == "--suppress-nst") { params.suppress_nst = true; }
175-
else if ( arg == "--suppress-regex") { params.suppress_regex = argv[++i]; }
176-
else if ( arg == "--grammar") { params.grammar = argv[++i]; }
177-
else if ( arg == "--grammar-rule") { params.grammar_rule = argv[++i]; }
178-
else if ( arg == "--grammar-penalty") { params.grammar_penalty = std::stof(argv[++i]); }
181+
else if ( arg == "--suppress-regex") { params.suppress_regex = ARGV_NEXT; }
182+
else if ( arg == "--grammar") { params.grammar = ARGV_NEXT; }
183+
else if ( arg == "--grammar-rule") { params.grammar_rule = ARGV_NEXT; }
184+
else if ( arg == "--grammar-penalty") { params.grammar_penalty = std::stof(ARGV_NEXT); }
179185
else {
180186
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
181187
whisper_print_usage(argc, argv, params);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
18E864A92CE73C1E0094B8B3 /* ggml-cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 18E864A82CE73C1E0094B8B3 /* ggml-cpu.c */; };
2828
18F8C0BC2CEDF4DC00CAD607 /* ggml-threading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0BB2CEDF4DC00CAD607 /* ggml-threading.cpp */; };
2929
18F8C0BE2CEDF50700CAD607 /* ggml-cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0BD2CEDF50700CAD607 /* ggml-cpu.cpp */; };
30-
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.c in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */; };
30+
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.cpp */; };
3131
18F8C0C52CEDF52700CAD607 /* ggml-cpu-quants.c in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */; };
3232
18F8C0C72CEDF7AB00CAD607 /* ggml-backend-reg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C62CEDF7AB00CAD607 /* ggml-backend-reg.cpp */; };
3333
7FE3424B2A0C3FA20015A058 /* whisper-encoder-impl.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE342452A0C3FA20015A058 /* whisper-encoder-impl.m */; };
@@ -88,7 +88,7 @@
8888
18F8C0BB2CEDF4DC00CAD607 /* ggml-threading.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "ggml-threading.cpp"; path = "../../../ggml/src/ggml-threading.cpp"; sourceTree = "<group>"; };
8989
18F8C0BD2CEDF50700CAD607 /* ggml-cpu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "ggml-cpu.cpp"; path = "../../../ggml/src/ggml-cpu/ggml-cpu.cpp"; sourceTree = "<group>"; };
9090
18F8C0BF2CEDF52700CAD607 /* ggml-cpu-aarch64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-aarch64.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-aarch64.h"; sourceTree = "<group>"; };
91-
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu-aarch64.c"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-aarch64.c"; sourceTree = "<group>"; };
91+
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu-aarch64.cpp"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp"; sourceTree = "<group>"; };
9292
18F8C0C12CEDF52700CAD607 /* ggml-cpu-impl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-impl.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-impl.h"; sourceTree = "<group>"; };
9393
18F8C0C22CEDF52700CAD607 /* ggml-cpu-quants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-quants.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-quants.h"; sourceTree = "<group>"; };
9494
18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu-quants.c"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-quants.c"; sourceTree = "<group>"; };
@@ -134,7 +134,7 @@
134134
children = (
135135
18F8C0C62CEDF7AB00CAD607 /* ggml-backend-reg.cpp */,
136136
18F8C0BF2CEDF52700CAD607 /* ggml-cpu-aarch64.h */,
137-
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */,
137+
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.cpp */,
138138
18F8C0C12CEDF52700CAD607 /* ggml-cpu-impl.h */,
139139
18F8C0C22CEDF52700CAD607 /* ggml-cpu-quants.h */,
140140
18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */,
@@ -278,7 +278,7 @@
278278
18F8C0C72CEDF7AB00CAD607 /* ggml-backend-reg.cpp in Sources */,
279279
18F8C0BE2CEDF50700CAD607 /* ggml-cpu.cpp in Sources */,
280280
1844471A2AB211A2007D6BFE /* ggml-alloc.c in Sources */,
281-
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.c in Sources */,
281+
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.cpp in Sources */,
282282
18F8C0C52CEDF52700CAD607 /* ggml-cpu-quants.c in Sources */,
283283
18E864A92CE73C1E0094B8B3 /* ggml-cpu.c in Sources */,
284284
18ABE15A2AF556340044A204 /* ggml-backend.cpp in Sources */,

0 commit comments

Comments
 (0)