Skip to content

Commit

Permalink
Merge branch 'master' into ssdev
Browse files Browse the repository at this point in the history
* master: (96 commits)
  whisper : fix bench regression + fix performance when using CPU BLAS (ggerganov#1275)
  whisper : faster beam_search sampling via reduced KV cache copies (ggerganov#1243)
  java : fixed signing of java artifact using gradle (ggerganov#1267)
  ci : try to fix gradle action (ggerganov#1265)
  gitignore : update
  sync : ggml (HBM + Metal + style) (ggerganov#1264)
  ci : upgrade gradle to 2.4.2 (ggerganov#1263)
  sync : ggml (CUDA faster rope)
  cmake : noramlize case (ggerganov#1129)
  build : do not use _GNU_SOURCE gratuitously (ggerganov#1129)
  examples : fix build + compile warnings (close ggerganov#1256)
  models : add quantum models to download-ggml-model.sh (ggerganov#1235)
  whisper.android : bump gradle plugin and dependencies + a lint pass (ggerganov#1255)
  sign jar for Maven Central repo
  whisper.android : address ARM's big.LITTLE arch by checking cpu info (ggerganov#1254)
  make : fix detection of AVX2 on macOS (ggerganov#1250)
  ggml : posixify pagesize (ggerganov#1251)
  configured publishing.repositories
  ggml : sync latest llama.cpp (view_src + alloc improvements) (ggerganov#1247)
  make : improve cpuinfo handling on x86 hosts (ggerganov#1238)
  ...
  • Loading branch information
bdonkey committed Sep 13, 2023
2 parents d278518 + 3fec211 commit f82bf11
Show file tree
Hide file tree
Showing 80 changed files with 54,448 additions and 9,743 deletions.
212 changes: 126 additions & 86 deletions .github/workflows/build.yml
@@ -1,31 +1,41 @@
name: CI
on: [push, pull_request]

env:
ubuntu_image: "ubuntu:22.04"

jobs:
ubuntu-latest:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libsdl2-dev
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Build
- name: Build ${{ matrix.arch }}
run: |
make
make stream
docker run --platform ${{ matrix.arch }} --rm \
-v ${{ github.workspace }}:/workspace \
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
apt update
apt install -y build-essential libsdl2-dev
make
make stream'
macOS-latest:
runs-on: macOS-latest

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
Expand All @@ -37,82 +47,104 @@ jobs:
make
make stream
freeBSD-latest:
runs-on: macos-12

steps:
- name: Clone
uses: actions/checkout@v3

- name: Build
uses: cross-platform-actions/action@v0.15.0
with:
operating_system: freebsd
version: '13.2'
run: |
sudo pkg update
sudo pkg install -y gmake sdl2
gmake
gmake stream
ubuntu-latest-gcc:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
build: [Debug, Release]
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libsdl2-dev
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Configure
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}

- name: Build
- name: Build ${{ matrix.arch }}
run: |
make
ctest -L gh --output-on-failure
docker run --platform ${{ matrix.arch }} --rm \
-v ${{ github.workspace }}:/workspace \
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
apt update
apt install -y build-essential cmake libsdl2-dev
cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
make
ctest -L gh --output-on-failure'
ubuntu-latest-clang:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
build: [Debug, Release]
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libsdl2-dev
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Configure
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang

- name: Build
- name: Build ${{ matrix.arch }}
run: |
make
ctest -L gh --output-on-failure
docker run --platform ${{ matrix.arch }} --rm \
-v ${{ github.workspace }}:/workspace \
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
apt update
apt install -y build-essential cmake libsdl2-dev
cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
make
ctest -L gh --output-on-failure'
ubuntu-latest-gcc-sanitized:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
sanitizer: [ADDRESS, THREAD, UNDEFINED]
arch: [linux/amd64]

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake
- name: Configure
run: cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Build
- name: Build ${{ matrix.arch }}
run: |
make
ctest -L gh --output-on-failure
docker run --platform ${{ matrix.arch }} --rm \
-v ${{ github.workspace }}:/workspace \
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
apt update
apt install -y build-essential cmake
cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
make
ctest -L gh --output-on-failure'
windows:
runs-on: windows-latest
Expand All @@ -134,7 +166,7 @@ jobs:

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1
Expand Down Expand Up @@ -195,7 +227,7 @@ jobs:

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1
Expand Down Expand Up @@ -243,10 +275,10 @@ jobs:
with:
name: whisper-blas-bin-${{ matrix.arch }}
path: build/bin/${{ matrix.build }}

windows-cublas:
runs-on: windows-latest

strategy:
matrix:
build: [Release]
Expand All @@ -258,40 +290,40 @@ jobs:
s2arc: x64
- sdl2: ON
s2ver: 2.26.0

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1

- name: Install CUDA Toolkit
id: cuda-toolkit
uses: Jimver/cuda-toolkit@v0.2.10

- name: Fetch SDL2 and set SDL2_DIR
if: matrix.sdl2 == 'ON'
run: |
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
7z x sdl2.zip
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
- name: Configure
run: >
cmake -S . -B ./build -A ${{ matrix.arch }}
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
-DWHISPER_CUBLAS=1
- name: Build
run: |
cd ./build
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
- name: Copy SDL2.dll
if: matrix.sdl2 == 'ON'
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}

- name: Upload binaries
if: matrix.sdl2 == 'ON'
uses: actions/upload-artifact@v1
Expand All @@ -308,24 +340,16 @@ jobs:

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Dependencies
run: |
wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
tar -xvf master.tar.gz
emsdk-master/emsdk update
emsdk-master/emsdk install latest
emsdk-master/emsdk activate latest
- name: Setup emsdk
uses: mymindstorm/setup-emsdk@v12

- name: Configure
run: echo "tmp"
- name: Verify
run: emcc -v

- name: Build
run: |
pushd emsdk-master
source ./emsdk_env.sh
popd
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
make
Expand All @@ -338,7 +362,7 @@ jobs:

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Configure
run: |
Expand All @@ -347,7 +371,7 @@ jobs:
- name: Build objc example
run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build

- name: Build swiftui example
run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build

Expand All @@ -356,14 +380,14 @@ jobs:

steps:
- name: Clone
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Install Java
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 17

- name: Setup Android SDK
uses: android-actions/setup-android@v2

Expand All @@ -376,7 +400,7 @@ jobs:
needs: [ 'windows' ]
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3

- name: Install Java
uses: actions/setup-java@v1
Expand All @@ -402,11 +426,27 @@ jobs:
name: whispercpp.jar
path: bindings/java/build/libs/whispercpp-*.jar

# - name: Publish package
# if: ${{ github.ref == 'refs/heads/master' }}
# uses: gradle/gradle-build-action@v2
# with:
# arguments: publish
# env:
# MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
# MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
- name: Publish package
if: ${{ github.ref == 'refs/heads/master' }}
uses: gradle/gradle-build-action@v2.4.2
with:
arguments: publish
build-root-directory: bindings/java
env:
MAVEN_USERNAME: ${{ secrets.JIRA_USER }}
MAVEN_PASSWORD: ${{ secrets.JIRA_PASS }}
PGP_SECRET: ${{ secrets.GPG_PRIVATE_KEY }}
PGP_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}

quantize:
runs-on: ubuntu-latest

steps:
- name: Clone
uses: actions/checkout@v3

- name: Test quantize
run: |
./models/download-ggml-model.sh tiny.en
make quantize
./quantize models/ggml-tiny.en.bin models/ggml-tiny.en-q4_0.bin q4_0

0 comments on commit f82bf11

Please sign in to comment.