|
@@ -2,28 +2,18 @@ name: CI
|
|
|
|
|
|
|
|
on:
|
|
on:
|
|
|
workflow_dispatch: # allows manual triggering
|
|
workflow_dispatch: # allows manual triggering
|
|
|
- inputs:
|
|
|
|
|
- create_release:
|
|
|
|
|
- description: 'Create new release'
|
|
|
|
|
- required: true
|
|
|
|
|
- type: boolean
|
|
|
|
|
push:
|
|
push:
|
|
|
branches:
|
|
branches:
|
|
|
- master
|
|
- master
|
|
|
- paths: ['.github/workflows/build.yml', '.github/workflows/build-linux-cross.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp']
|
|
|
|
|
|
|
+ paths: ['.github/workflows/build.yml', '.github/workflows/build-linux-cross.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp']
|
|
|
pull_request:
|
|
pull_request:
|
|
|
types: [opened, synchronize, reopened]
|
|
types: [opened, synchronize, reopened]
|
|
|
- paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp']
|
|
|
|
|
|
|
+ paths: ['.github/workflows/build.yml', '.github/workflows/build-linux-cross.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp']
|
|
|
|
|
|
|
|
concurrency:
|
|
concurrency:
|
|
|
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
|
|
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
|
|
|
cancel-in-progress: true
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
-# Fine-grant permission
|
|
|
|
|
-# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
|
|
|
|
|
-permissions:
|
|
|
|
|
- contents: write # for creating release
|
|
|
|
|
-
|
|
|
|
|
env:
|
|
env:
|
|
|
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
|
|
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
|
|
|
GGML_NLOOP: 3
|
|
GGML_NLOOP: 3
|
|
@@ -40,8 +30,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -74,33 +62,6 @@ jobs:
|
|
|
cd build
|
|
cd build
|
|
|
ctest -L 'main|curl' --verbose --timeout 900
|
|
ctest -L 'main|curl' --verbose --timeout 900
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp LICENSE ./build/bin/
|
|
|
|
|
- zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.zip ./build/bin/*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.zip
|
|
|
|
|
- name: llama-bin-macos-arm64.zip
|
|
|
|
|
-
|
|
|
|
|
macOS-latest-cmake-x64:
|
|
macOS-latest-cmake-x64:
|
|
|
runs-on: macos-13
|
|
runs-on: macos-13
|
|
|
|
|
|
|
@@ -108,8 +69,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -143,33 +102,6 @@ jobs:
|
|
|
cd build
|
|
cd build
|
|
|
ctest -L main --verbose --timeout 900
|
|
ctest -L main --verbose --timeout 900
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp LICENSE ./build/bin/
|
|
|
|
|
- zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip ./build/bin/*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip
|
|
|
|
|
- name: llama-bin-macos-x64.zip
|
|
|
|
|
-
|
|
|
|
|
ubuntu-cpu-cmake:
|
|
ubuntu-cpu-cmake:
|
|
|
strategy:
|
|
strategy:
|
|
|
matrix:
|
|
matrix:
|
|
@@ -185,8 +117,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -225,33 +155,6 @@ jobs:
|
|
|
./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf
|
|
./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf
|
|
|
./bin/llama-cli -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256
|
|
./bin/llama-cli -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp LICENSE ./build/bin/
|
|
|
|
|
- zip -r llama-${{ steps.tag.outputs.name }}-bin-ubuntu-${{ matrix.build }}.zip ./build/bin/*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-${{ matrix.build }}.zip
|
|
|
|
|
- name: llama-bin-ubuntu-${{ matrix.build }}.zip
|
|
|
|
|
-
|
|
|
|
|
ubuntu-latest-cmake-sanitizer:
|
|
ubuntu-latest-cmake-sanitizer:
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
@@ -378,8 +281,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -409,33 +310,6 @@ jobs:
|
|
|
# This is using llvmpipe and runs slower than other backends
|
|
# This is using llvmpipe and runs slower than other backends
|
|
|
ctest -L main --verbose --timeout 2700
|
|
ctest -L main --verbose --timeout 2700
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp LICENSE ./build/bin/
|
|
|
|
|
- zip -r llama-${{ steps.tag.outputs.name }}-bin-ubuntu-vulkan-x64.zip ./build/bin/*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-vulkan-x64.zip
|
|
|
|
|
- name: llama-bin-ubuntu-vulkan-x64.zip
|
|
|
|
|
-
|
|
|
|
|
ubuntu-22-cmake-hip:
|
|
ubuntu-22-cmake-hip:
|
|
|
runs-on: ubuntu-22.04
|
|
runs-on: ubuntu-22.04
|
|
|
container: rocm/dev-ubuntu-22.04:6.0.2
|
|
container: rocm/dev-ubuntu-22.04:6.0.2
|
|
@@ -831,8 +705,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -935,35 +807,6 @@ jobs:
|
|
|
# $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1
|
|
# $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1
|
|
|
# & $sde -future -- ctest -L main -C Release --verbose --timeout 900
|
|
# & $sde -future -- ctest -L main -C Release --verbose --timeout 900
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- env:
|
|
|
|
|
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
|
|
|
|
|
- run: |
|
|
|
|
|
- Copy-Item $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\Release\libcurl-x64.dll
|
|
|
|
|
- 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip .\build\bin\Release\*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip
|
|
|
|
|
- name: llama-bin-win-${{ matrix.build }}.zip
|
|
|
|
|
-
|
|
|
|
|
ubuntu-latest-cmake-cuda:
|
|
ubuntu-latest-cmake-cuda:
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
container: nvidia/cuda:12.6.2-devel-ubuntu24.04
|
|
container: nvidia/cuda:12.6.2-devel-ubuntu24.04
|
|
@@ -972,8 +815,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies
|
|
- name: Install dependencies
|
|
|
env:
|
|
env:
|
|
@@ -1005,77 +846,23 @@ jobs:
|
|
|
strategy:
|
|
strategy:
|
|
|
matrix:
|
|
matrix:
|
|
|
cuda: ['12.4', '11.7']
|
|
cuda: ['12.4', '11.7']
|
|
|
- build: ['cuda']
|
|
|
|
|
|
|
|
|
|
steps:
|
|
steps:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: Install ccache
|
|
- name: Install ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
|
with:
|
|
with:
|
|
|
- key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }}
|
|
|
|
|
|
|
+ key: windows-cuda-${{ matrix.cuda }}
|
|
|
variant: ccache
|
|
variant: ccache
|
|
|
evict-old-files: 1d
|
|
evict-old-files: 1d
|
|
|
|
|
|
|
|
- - name: Install Cuda Toolkit 11.7
|
|
|
|
|
- if: ${{ matrix.cuda == '11.7' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7"
|
|
|
|
|
- choco install unzip -y
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.7.99-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.7.99-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.7.99-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-11.7.4.6-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.7.91-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.7.91-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.7.101-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.7.91-archive.zip"
|
|
|
|
|
- unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7"
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_cudart-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvcc-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvrtc-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libcublas-windows-x86_64-11.7.4.6-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvtx-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\visual_studio_integration-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvprof-windows-x86_64-11.7.101-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_cccl-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y
|
|
|
|
|
- echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
|
- echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
|
- echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
|
|
|
|
- echo "CUDA_PATH_V11_7=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
|
|
|
|
-
|
|
|
|
|
- - name: Install Cuda Toolkit 12.4
|
|
|
|
|
- if: ${{ matrix.cuda == '12.4' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4"
|
|
|
|
|
- choco install unzip -y
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.4.131-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-12.4.5.8-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.4.127-archive.zip"
|
|
|
|
|
- unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4"
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_cudart-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvcc-windows-x86_64-12.4.131-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvrtc-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libcublas-windows-x86_64-12.4.5.8-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvtx-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_profiler_api-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\visual_studio_integration-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvprof-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_cccl-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y
|
|
|
|
|
- echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
|
- echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
|
- echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
|
|
|
|
- echo "CUDA_PATH_V12_4=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
|
|
|
|
|
|
+ - name: Install Cuda Toolkit
|
|
|
|
|
+ uses: ./.github/actions/windows-setup-cuda
|
|
|
|
|
+ with:
|
|
|
|
|
+ cuda_version: ${{ matrix.cuda }}
|
|
|
|
|
|
|
|
- name: Install Ninja
|
|
- name: Install Ninja
|
|
|
id: install_ninja
|
|
id: install_ninja
|
|
@@ -1105,51 +892,6 @@ jobs:
|
|
|
cmake --build build --config Release -j %NINJA_JOBS% -t ggml
|
|
cmake --build build --config Release -j %NINJA_JOBS% -t ggml
|
|
|
cmake --build build --config Release
|
|
cmake --build build --config Release
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- env:
|
|
|
|
|
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\Release\libcurl-x64.dll
|
|
|
|
|
- 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-cu${{ matrix.cuda }}-x64.zip .\build\bin\Release\*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-cu${{ matrix.cuda }}-x64.zip
|
|
|
|
|
- name: llama-bin-win-cu${{ matrix.cuda }}-x64.zip
|
|
|
|
|
-
|
|
|
|
|
- - name: Copy and pack Cuda runtime
|
|
|
|
|
- if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- echo "Cuda install location: ${{ env.CUDA_PATH }}"
|
|
|
|
|
- $dst='.\build\bin\cudart\'
|
|
|
|
|
- robocopy "${{env.CUDA_PATH}}\bin" $dst cudart64_*.dll cublas64_*.dll cublasLt64_*.dll
|
|
|
|
|
- robocopy "${{env.CUDA_PATH}}\lib" $dst cudart64_*.dll cublas64_*.dll cublasLt64_*.dll
|
|
|
|
|
- 7z a cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip $dst\*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload Cuda runtime
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip
|
|
|
|
|
- name: cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip
|
|
|
|
|
-
|
|
|
|
|
windows-latest-cmake-sycl:
|
|
windows-latest-cmake-sycl:
|
|
|
runs-on: windows-latest
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
@@ -1165,8 +907,6 @@ jobs:
|
|
|
- name: Clone
|
|
- name: Clone
|
|
|
id: checkout
|
|
id: checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: ccache
|
|
- name: ccache
|
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
uses: hendrikmuhs/ccache-action@v1.2.16
|
|
@@ -1185,52 +925,6 @@ jobs:
|
|
|
id: cmake_build
|
|
id: cmake_build
|
|
|
run: examples/sycl/win-build-sycl.bat
|
|
run: examples/sycl/win-build-sycl.bat
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Build the release package
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- echo "cp oneAPI running time dll files in ${{ env.ONEAPI_ROOT }} to ./build/bin"
|
|
|
|
|
-
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_sycl_blas.5.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_core.2.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_tbb_thread.2.dll" ./build/bin
|
|
|
|
|
-
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_opencl.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_loader.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_win_proxy_loader.dll" ./build/bin
|
|
|
|
|
-
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl8.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/svml_dispmd.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libmmd.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libiomp5md.dll" ./build/bin
|
|
|
|
|
-
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/dnnl/latest/bin/dnnl.dll" ./build/bin
|
|
|
|
|
- cp "${{ env.ONEAPI_ROOT }}/tbb/latest/bin/tbb12.dll" ./build/bin
|
|
|
|
|
-
|
|
|
|
|
- echo "cp oneAPI running time dll files to ./build/bin done"
|
|
|
|
|
- 7z a llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip ./build/bin/*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload the release package
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip
|
|
|
|
|
- name: llama-bin-win-sycl-x64.zip
|
|
|
|
|
-
|
|
|
|
|
windows-latest-cmake-hip:
|
|
windows-latest-cmake-hip:
|
|
|
if: ${{ github.event.inputs.create_release != 'true' }}
|
|
if: ${{ github.event.inputs.create_release != 'true' }}
|
|
|
runs-on: windows-latest
|
|
runs-on: windows-latest
|
|
@@ -1288,110 +982,12 @@ jobs:
|
|
|
-DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include"
|
|
-DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include"
|
|
|
cmake --build build -j ${env:NUMBER_OF_PROCESSORS}
|
|
cmake --build build -j ${env:NUMBER_OF_PROCESSORS}
|
|
|
|
|
|
|
|
- # TODO: reuse windows-latest-cmake-hip instead of duplicating this job
|
|
|
|
|
- windows-latest-cmake-hip-release:
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- runs-on: windows-latest
|
|
|
|
|
-
|
|
|
|
|
- strategy:
|
|
|
|
|
- matrix:
|
|
|
|
|
- gpu_target: [gfx1100, gfx1101, gfx1030]
|
|
|
|
|
-
|
|
|
|
|
- steps:
|
|
|
|
|
- - name: Clone
|
|
|
|
|
- id: checkout
|
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
-
|
|
|
|
|
- - name: Clone rocWMMA repository
|
|
|
|
|
- id: clone_rocwmma
|
|
|
|
|
- run: |
|
|
|
|
|
- git clone https://github.com/rocm/rocwmma --branch rocm-6.2.4 --depth 1
|
|
|
|
|
-
|
|
|
|
|
- - name: ccache
|
|
|
|
|
- uses: hendrikmuhs/ccache-action@v1.2.16
|
|
|
|
|
- with:
|
|
|
|
|
- key: windows-latest-cmake-hip-release
|
|
|
|
|
- evict-old-files: 1d
|
|
|
|
|
-
|
|
|
|
|
- - name: Install
|
|
|
|
|
- id: depends
|
|
|
|
|
- run: |
|
|
|
|
|
- $ErrorActionPreference = "Stop"
|
|
|
|
|
- write-host "Downloading AMD HIP SDK Installer"
|
|
|
|
|
- Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-WinSvr2022-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe"
|
|
|
|
|
- write-host "Installing AMD HIP SDK"
|
|
|
|
|
- Start-Process "${env:RUNNER_TEMP}\rocm-install.exe" -ArgumentList '-install' -NoNewWindow -Wait
|
|
|
|
|
- write-host "Completed AMD HIP SDK installation"
|
|
|
|
|
-
|
|
|
|
|
- - name: Verify ROCm
|
|
|
|
|
- id: verify
|
|
|
|
|
- run: |
|
|
|
|
|
- & 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version
|
|
|
|
|
-
|
|
|
|
|
- - name: libCURL
|
|
|
|
|
- id: get_libcurl
|
|
|
|
|
- uses: ./.github/actions/windows-setup-curl
|
|
|
|
|
-
|
|
|
|
|
- - name: Build
|
|
|
|
|
- id: cmake_build
|
|
|
|
|
- env:
|
|
|
|
|
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
|
|
|
|
|
- run: |
|
|
|
|
|
- $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path)
|
|
|
|
|
- $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}"
|
|
|
|
|
- cmake -G "Unix Makefiles" -B build -S . `
|
|
|
|
|
- -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" `
|
|
|
|
|
- -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" `
|
|
|
|
|
- -DCMAKE_CXX_FLAGS="-I$($PWD.Path.Replace('\', '/'))/rocwmma/library/include/" `
|
|
|
|
|
- -DCMAKE_BUILD_TYPE=Release `
|
|
|
|
|
- -DAMDGPU_TARGETS=${{ matrix.gpu_target }} `
|
|
|
|
|
- -DGGML_HIP_ROCWMMA_FATTN=ON `
|
|
|
|
|
- -DGGML_HIP=ON `
|
|
|
|
|
- -DGGML_RPC=ON `
|
|
|
|
|
- -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include"
|
|
|
|
|
- cmake --build build -j ${env:NUMBER_OF_PROCESSORS}
|
|
|
|
|
- md "build\bin\rocblas\library\"
|
|
|
|
|
- cp "${env:HIP_PATH}\bin\hipblas.dll" "build\bin\"
|
|
|
|
|
- cp "${env:HIP_PATH}\bin\rocblas.dll" "build\bin\"
|
|
|
|
|
- cp "${env:HIP_PATH}\bin\rocblas\library\*" "build\bin\rocblas\library\"
|
|
|
|
|
-
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- env:
|
|
|
|
|
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
|
|
|
|
|
- run: |
|
|
|
|
|
- cp $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\libcurl-x64.dll
|
|
|
|
|
- 7z a llama-${{ steps.tag.outputs.name }}-bin-win-hip-x64-${{ matrix.gpu_target }}.zip .\build\bin\*
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-bin-win-hip-x64-${{ matrix.gpu_target }}.zip
|
|
|
|
|
- name: llama-bin-win-hip-x64-${{ matrix.gpu_target }}.zip
|
|
|
|
|
-
|
|
|
|
|
ios-xcode-build:
|
|
ios-xcode-build:
|
|
|
runs-on: macos-latest
|
|
runs-on: macos-latest
|
|
|
|
|
|
|
|
steps:
|
|
steps:
|
|
|
- name: Checkout code
|
|
- name: Checkout code
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
- name: Build
|
|
|
id: cmake_build
|
|
id: cmake_build
|
|
@@ -1418,32 +1014,6 @@ jobs:
|
|
|
- name: Build Xcode project
|
|
- name: Build Xcode project
|
|
|
run: xcodebuild -project examples/llama.swiftui/llama.swiftui.xcodeproj -scheme llama.swiftui -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' FRAMEWORK_FOLDER_PATH=./build-ios build
|
|
run: xcodebuild -project examples/llama.swiftui/llama.swiftui.xcodeproj -scheme llama.swiftui -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' FRAMEWORK_FOLDER_PATH=./build-ios build
|
|
|
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Pack artifacts
|
|
|
|
|
- id: pack_artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- zip --symlinks -r llama-${{ steps.tag.outputs.name }}-xcframework.zip build-apple/llama.xcframework
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload artifacts
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: llama-${{ steps.tag.outputs.name }}-xcframework.zip
|
|
|
|
|
- name: llama-${{ steps.tag.outputs.name }}-xcframework
|
|
|
|
|
-
|
|
|
|
|
android-build:
|
|
android-build:
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
@@ -1471,283 +1041,8 @@ jobs:
|
|
|
- name: Build
|
|
- name: Build
|
|
|
run: |
|
|
run: |
|
|
|
cd examples/llama.android
|
|
cd examples/llama.android
|
|
|
-
|
|
|
|
|
./gradlew build --no-daemon
|
|
./gradlew build --no-daemon
|
|
|
|
|
|
|
|
- release:
|
|
|
|
|
- if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
|
|
|
|
-
|
|
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
|
-
|
|
|
|
|
- needs:
|
|
|
|
|
- - ubuntu-cpu-cmake
|
|
|
|
|
- - ubuntu-22-cmake-vulkan
|
|
|
|
|
- - windows-latest-cmake
|
|
|
|
|
- - windows-2019-cmake-cuda
|
|
|
|
|
- - windows-latest-cmake-sycl
|
|
|
|
|
- - windows-latest-cmake-hip-release
|
|
|
|
|
- - macOS-latest-cmake-arm64
|
|
|
|
|
- - macOS-latest-cmake-x64
|
|
|
|
|
-
|
|
|
|
|
- steps:
|
|
|
|
|
- - name: Clone
|
|
|
|
|
- id: checkout
|
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
- with:
|
|
|
|
|
- fetch-depth: 0
|
|
|
|
|
-
|
|
|
|
|
- - name: ccache
|
|
|
|
|
- uses: hendrikmuhs/ccache-action@v1.2.16
|
|
|
|
|
- with:
|
|
|
|
|
- key: release
|
|
|
|
|
- evict-old-files: 1d
|
|
|
|
|
-
|
|
|
|
|
- - name: Determine tag name
|
|
|
|
|
- id: tag
|
|
|
|
|
- shell: bash
|
|
|
|
|
- run: |
|
|
|
|
|
- BUILD_NUMBER="$(git rev-list --count HEAD)"
|
|
|
|
|
- SHORT_HASH="$(git rev-parse --short=7 HEAD)"
|
|
|
|
|
- if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then
|
|
|
|
|
- echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT
|
|
|
|
|
- else
|
|
|
|
|
- SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
|
|
|
|
|
- echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- - name: Download artifacts
|
|
|
|
|
- id: download-artifact
|
|
|
|
|
- uses: actions/download-artifact@v4
|
|
|
|
|
- with:
|
|
|
|
|
- path: ./artifact
|
|
|
|
|
-
|
|
|
|
|
- - name: Move artifacts
|
|
|
|
|
- id: move_artifacts
|
|
|
|
|
- run: mkdir -p ./artifact/release && mv ./artifact/*/*.zip ./artifact/release
|
|
|
|
|
-
|
|
|
|
|
- - name: Create release
|
|
|
|
|
- id: create_release
|
|
|
|
|
- uses: ggml-org/action-create-release@v1
|
|
|
|
|
- env:
|
|
|
|
|
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
- with:
|
|
|
|
|
- tag_name: ${{ steps.tag.outputs.name }}
|
|
|
|
|
-
|
|
|
|
|
- - name: Upload release
|
|
|
|
|
- id: upload_release
|
|
|
|
|
- uses: actions/github-script@v3
|
|
|
|
|
- with:
|
|
|
|
|
- github-token: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
|
- script: |
|
|
|
|
|
- const path = require('path');
|
|
|
|
|
- const fs = require('fs');
|
|
|
|
|
- const release_id = '${{ steps.create_release.outputs.id }}';
|
|
|
|
|
- for (let file of await fs.readdirSync('./artifact/release')) {
|
|
|
|
|
- if (path.extname(file) === '.zip') {
|
|
|
|
|
- console.log('uploadReleaseAsset', file);
|
|
|
|
|
- await github.repos.uploadReleaseAsset({
|
|
|
|
|
- owner: context.repo.owner,
|
|
|
|
|
- repo: context.repo.repo,
|
|
|
|
|
- release_id: release_id,
|
|
|
|
|
- name: file,
|
|
|
|
|
- data: await fs.readFileSync(`./artifact/release/${file}`)
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-# ubuntu-latest-gcc:
|
|
|
|
|
-# runs-on: ubuntu-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# build: [Debug, Release]
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - 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=${{ matrix.build }}
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Build
|
|
|
|
|
-# run: |
|
|
|
|
|
-# make
|
|
|
|
|
-#
|
|
|
|
|
-# ubuntu-latest-clang:
|
|
|
|
|
-# runs-on: ubuntu-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# build: [Debug, Release]
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - 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=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Build
|
|
|
|
|
-# run: |
|
|
|
|
|
-# make
|
|
|
|
|
-#
|
|
|
|
|
-# ubuntu-latest-gcc-sanitized:
|
|
|
|
|
-# runs-on: ubuntu-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# sanitizer: [ADDRESS, THREAD, UNDEFINED]
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - 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 -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Build
|
|
|
|
|
-# run: |
|
|
|
|
|
-# make
|
|
|
|
|
-#
|
|
|
|
|
-# windows:
|
|
|
|
|
-# runs-on: windows-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# build: [Release]
|
|
|
|
|
-# arch: [Win32, x64]
|
|
|
|
|
-# include:
|
|
|
|
|
-# - arch: Win32
|
|
|
|
|
-# s2arc: x86
|
|
|
|
|
-# - arch: x64
|
|
|
|
|
-# s2arc: x64
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Add msbuild to PATH
|
|
|
|
|
-# uses: microsoft/setup-msbuild@v1
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Configure
|
|
|
|
|
-# run: >
|
|
|
|
|
-# cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
|
-# -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Build
|
|
|
|
|
-# run: |
|
|
|
|
|
-# cd ./build
|
|
|
|
|
-# msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Upload binaries
|
|
|
|
|
-# uses: actions/upload-artifact@v4
|
|
|
|
|
-# with:
|
|
|
|
|
-# name: llama-bin-${{ matrix.arch }}
|
|
|
|
|
-# path: build/bin/${{ matrix.build }}
|
|
|
|
|
-#
|
|
|
|
|
-# windows-blas:
|
|
|
|
|
-# runs-on: windows-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# build: [Release]
|
|
|
|
|
-# arch: [Win32, x64]
|
|
|
|
|
-# blas: [ON]
|
|
|
|
|
-# include:
|
|
|
|
|
-# - arch: Win32
|
|
|
|
|
-# obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x86.zip
|
|
|
|
|
-# s2arc: x86
|
|
|
|
|
-# - arch: x64
|
|
|
|
|
-# obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x64.zip
|
|
|
|
|
-# s2arc: x64
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Add msbuild to PATH
|
|
|
|
|
-# uses: microsoft/setup-msbuild@v1
|
|
|
|
|
-#
|
|
|
|
|
-# - 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 .
|
|
|
|
|
-# echo "blasdir=$env:GITHUB_WORKSPACE/blas" >> $env:GITHUB_ENV
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Configure
|
|
|
|
|
-# run: >
|
|
|
|
|
-# cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
|
-# -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
|
-# -DLLAMA_SUPPORT_OPENBLAS=${{ matrix.blas }}
|
|
|
|
|
-# -DCMAKE_LIBRARY_PATH="$env:blasdir/lib"
|
|
|
|
|
-#
|
|
|
|
|
-# - 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'
|
|
|
|
|
-# run: copy "$env:blasdir/bin/libopenblas.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Upload binaries
|
|
|
|
|
-# if: matrix.blas == 'ON'
|
|
|
|
|
-# uses: actions/upload-artifact@v4
|
|
|
|
|
-# with:
|
|
|
|
|
-# name: llama-blas-bin-${{ matrix.arch }}
|
|
|
|
|
-# path: build/bin/${{ matrix.build }}
|
|
|
|
|
-#
|
|
|
|
|
-# emscripten:
|
|
|
|
|
-# runs-on: ubuntu-latest
|
|
|
|
|
-#
|
|
|
|
|
-# strategy:
|
|
|
|
|
-# matrix:
|
|
|
|
|
-# build: [Release]
|
|
|
|
|
-#
|
|
|
|
|
-# steps:
|
|
|
|
|
-# - name: Clone
|
|
|
|
|
-# uses: actions/checkout@v4
|
|
|
|
|
-#
|
|
|
|
|
-# - 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: Configure
|
|
|
|
|
-# run: echo "tmp"
|
|
|
|
|
-#
|
|
|
|
|
-# - name: Build
|
|
|
|
|
-# run: |
|
|
|
|
|
-# pushd emsdk-master
|
|
|
|
|
-# source ./emsdk_env.sh
|
|
|
|
|
-# popd
|
|
|
|
|
-# emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
|
-# make
|
|
|
|
|
-
|
|
|
|
|
openEuler-latest-cmake-cann:
|
|
openEuler-latest-cmake-cann:
|
|
|
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'Ascend NPU') }}
|
|
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'Ascend NPU') }}
|
|
|
defaults:
|
|
defaults:
|