Skip to content

Commit f82bf11

Browse files
committed
Merge branch 'master' into ssdev
* master: (96 commits) whisper : fix bench regression + fix performance when using CPU BLAS (ggml-org#1275) whisper : faster beam_search sampling via reduced KV cache copies (ggml-org#1243) java : fixed signing of java artifact using gradle (ggml-org#1267) ci : try to fix gradle action (ggml-org#1265) gitignore : update sync : ggml (HBM + Metal + style) (ggml-org#1264) ci : upgrade gradle to 2.4.2 (ggml-org#1263) sync : ggml (CUDA faster rope) cmake : noramlize case (ggml-org#1129) build : do not use _GNU_SOURCE gratuitously (ggml-org#1129) examples : fix build + compile warnings (close ggml-org#1256) models : add quantum models to download-ggml-model.sh (ggml-org#1235) whisper.android : bump gradle plugin and dependencies + a lint pass (ggml-org#1255) sign jar for Maven Central repo whisper.android : address ARM's big.LITTLE arch by checking cpu info (ggml-org#1254) make : fix detection of AVX2 on macOS (ggml-org#1250) ggml : posixify pagesize (ggml-org#1251) configured publishing.repositories ggml : sync latest llama.cpp (view_src + alloc improvements) (ggml-org#1247) make : improve cpuinfo handling on x86 hosts (ggml-org#1238) ...
2 parents d278518 + 3fec211 commit f82bf11

Some content is hidden

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

80 files changed

+54448
-9743
lines changed

.github/workflows/build.yml

Lines changed: 126 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,41 @@
11
name: CI
22
on: [push, pull_request]
33

4+
env:
5+
ubuntu_image: "ubuntu:22.04"
6+
47
jobs:
58
ubuntu-latest:
69
runs-on: ubuntu-latest
710

11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
15+
816
steps:
917
- name: Clone
10-
uses: actions/checkout@v1
18+
uses: actions/checkout@v3
1119

12-
- name: Dependencies
13-
run: |
14-
sudo apt-get update
15-
sudo apt-get install build-essential
16-
sudo apt-get install libsdl2-dev
20+
- name: Set up QEMU
21+
uses: docker/setup-qemu-action@v2
1722

18-
- name: Build
23+
- name: Build ${{ matrix.arch }}
1924
run: |
20-
make
21-
make stream
25+
docker run --platform ${{ matrix.arch }} --rm \
26+
-v ${{ github.workspace }}:/workspace \
27+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
28+
apt update
29+
apt install -y build-essential libsdl2-dev
30+
make
31+
make stream'
2232
2333
macOS-latest:
2434
runs-on: macOS-latest
2535

2636
steps:
2737
- name: Clone
28-
uses: actions/checkout@v1
38+
uses: actions/checkout@v3
2939

3040
- name: Dependencies
3141
run: |
@@ -37,82 +47,104 @@ jobs:
3747
make
3848
make stream
3949
50+
freeBSD-latest:
51+
runs-on: macos-12
52+
53+
steps:
54+
- name: Clone
55+
uses: actions/checkout@v3
56+
57+
- name: Build
58+
uses: cross-platform-actions/[email protected]
59+
with:
60+
operating_system: freebsd
61+
version: '13.2'
62+
run: |
63+
sudo pkg update
64+
sudo pkg install -y gmake sdl2
65+
gmake
66+
gmake stream
67+
4068
ubuntu-latest-gcc:
4169
runs-on: ubuntu-latest
4270

4371
strategy:
72+
fail-fast: false
4473
matrix:
4574
build: [Debug, Release]
75+
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
4676

4777
steps:
4878
- name: Clone
49-
uses: actions/checkout@v1
79+
uses: actions/checkout@v3
5080

51-
- name: Dependencies
52-
run: |
53-
sudo apt-get update
54-
sudo apt-get install build-essential
55-
sudo apt-get install cmake
56-
sudo apt-get install libsdl2-dev
81+
- name: Set up QEMU
82+
uses: docker/setup-qemu-action@v2
5783

58-
- name: Configure
59-
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
60-
61-
- name: Build
84+
- name: Build ${{ matrix.arch }}
6285
run: |
63-
make
64-
ctest -L gh --output-on-failure
86+
docker run --platform ${{ matrix.arch }} --rm \
87+
-v ${{ github.workspace }}:/workspace \
88+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
89+
apt update
90+
apt install -y build-essential cmake libsdl2-dev
91+
cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
92+
make
93+
ctest -L gh --output-on-failure'
6594
6695
ubuntu-latest-clang:
6796
runs-on: ubuntu-latest
6897

6998
strategy:
99+
fail-fast: false
70100
matrix:
71101
build: [Debug, Release]
102+
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
72103

73104
steps:
74105
- name: Clone
75-
uses: actions/checkout@v1
106+
uses: actions/checkout@v3
76107

77-
- name: Dependencies
78-
run: |
79-
sudo apt-get update
80-
sudo apt-get install build-essential
81-
sudo apt-get install cmake
82-
sudo apt-get install libsdl2-dev
108+
- name: Set up QEMU
109+
uses: docker/setup-qemu-action@v2
83110

84-
- name: Configure
85-
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
86-
87-
- name: Build
111+
- name: Build ${{ matrix.arch }}
88112
run: |
89-
make
90-
ctest -L gh --output-on-failure
113+
docker run --platform ${{ matrix.arch }} --rm \
114+
-v ${{ github.workspace }}:/workspace \
115+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
116+
apt update
117+
apt install -y build-essential cmake libsdl2-dev
118+
cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
119+
make
120+
ctest -L gh --output-on-failure'
91121
92122
ubuntu-latest-gcc-sanitized:
93123
runs-on: ubuntu-latest
94124

95125
strategy:
126+
fail-fast: false
96127
matrix:
97128
sanitizer: [ADDRESS, THREAD, UNDEFINED]
129+
arch: [linux/amd64]
98130

99131
steps:
100132
- name: Clone
101-
uses: actions/checkout@v1
133+
uses: actions/checkout@v3
102134

103-
- name: Dependencies
104-
run: |
105-
sudo apt-get update
106-
sudo apt-get install build-essential
107-
sudo apt-get install cmake
108-
109-
- name: Configure
110-
run: cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
135+
- name: Set up QEMU
136+
uses: docker/setup-qemu-action@v2
111137

112-
- name: Build
138+
- name: Build ${{ matrix.arch }}
113139
run: |
114-
make
115-
ctest -L gh --output-on-failure
140+
docker run --platform ${{ matrix.arch }} --rm \
141+
-v ${{ github.workspace }}:/workspace \
142+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
143+
apt update
144+
apt install -y build-essential cmake
145+
cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
146+
make
147+
ctest -L gh --output-on-failure'
116148
117149
windows:
118150
runs-on: windows-latest
@@ -134,7 +166,7 @@ jobs:
134166

135167
steps:
136168
- name: Clone
137-
uses: actions/checkout@v1
169+
uses: actions/checkout@v3
138170

139171
- name: Add msbuild to PATH
140172
uses: microsoft/setup-msbuild@v1
@@ -195,7 +227,7 @@ jobs:
195227

196228
steps:
197229
- name: Clone
198-
uses: actions/checkout@v1
230+
uses: actions/checkout@v3
199231

200232
- name: Add msbuild to PATH
201233
uses: microsoft/setup-msbuild@v1
@@ -243,10 +275,10 @@ jobs:
243275
with:
244276
name: whisper-blas-bin-${{ matrix.arch }}
245277
path: build/bin/${{ matrix.build }}
246-
278+
247279
windows-cublas:
248280
runs-on: windows-latest
249-
281+
250282
strategy:
251283
matrix:
252284
build: [Release]
@@ -258,40 +290,40 @@ jobs:
258290
s2arc: x64
259291
- sdl2: ON
260292
s2ver: 2.26.0
261-
293+
262294
steps:
263295
- name: Clone
264-
uses: actions/checkout@v1
296+
uses: actions/checkout@v3
265297

266298
- name: Add msbuild to PATH
267299
uses: microsoft/setup-msbuild@v1
268-
300+
269301
- name: Install CUDA Toolkit
270302
id: cuda-toolkit
271303
uses: Jimver/[email protected]
272-
304+
273305
- name: Fetch SDL2 and set SDL2_DIR
274306
if: matrix.sdl2 == 'ON'
275307
run: |
276308
C:/msys64/usr/bin/wget.exe -qO sdl2.zip https://github.com/libsdl-org/SDL/releases/download/release-${{ matrix.s2ver }}/SDL2-devel-${{ matrix.s2ver }}-VC.zip
277309
7z x sdl2.zip
278310
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
279-
311+
280312
- name: Configure
281313
run: >
282314
cmake -S . -B ./build -A ${{ matrix.arch }}
283315
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
284316
-DWHISPER_CUBLAS=1
285-
317+
286318
- name: Build
287319
run: |
288320
cd ./build
289321
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
290-
322+
291323
- name: Copy SDL2.dll
292324
if: matrix.sdl2 == 'ON'
293325
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
294-
326+
295327
- name: Upload binaries
296328
if: matrix.sdl2 == 'ON'
297329
uses: actions/upload-artifact@v1
@@ -308,24 +340,16 @@ jobs:
308340

309341
steps:
310342
- name: Clone
311-
uses: actions/checkout@v1
343+
uses: actions/checkout@v3
312344

313-
- name: Dependencies
314-
run: |
315-
wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
316-
tar -xvf master.tar.gz
317-
emsdk-master/emsdk update
318-
emsdk-master/emsdk install latest
319-
emsdk-master/emsdk activate latest
345+
- name: Setup emsdk
346+
uses: mymindstorm/setup-emsdk@v12
320347

321-
- name: Configure
322-
run: echo "tmp"
348+
- name: Verify
349+
run: emcc -v
323350

324351
- name: Build
325352
run: |
326-
pushd emsdk-master
327-
source ./emsdk_env.sh
328-
popd
329353
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
330354
make
331355
@@ -338,7 +362,7 @@ jobs:
338362

339363
steps:
340364
- name: Clone
341-
uses: actions/checkout@v1
365+
uses: actions/checkout@v3
342366

343367
- name: Configure
344368
run: |
@@ -347,7 +371,7 @@ jobs:
347371
348372
- name: Build objc example
349373
run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build
350-
374+
351375
- name: Build swiftui example
352376
run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build
353377

@@ -356,14 +380,14 @@ jobs:
356380

357381
steps:
358382
- name: Clone
359-
uses: actions/checkout@v1
383+
uses: actions/checkout@v3
360384

361385
- name: Install Java
362386
uses: actions/setup-java@v3
363387
with:
364388
distribution: zulu
365389
java-version: 17
366-
390+
367391
- name: Setup Android SDK
368392
uses: android-actions/setup-android@v2
369393

@@ -376,7 +400,7 @@ jobs:
376400
needs: [ 'windows' ]
377401
runs-on: windows-latest
378402
steps:
379-
- uses: actions/checkout@v1
403+
- uses: actions/checkout@v3
380404

381405
- name: Install Java
382406
uses: actions/setup-java@v1
@@ -402,11 +426,27 @@ jobs:
402426
name: whispercpp.jar
403427
path: bindings/java/build/libs/whispercpp-*.jar
404428

405-
# - name: Publish package
406-
# if: ${{ github.ref == 'refs/heads/master' }}
407-
# uses: gradle/gradle-build-action@v2
408-
# with:
409-
# arguments: publish
410-
# env:
411-
# MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
412-
# MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
429+
- name: Publish package
430+
if: ${{ github.ref == 'refs/heads/master' }}
431+
uses: gradle/[email protected]
432+
with:
433+
arguments: publish
434+
build-root-directory: bindings/java
435+
env:
436+
MAVEN_USERNAME: ${{ secrets.JIRA_USER }}
437+
MAVEN_PASSWORD: ${{ secrets.JIRA_PASS }}
438+
PGP_SECRET: ${{ secrets.GPG_PRIVATE_KEY }}
439+
PGP_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
440+
441+
quantize:
442+
runs-on: ubuntu-latest
443+
444+
steps:
445+
- name: Clone
446+
uses: actions/checkout@v3
447+
448+
- name: Test quantize
449+
run: |
450+
./models/download-ggml-model.sh tiny.en
451+
make quantize
452+
./quantize models/ggml-tiny.en.bin models/ggml-tiny.en-q4_0.bin q4_0

0 commit comments

Comments
 (0)