2022-10-07 17:32:18 +02:00
|
|
|
name: CI
|
2023-01-25 17:50:50 +01:00
|
|
|
on: [push, pull_request]
|
2022-10-07 17:32:18 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
env:
|
|
|
|
ubuntu_image: "ubuntu:22.04"
|
|
|
|
|
2022-10-07 17:32:18 +02:00
|
|
|
jobs:
|
2023-01-25 17:50:50 +01:00
|
|
|
ubuntu-latest:
|
|
|
|
runs-on: ubuntu-latest
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Set up QEMU
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: docker/setup-qemu-action@v3
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Build ${{ matrix.arch }}
|
2023-01-25 17:50:50 +01:00
|
|
|
run: |
|
2023-07-16 22:00:34 +02:00
|
|
|
docker run --platform ${{ matrix.arch }} --rm \
|
|
|
|
-v ${{ github.workspace }}:/workspace \
|
|
|
|
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
|
2023-11-27 10:35:37 +01:00
|
|
|
set -e
|
2023-07-16 22:00:34 +02:00
|
|
|
apt update
|
|
|
|
apt install -y build-essential libsdl2-dev
|
|
|
|
make
|
|
|
|
make stream'
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
macOS-latest:
|
|
|
|
runs-on: macOS-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
brew update
|
|
|
|
brew install sdl2
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
make stream
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
freeBSD-latest:
|
|
|
|
runs-on: macos-12
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-07-16 22:00:34 +02:00
|
|
|
|
|
|
|
- name: Build
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: cross-platform-actions/action@v0.24.0
|
2023-07-16 22:00:34 +02:00
|
|
|
with:
|
|
|
|
operating_system: freebsd
|
|
|
|
version: '13.2'
|
|
|
|
run: |
|
|
|
|
sudo pkg update
|
|
|
|
sudo pkg install -y gmake sdl2
|
|
|
|
gmake
|
|
|
|
gmake stream
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
ubuntu-latest-gcc:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
2023-07-16 22:00:34 +02:00
|
|
|
fail-fast: false
|
2023-01-25 17:50:50 +01:00
|
|
|
matrix:
|
|
|
|
build: [Debug, Release]
|
2023-07-16 22:00:34 +02:00
|
|
|
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Set up QEMU
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: docker/setup-qemu-action@v3
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Build ${{ matrix.arch }}
|
2023-01-25 17:50:50 +01:00
|
|
|
run: |
|
2023-07-16 22:00:34 +02:00
|
|
|
docker run --platform ${{ matrix.arch }} --rm \
|
|
|
|
-v ${{ github.workspace }}:/workspace \
|
|
|
|
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
|
2023-11-27 10:35:37 +01:00
|
|
|
set -e
|
2023-07-16 22:00:34 +02:00
|
|
|
apt update
|
|
|
|
apt install -y build-essential cmake libsdl2-dev
|
2023-11-07 09:53:24 +01:00
|
|
|
cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
2023-07-16 22:00:34 +02:00
|
|
|
make
|
|
|
|
ctest -L gh --output-on-failure'
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
ubuntu-latest-clang:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
2023-07-16 22:00:34 +02:00
|
|
|
fail-fast: false
|
2023-01-25 17:50:50 +01:00
|
|
|
matrix:
|
|
|
|
build: [Debug, Release]
|
2023-07-16 22:00:34 +02:00
|
|
|
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Set up QEMU
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: docker/setup-qemu-action@v3
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Build ${{ matrix.arch }}
|
2023-01-25 17:50:50 +01:00
|
|
|
run: |
|
2023-07-16 22:00:34 +02:00
|
|
|
docker run --platform ${{ matrix.arch }} --rm \
|
|
|
|
-v ${{ github.workspace }}:/workspace \
|
|
|
|
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
|
2023-11-27 10:35:37 +01:00
|
|
|
set -e
|
2023-07-16 22:00:34 +02:00
|
|
|
apt update
|
2023-11-27 10:35:37 +01:00
|
|
|
apt install -y clang build-essential cmake libsdl2-dev
|
2023-11-07 09:53:24 +01:00
|
|
|
cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
|
2023-07-16 22:00:34 +02:00
|
|
|
make
|
|
|
|
ctest -L gh --output-on-failure'
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
ubuntu-latest-gcc-sanitized:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
2023-07-16 22:00:34 +02:00
|
|
|
fail-fast: false
|
2023-01-25 17:50:50 +01:00
|
|
|
matrix:
|
|
|
|
sanitizer: [ADDRESS, THREAD, UNDEFINED]
|
2023-07-16 22:00:34 +02:00
|
|
|
arch: [linux/amd64]
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Set up QEMU
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: docker/setup-qemu-action@v3
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Build ${{ matrix.arch }}
|
2023-01-25 17:50:50 +01:00
|
|
|
run: |
|
2023-07-16 22:00:34 +02:00
|
|
|
docker run --platform ${{ matrix.arch }} --rm \
|
|
|
|
-v ${{ github.workspace }}:/workspace \
|
|
|
|
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
|
2023-11-27 10:35:37 +01:00
|
|
|
set -e
|
2023-07-16 22:00:34 +02:00
|
|
|
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'
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
ubuntu-22-cmake-sycl:
|
|
|
|
runs-on: ubuntu-22.04
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
dwhisper_sycl: [ON]
|
|
|
|
dcmake_c_compiler: [icx]
|
2024-03-27 17:55:10 +01:00
|
|
|
dcmake_cxx_compiler: [icpx]
|
2024-02-23 08:22:24 +01:00
|
|
|
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
|
|
|
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
- name: add oneAPI to apt
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
cd /tmp
|
|
|
|
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
|
|
|
|
|
|
|
|
- name: install oneAPI dpcpp compiler
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install intel-oneapi-compiler-dpcpp-cpp
|
|
|
|
|
|
|
|
- name: install oneAPI MKL library
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sudo apt install intel-oneapi-mkl-devel
|
|
|
|
|
|
|
|
- name: Clone
|
|
|
|
id: checkout
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
- name: Build
|
|
|
|
id: cmake_build
|
|
|
|
run: |
|
|
|
|
source /opt/intel/oneapi/setvars.sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake -DWHISPER_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ..
|
|
|
|
cmake --build . --config Release -j $(nproc)
|
|
|
|
|
|
|
|
ubuntu-22-cmake-sycl-fp16:
|
|
|
|
runs-on: ubuntu-22.04
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
dwhisper_sycl: [ON]
|
|
|
|
dcmake_c_compiler: [icx]
|
2024-03-27 17:55:10 +01:00
|
|
|
dcmake_cxx_compiler: [icpx]
|
2024-02-23 08:22:24 +01:00
|
|
|
arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
|
|
|
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
- name: add oneAPI to apt
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
cd /tmp
|
|
|
|
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
|
|
|
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
|
|
|
|
|
|
|
|
- name: install oneAPI dpcpp compiler
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install intel-oneapi-compiler-dpcpp-cpp
|
|
|
|
|
|
|
|
- name: install oneAPI MKL library
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sudo apt install intel-oneapi-mkl-devel
|
|
|
|
|
|
|
|
- name: Clone
|
|
|
|
id: checkout
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-02-23 08:22:24 +01:00
|
|
|
- name: Build
|
|
|
|
id: cmake_build
|
|
|
|
run: |
|
|
|
|
source /opt/intel/oneapi/setvars.sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake -DWHISPER_SYCL_F16=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ..
|
|
|
|
cmake --build . --config Release -j $(nproc)
|
2024-03-27 17:55:10 +01:00
|
|
|
|
2024-03-30 08:20:20 +01:00
|
|
|
windows-msys2:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
- { sys: UCRT64, env: ucrt-x86_64, build: Release }
|
|
|
|
- { sys: CLANG64, env: clang-x86_64, build: Release }
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-03-30 08:20:20 +01:00
|
|
|
|
|
|
|
- name: Setup ${{ matrix.sys }}
|
|
|
|
uses: msys2/setup-msys2@v2
|
|
|
|
with:
|
|
|
|
update: true
|
|
|
|
msystem: ${{matrix.sys}}
|
|
|
|
install: >-
|
|
|
|
base-devel
|
|
|
|
mingw-w64-${{matrix.env}}-toolchain
|
|
|
|
mingw-w64-${{matrix.env}}-cmake
|
|
|
|
mingw-w64-${{matrix.env}}-SDL2
|
|
|
|
mingw-w64-${{matrix.env}}-openblas
|
|
|
|
|
|
|
|
- name: Build using make
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
make -j $(nproc)
|
|
|
|
|
|
|
|
- name: Clean after building using make
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
make clean
|
|
|
|
|
|
|
|
- name: Build using make w/ OpenBLAS
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
make WHISPER_OPENBLAS=1 -j $(nproc)
|
|
|
|
|
|
|
|
- name: Build using CMake
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
cmake -B build
|
|
|
|
cmake --build build --config ${{ matrix.build }} -j $(nproc)
|
|
|
|
|
|
|
|
- name: Clean after building using CMake
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
rm -rf build
|
|
|
|
|
|
|
|
- name: Build using CMake w/ OpenBLAS
|
|
|
|
shell: msys2 {0}
|
|
|
|
run: |
|
|
|
|
cmake -B build -DWHISPER_OPENBLAS=ON
|
|
|
|
cmake --build build --config ${{ matrix.build }} -j $(nproc)
|
|
|
|
|
2023-01-25 17:50:50 +01:00
|
|
|
windows:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [Win32, x64]
|
|
|
|
sdl2: [ON]
|
|
|
|
include:
|
|
|
|
- arch: Win32
|
|
|
|
s2arc: x86
|
2023-05-29 01:38:58 +02:00
|
|
|
jnaPath: win32-x86
|
2023-01-25 17:50:50 +01:00
|
|
|
- arch: x64
|
|
|
|
s2arc: x64
|
2023-05-29 01:38:58 +02:00
|
|
|
jnaPath: win32-x86-64
|
2023-01-25 17:50:50 +01:00
|
|
|
- sdl2: ON
|
2023-12-21 23:39:46 +01:00
|
|
|
s2ver: 2.28.5
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: microsoft/setup-msbuild@v2
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- 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 }}
|
2023-11-07 09:53:24 +01:00
|
|
|
-DWHISPER_SDL2=${{ matrix.sdl2 }}
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- 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 }}
|
|
|
|
|
2023-05-29 01:38:58 +02:00
|
|
|
- name: Upload dll
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-05-29 01:38:58 +02:00
|
|
|
with:
|
|
|
|
name: ${{ matrix.jnaPath }}_whisper.dll
|
|
|
|
path: build/bin/${{ matrix.build }}/whisper.dll
|
|
|
|
|
2023-01-25 17:50:50 +01:00
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.sdl2 == 'ON'
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
with:
|
|
|
|
name: whisper-bin-${{ matrix.arch }}
|
|
|
|
path: build/bin/${{ matrix.build }}
|
|
|
|
|
|
|
|
windows-blas:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [Win32, x64]
|
|
|
|
blas: [ON]
|
|
|
|
sdl2: [ON]
|
|
|
|
include:
|
|
|
|
- arch: Win32
|
2023-11-27 10:35:37 +01:00
|
|
|
obzip: https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.25/OpenBLAS-0.3.25-x86.zip
|
2023-01-25 17:50:50 +01:00
|
|
|
s2arc: x86
|
2023-12-29 11:23:27 +01:00
|
|
|
clblast: OFF
|
2023-01-25 17:50:50 +01:00
|
|
|
- arch: x64
|
2023-11-27 10:35:37 +01:00
|
|
|
obzip: https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.25/OpenBLAS-0.3.25-x64.zip
|
2023-01-25 17:50:50 +01:00
|
|
|
s2arc: x64
|
2023-12-29 11:23:27 +01:00
|
|
|
clblast: ON
|
|
|
|
clver: 1.6.1
|
2023-01-25 17:50:50 +01:00
|
|
|
- sdl2: ON
|
2023-12-21 23:39:46 +01:00
|
|
|
s2ver: 2.28.5
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: microsoft/setup-msbuild@v2
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Fetch OpenBLAS
|
|
|
|
if: matrix.blas == 'ON'
|
|
|
|
run: |
|
|
|
|
C:/msys64/usr/bin/wget.exe -qO blas.zip ${{ matrix.obzip }}
|
|
|
|
7z x blas.zip -oblas -y
|
|
|
|
copy blas/include/cblas.h .
|
|
|
|
copy blas/include/openblas_config.h .
|
2023-11-07 09:53:24 +01:00
|
|
|
echo "OPENBLAS_PATH=$env:GITHUB_WORKSPACE/blas" >> $env:GITHUB_ENV
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- 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
|
|
|
|
|
2023-12-29 11:23:27 +01:00
|
|
|
- name: Install OpenCL
|
|
|
|
if: matrix.clblast == 'ON'
|
|
|
|
run: vcpkg.exe --triplet=${{ matrix.arch }}-windows install opencl
|
|
|
|
|
|
|
|
- name: Fetch CLBlast and set CLBlast_DIR
|
|
|
|
if: matrix.clblast == 'ON'
|
|
|
|
run: |
|
|
|
|
C:/msys64/usr/bin/wget.exe -qO clblast.zip https://github.com/CNugteren/CLBlast/releases/download/${{ matrix.clver }}/CLBlast-${{ matrix.clver }}-windows-x64.zip
|
|
|
|
7z x clblast.zip
|
|
|
|
7z x CLBlast-${{ matrix.clver }}-windows-x64.7z
|
|
|
|
echo "CLBlast_DIR=$env:GITHUB_WORKSPACE/CLBlast-${{ matrix.clver }}-windows-x64/lib/cmake/CLBlast" >> $env:GITHUB_ENV
|
|
|
|
|
2023-01-25 17:50:50 +01:00
|
|
|
- name: Configure
|
|
|
|
run: >
|
|
|
|
cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
2023-11-07 09:53:24 +01:00
|
|
|
-DWHISPER_OPENBLAS=${{ matrix.blas }}
|
|
|
|
-DCMAKE_LIBRARY_PATH="$env:OPENBLAS_PATH/lib"
|
|
|
|
-DWHISPER_SDL2=${{ matrix.sdl2 }}
|
2023-12-29 11:23:27 +01:00
|
|
|
-DWHISPER_CLBLAST=${{ matrix.clblast }}
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd ./build
|
|
|
|
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
|
|
|
|
|
|
|
|
- name: Copy libopenblas.dll
|
|
|
|
if: matrix.blas == 'ON'
|
2023-11-07 09:53:24 +01:00
|
|
|
run: copy "$env:OPENBLAS_PATH/bin/libopenblas.dll" build/bin/${{ matrix.build }}
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Copy SDL2.dll
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
2023-12-29 11:23:27 +01:00
|
|
|
- name: Copy clblast.dll
|
|
|
|
if: matrix.clblast == 'ON'
|
|
|
|
run: copy "$env:CLBlast_DIR/../../clblast.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
2023-01-25 17:50:50 +01:00
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.blas == 'ON' && matrix.sdl2 == 'ON'
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
with:
|
2023-12-29 11:23:27 +01:00
|
|
|
name: whisper-blas${{ matrix.clblast == 'ON' && '-clblast' || ''}}-bin-${{ matrix.arch }}
|
2023-01-25 17:50:50 +01:00
|
|
|
path: build/bin/${{ matrix.build }}
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
windows-cublas:
|
2024-06-11 16:21:30 +02:00
|
|
|
runs-on: windows-2019
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [x64]
|
|
|
|
cublas: [ON]
|
|
|
|
sdl2: [ON]
|
2023-11-27 11:03:16 +01:00
|
|
|
cuda-toolkit: [12.2.0, 11.8.0]
|
2023-05-03 22:47:37 +02:00
|
|
|
include:
|
|
|
|
- arch: x64
|
|
|
|
s2arc: x64
|
|
|
|
- sdl2: ON
|
2023-12-21 23:39:46 +01:00
|
|
|
s2ver: 2.28.5
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-05-03 22:47:37 +02:00
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: microsoft/setup-msbuild@v2
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
- name: Install CUDA Toolkit
|
|
|
|
id: cuda-toolkit
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: Jimver/cuda-toolkit@v0.2.15
|
2023-11-27 11:03:16 +01:00
|
|
|
with:
|
|
|
|
cuda: '${{ matrix.cuda-toolkit }}'
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
- 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
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
- name: Configure
|
|
|
|
run: >
|
|
|
|
cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
2024-06-06 17:51:36 +02:00
|
|
|
-DWHISPER_CUDA=${{ matrix.cublas }}
|
2023-12-21 23:39:46 +01:00
|
|
|
-DWHISPER_SDL2=${{ matrix.sdl2 }}
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-11-27 11:03:16 +01:00
|
|
|
- name: Build ${{ matrix.cuda-toolkit }}
|
2023-05-03 22:47:37 +02:00
|
|
|
run: |
|
|
|
|
cd ./build
|
2023-11-27 11:03:16 +01:00
|
|
|
cmake --build . --config ${{ matrix.build }}
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-11-19 11:43:22 +01:00
|
|
|
- name: Copy CUDA DLLs
|
|
|
|
run: >
|
|
|
|
Copy-Item -PassThru
|
|
|
|
-Path "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}/bin/*.dll"
|
|
|
|
-Include cudart64_*,cublas64_*,cublasLt64_*
|
|
|
|
-Destination build/bin/${{ matrix.build }}
|
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
- name: Copy SDL2.dll
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-05-03 22:47:37 +02:00
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.sdl2 == 'ON'
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-05-03 22:47:37 +02:00
|
|
|
with:
|
2023-11-27 11:03:16 +01:00
|
|
|
name: whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }}
|
2023-05-03 22:47:37 +02:00
|
|
|
path: build/bin/${{ matrix.build }}
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
emscripten:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Setup emsdk
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: mymindstorm/setup-emsdk@v14
|
2023-01-25 17:50:50 +01:00
|
|
|
|
2023-07-16 22:00:34 +02:00
|
|
|
- name: Verify
|
|
|
|
run: emcc -v
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
make
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
ios:
|
|
|
|
runs-on: macos-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
- name: Configure
|
2023-05-14 08:47:02 +02:00
|
|
|
run: |
|
|
|
|
cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin
|
|
|
|
mkdir models/ggml-base.en-encoder.mlmodelc
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
- name: Build objc example
|
|
|
|
run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-04-15 13:21:58 +02:00
|
|
|
- name: Build swiftui example
|
|
|
|
run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
|
|
|
|
|
|
|
android:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-02-09 16:39:05 +01:00
|
|
|
with:
|
|
|
|
path: whisper
|
|
|
|
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-02-09 16:39:05 +01:00
|
|
|
with:
|
|
|
|
repository: ggerganov/ggml
|
|
|
|
path: ggml
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
- name: Install Java
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/setup-java@v4
|
2023-04-15 13:21:58 +02:00
|
|
|
with:
|
|
|
|
distribution: zulu
|
2024-05-19 10:49:26 +02:00
|
|
|
java-version: 21
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-04-15 13:21:58 +02:00
|
|
|
- name: Setup Android SDK
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: android-actions/setup-android@v3
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-02-09 16:39:05 +01:00
|
|
|
cd whisper/examples/whisper.android
|
2023-05-03 22:47:37 +02:00
|
|
|
./gradlew assembleRelease --no-daemon
|
2023-05-29 01:38:58 +02:00
|
|
|
|
2024-02-09 16:39:05 +01:00
|
|
|
- name: Build with external ggml
|
|
|
|
run: |
|
|
|
|
export PATH_TO_GGML=$PWD/ggml
|
|
|
|
cd whisper/examples/whisper.android
|
|
|
|
./gradlew assembleRelease --no-daemon -PGGML_HOME=$PATH_TO_GGML
|
|
|
|
|
2023-11-12 17:31:58 +01:00
|
|
|
android_java:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-11-12 17:31:58 +01:00
|
|
|
|
|
|
|
- name: set up JDK 11
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/setup-java@v4
|
2023-11-12 17:31:58 +01:00
|
|
|
with:
|
|
|
|
java-version: '11'
|
|
|
|
distribution: 'temurin'
|
|
|
|
cache: gradle
|
|
|
|
|
|
|
|
- name: Setup Android SDK
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: android-actions/setup-android@v3
|
2023-11-12 17:31:58 +01:00
|
|
|
with:
|
2024-05-19 10:49:26 +02:00
|
|
|
cmdline-tools-version: 9.0
|
2023-11-12 17:31:58 +01:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd examples/whisper.android.java
|
2024-02-22 19:20:34 +01:00
|
|
|
chmod +x ./gradlew
|
2023-11-12 17:31:58 +01:00
|
|
|
./gradlew assembleRelease
|
|
|
|
|
2023-05-29 01:38:58 +02:00
|
|
|
java:
|
|
|
|
needs: [ 'windows' ]
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
2024-05-19 10:49:26 +02:00
|
|
|
- uses: actions/checkout@v4
|
2023-05-29 01:38:58 +02:00
|
|
|
|
|
|
|
- name: Install Java
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/setup-java@v4
|
2023-05-29 01:38:58 +02:00
|
|
|
with:
|
2024-05-19 10:49:26 +02:00
|
|
|
distribution: zulu
|
|
|
|
java-version: 20
|
2023-05-29 01:38:58 +02:00
|
|
|
|
|
|
|
- name: Download Windows lib
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/download-artifact@v4
|
2023-05-29 01:38:58 +02:00
|
|
|
with:
|
|
|
|
name: win32-x86-64_whisper.dll
|
|
|
|
path: bindings/java/build/generated/resources/main/win32-x86-64
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
models\download-ggml-model.cmd tiny.en
|
|
|
|
cd bindings/java
|
|
|
|
chmod +x ./gradlew
|
|
|
|
./gradlew build
|
|
|
|
|
|
|
|
- name: Upload jar
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-05-29 01:38:58 +02:00
|
|
|
with:
|
|
|
|
name: whispercpp.jar
|
|
|
|
path: bindings/java/build/libs/whispercpp-*.jar
|
|
|
|
|
2023-08-31 01:57:43 +02:00
|
|
|
- name: Publish package
|
|
|
|
if: ${{ github.ref == 'refs/heads/master' }}
|
2023-09-08 19:50:15 +02:00
|
|
|
uses: gradle/gradle-build-action@v2.4.2
|
2023-08-31 01:57:43 +02:00
|
|
|
with:
|
|
|
|
arguments: publish
|
2023-08-31 04:04:16 +02:00
|
|
|
build-root-directory: bindings/java
|
2023-08-31 01:57:43 +02:00
|
|
|
env:
|
2023-08-31 06:54:02 +02:00
|
|
|
MAVEN_USERNAME: ${{ secrets.JIRA_USER }}
|
|
|
|
MAVEN_PASSWORD: ${{ secrets.JIRA_PASS }}
|
2023-09-09 17:55:51 +02:00
|
|
|
PGP_SECRET: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
|
|
PGP_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
|
2023-08-31 01:57:43 +02:00
|
|
|
|
2023-08-06 10:04:42 +02:00
|
|
|
quantize:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
2024-05-19 10:49:26 +02:00
|
|
|
uses: actions/checkout@v4
|
2023-08-06 10:04:42 +02:00
|
|
|
|
|
|
|
- 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
|