name: HIP quality check on: workflow_dispatch: # allows manual triggering push: branches: - master paths: [ '.github/workflows/build.yml', '.github/workflows/build-linux-cross.yml', '.github/workflows/build-cmake-pkg.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp', '**/*.glsl', '**/*.wgsl' ] pull_request: types: [opened, synchronize, reopened] paths: [ '.github/workflows/build.yml', '.github/workflows/build-linux-cross.yml', '.github/workflows/build-cmake-pkg.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp', '**/*.glsl', '**/*.wgsl' ] 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_LOG_COLORS: 1 LLAMA_LOG_PREFIX: 1 LLAMA_LOG_TIMESTAMPS: 1 jobs: ubuntu-22-hip-quality-check: runs-on: ubuntu-22.04 container: rocm/dev-ubuntu-22.04:7.2 steps: - name: Clone id: checkout uses: actions/checkout@v6 - name: Dependencies id: depends run: | sudo apt-get update sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev libssl-dev python3 - name: ccache uses: ggml-org/ccache-action@v1.2.16 with: key: ubuntu-22-hip-quality-check evict-old-files: 1d save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Build with Werror id: cmake_build run: | cmake -B build -S . \ -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" \ -DGPU_TARGETS=gfx908 \ -DGGML_HIP=ON \ -DGGML_HIP_EXPORT_METRICS=Off \ -DCMAKE_HIP_FLAGS="-Werror -Wno-tautological-compare" \ -DCMAKE_BUILD_TYPE=Release cd build make -j $(nproc) - name: Check for major VGPR spills id: vgpr_check run: | cmake -B build -S . \ -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" \ -DGPU_TARGETS=gfx908 \ -DGGML_HIP=ON \ -DGGML_HIP_EXPORT_METRICS=On \ -DCMAKE_HIP_FLAGS="" \ -DCMAKE_BUILD_TYPE=Release cd build make -j $(nproc) 2>&1 | tee metrics.log | grep -v 'Rpass-analysis=kernel-resource-usage\|remark:\|^$' python3 ../scripts/hip/gcn-cdna-vgpr-check.py metrics.log