tests : add support for qwen3 SSM archs (#24031) #83
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI (apple) | |
| on: | |
| workflow_dispatch: # allows manual triggering | |
| push: | |
| branches: | |
| - master | |
| paths: [ | |
| '.github/workflows/build-apple.yml', | |
| '**/CMakeLists.txt', | |
| '**/.cmake', | |
| '**/*.h', | |
| '**/*.hpp', | |
| '**/*.c', | |
| '**/*.cpp', | |
| '**/*.swift', | |
| '**/*.m', | |
| '**/*.metal' | |
| ] | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: [ | |
| '.github/workflows/build-apple.yml', | |
| 'ggml/src/ggml-metal/**' | |
| ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| GGML_NLOOP: 3 | |
| GGML_N_THREADS: 1 | |
| LLAMA_ARG_LOG_COLORS: 1 | |
| LLAMA_ARG_LOG_PREFIX: 1 | |
| LLAMA_ARG_LOG_TIMESTAMPS: 1 | |
| jobs: | |
| macos-latest-arm64: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: apple-arm64 | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| cmake -B build \ | |
| -DCMAKE_BUILD_RPATH="@loader_path" \ | |
| -DLLAMA_FATAL_WARNINGS=ON \ | |
| -DLLAMA_BUILD_BORINGSSL=ON \ | |
| -DGGML_METAL_USE_BF16=ON \ | |
| -DGGML_METAL_EMBED_LIBRARY=OFF \ | |
| -DGGML_METAL_SHADER_DEBUG=ON \ | |
| -DGGML_RPC=ON | |
| time cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) | |
| leaks -atExit -- ./build/bin/test-thread-safety -hf ggml-org/gemma-3-270m-qat-GGUF -ngl 99 -p "$(printf 'hello %.0s' {1..128})" -n 16 -c 512 -ub 32 -np 2 -t 2 -lv 1 | |
| - name: Test | |
| id: cmake_test | |
| run: | | |
| cd build | |
| ctest -L main -E "test-llama-archs" --verbose --timeout 900 | |
| macos-latest-x64: | |
| runs-on: macos-15-intel | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: apple-x64 | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| # Metal is disabled due to intermittent failures with Github runners not having a GPU: | |
| # https://github.com/ggml-org/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313 | |
| cmake -B build \ | |
| -DCMAKE_BUILD_RPATH="@loader_path" \ | |
| -DLLAMA_FATAL_WARNINGS=ON \ | |
| -DLLAMA_BUILD_BORINGSSL=ON \ | |
| -DGGML_METAL=OFF \ | |
| -DGGML_RPC=ON \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=13.3 | |
| time cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) | |
| - name: Test | |
| id: cmake_test | |
| run: | | |
| cd build | |
| ctest -L main --verbose --timeout 900 | |
| macos-latest-ios-xcode: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Xcode | |
| uses: ggml-org/setup-xcode@v1 | |
| with: | |
| xcode-version: latest-stable | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| cmake -B build -G Xcode \ | |
| -DGGML_METAL_USE_BF16=ON \ | |
| -DGGML_METAL_EMBED_LIBRARY=ON \ | |
| -DLLAMA_OPENSSL=OFF \ | |
| -DLLAMA_BUILD_APP=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF \ | |
| -DLLAMA_BUILD_TOOLS=OFF \ | |
| -DLLAMA_BUILD_TESTS=OFF \ | |
| -DLLAMA_BUILD_SERVER=OFF \ | |
| -DCMAKE_SYSTEM_NAME=iOS \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ | |
| -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml | |
| cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO | |
| - name: xcodebuild for swift package | |
| id: xcodebuild | |
| run: | | |
| ./build-xcframework.sh | |
| - name: Upload xcframework artifact | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: llama-xcframework | |
| path: build-apple/llama.xcframework/ | |
| retention-days: 1 | |
| - name: Build Xcode project | |
| run: | | |
| xcodebuild -downloadPlatform iOS | |
| 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 | |
| macos-latest-tvos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| # TODO: this likely does not do anything - if yes, remove it | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: apple-tvos | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| cmake -B build -G Xcode \ | |
| -DGGML_METAL_USE_BF16=ON \ | |
| -DGGML_METAL_EMBED_LIBRARY=ON \ | |
| -DLLAMA_BUILD_COMMON=OFF \ | |
| -DLLAMA_BUILD_APP=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF \ | |
| -DLLAMA_BUILD_TOOLS=OFF \ | |
| -DLLAMA_BUILD_TESTS=OFF \ | |
| -DLLAMA_BUILD_SERVER=OFF \ | |
| -DCMAKE_SYSTEM_NAME=tvOS \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ | |
| -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml | |
| cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO | |
| macos-latest-visionos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| # TODO: this likely does not do anything - if yes, remove it | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: apple-visionos | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| cmake -B build -G Xcode \ | |
| -DGGML_METAL_USE_BF16=ON \ | |
| -DGGML_METAL_EMBED_LIBRARY=ON \ | |
| -DLLAMA_BUILD_COMMON=OFF \ | |
| -DLLAMA_BUILD_APP=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF \ | |
| -DLLAMA_BUILD_TOOLS=OFF \ | |
| -DLLAMA_BUILD_TESTS=OFF \ | |
| -DLLAMA_BUILD_SERVER=OFF \ | |
| -DCMAKE_SYSTEM_NAME=visionOS \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=1.0 \ | |
| -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml | |
| cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO | |
| macos-latest-swift: | |
| runs-on: macos-latest | |
| needs: macos-latest-ios-xcode | |
| strategy: | |
| matrix: | |
| destination: ['generic/platform=macOS', 'generic/platform=iOS', 'generic/platform=tvOS'] | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| # TODO: this likely does not do anything - if yes, remove it | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: apple-swift | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Download xcframework artifact | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: llama-xcframework | |
| path: build-apple/llama.xcframework/ | |
| - name: Build llama.cpp with CMake | |
| id: cmake_build | |
| run: | | |
| sysctl -a | |
| cmake -B build -G Xcode \ | |
| -DGGML_METAL_USE_BF16=ON \ | |
| -DGGML_METAL_EMBED_LIBRARY=ON \ | |
| -DLLAMA_OPENSSL=OFF \ | |
| -DLLAMA_BUILD_APP=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF \ | |
| -DLLAMA_BUILD_TOOLS=OFF \ | |
| -DLLAMA_BUILD_TESTS=OFF \ | |
| -DLLAMA_BUILD_SERVER=OFF \ | |
| -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" | |
| cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) |