mirror of
https://github.com/Heretek-AI/CachyLLama-BUILDER.git
synced 2026-10-11 20:59:54 +00:00
Remove Windows and macOS builds from CI/CD workflows
- Remove build-bundle-macos from build-llama-ai-bundle.yml. - Remove windows-cpu and macos-metal from build-cachyllama-all.yml. - Remove build-windows from build-cachyllama-rocm.yml. - Remove test-windows from test-cachyllama-rocm.yml. - Streamline all workflows, scripts, and documentation for Linux builds.
This commit is contained in:
@@ -206,98 +206,8 @@ jobs:
|
||||
name: cachy-llama-bin-ubuntu-cuda-sm_${{ matrix.sm }}-x64.tar.gz
|
||||
path: cachy-llama-bin-ubuntu-cuda-sm_${{ matrix.sm }}-x64.tar.gz
|
||||
|
||||
windows-cpu:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Clone CachyLLama
|
||||
shell: powershell
|
||||
run: |
|
||||
git clone --depth 1 --branch "${{ env.CACHYLLAMA_VERSION }}" "${{ env.CACHYLLAMA_REPO }}" CachyLLama
|
||||
|
||||
- name: Patch CachyLLama for Windows Compatibility
|
||||
shell: powershell
|
||||
run: |
|
||||
python scripts/patch_windows_compat.py CachyLLama
|
||||
|
||||
- name: Build Windows CPU
|
||||
shell: cmd
|
||||
run: |
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
cd CachyLLama
|
||||
cmake -B build -A x64 -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF ${{ env.CMAKE_ARGS }}
|
||||
cmake --build build --config Release -j %NUMBER_OF_PROCESSORS%
|
||||
|
||||
- name: Verify Windows CPU Binaries
|
||||
shell: powershell
|
||||
run: |
|
||||
$binDir = "CachyLLama\build\bin\Release"
|
||||
$llamaCli = Join-Path $binDir "llama-cli.exe"
|
||||
if (-not (Test-Path $llamaCli)) {
|
||||
Write-Error "llama-cli.exe missing!"
|
||||
exit 1
|
||||
}
|
||||
$helpText = & $llamaCli --help 2>&1
|
||||
$helpText | Select-Object -First 10 | Out-Host
|
||||
Write-Host "Windows CPU binary verification successful!"
|
||||
|
||||
- name: Pack artifacts
|
||||
shell: powershell
|
||||
run: |
|
||||
Copy-Item CachyLLama\LICENSE CachyLLama\build\bin\Release\
|
||||
Compress-Archive -Path CachyLLama\build\bin\Release\* -DestinationPath cachy-llama-bin-windows-cpu-x64.zip
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cachy-llama-bin-windows-cpu-x64.zip
|
||||
path: cachy-llama-bin-windows-cpu-x64.zip
|
||||
|
||||
macos-metal:
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Clone CachyLLama
|
||||
run: |
|
||||
git clone --depth 1 --branch "${{ env.CACHYLLAMA_VERSION }}" "${{ env.CACHYLLAMA_REPO }}" CachyLLama
|
||||
|
||||
- name: Build macOS Metal
|
||||
run: |
|
||||
cd CachyLLama
|
||||
cmake -B build \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DGGML_METAL=ON \
|
||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=13.3 \
|
||||
-DCMAKE_INSTALL_RPATH='@loader_path' \
|
||||
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
|
||||
${{ env.CMAKE_ARGS }}
|
||||
cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
|
||||
|
||||
- name: Verify macOS Metal Binaries
|
||||
run: |
|
||||
cd CachyLLama/build/bin
|
||||
./llama-cli --help | head -n 10
|
||||
./llama-server --help | head -n 10
|
||||
echo "macOS Metal binary verification successful!"
|
||||
|
||||
- name: Pack artifacts
|
||||
run: |
|
||||
cp CachyLLama/LICENSE CachyLLama/build/bin/
|
||||
tar -czvf cachy-llama-bin-macos-metal-arm64.tar.gz -C CachyLLama/build/bin .
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cachy-llama-bin-macos-metal-arm64.tar.gz
|
||||
path: cachy-llama-bin-macos-metal-arm64.tar.gz
|
||||
|
||||
release:
|
||||
needs: [ubuntu-vulkan, ubuntu-cpu, ubuntu-cuda, windows-cpu, macos-metal]
|
||||
needs: [ubuntu-vulkan, ubuntu-cpu, ubuntu-cuda]
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -343,9 +253,8 @@ jobs:
|
||||
--title "CachyLLama $TAG (Multi-Backend)" \
|
||||
--notes "### CachyLLama Multi-Backend Release $TAG
|
||||
- **Vulkan RADV**: Linux AMD APU / dGPU acceleration
|
||||
- **CPU**: Linux & Windows x64 / ARM64
|
||||
- **CUDA**: NVIDIA GPU support (sm_75 to sm_121)
|
||||
- **Metal**: Apple Silicon macOS acceleration" \
|
||||
- **CPU**: Linux x64 / ARM64
|
||||
- **CUDA**: NVIDIA GPU support (sm_75 to sm_121)" \
|
||||
./release-files/*
|
||||
fi
|
||||
|
||||
@@ -361,3 +270,4 @@ jobs:
|
||||
-f client_payload[builder]="cachyllama" \
|
||||
-f client_payload[release_tag]="$TAG" || echo "Note: Tap dispatch triggered or skipped if repo permissions are local"
|
||||
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
operating_systems:
|
||||
description: 'Operating systems to build for (comma-separated: windows,ubuntu)'
|
||||
description: 'Operating systems to build for (ubuntu)'
|
||||
required: false
|
||||
default: 'windows,ubuntu'
|
||||
default: 'ubuntu'
|
||||
gfx_target:
|
||||
description: 'AMD GPU targets (comma-separated: gfx1151,gfx1150,gfx120X,gfx110X,gfx103X,gfx90a,gfx908)'
|
||||
required: false
|
||||
@@ -37,7 +37,7 @@ on:
|
||||
- cron: '0 13 * * *'
|
||||
|
||||
env:
|
||||
OPERATING_SYSTEMS: ${{ github.event.inputs.operating_systems || 'windows,ubuntu' }}
|
||||
OPERATING_SYSTEMS: ${{ github.event.inputs.operating_systems || 'ubuntu' }}
|
||||
GFX_TARGETS: ${{ github.event.inputs.gfx_target || 'gfx1151,gfx1150,gfx120X,gfx110X,gfx103X,gfx90a,gfx908' }}
|
||||
ROCM_VERSION: ${{ github.event.inputs.rocm_version || 'latest' }}
|
||||
CACHYLLAMA_VERSION: ${{ github.event.inputs.cachyllama_version || 'master' }}
|
||||
@@ -47,9 +47,7 @@ jobs:
|
||||
prepare-matrix:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
windows_matrix: ${{ steps.set-matrix.outputs.windows_matrix }}
|
||||
ubuntu_matrix: ${{ steps.set-matrix.outputs.ubuntu_matrix }}
|
||||
should_build_windows: ${{ steps.set-matrix.outputs.should_build_windows }}
|
||||
should_build_ubuntu: ${{ steps.set-matrix.outputs.should_build_ubuntu }}
|
||||
steps:
|
||||
- name: Set matrix
|
||||
@@ -70,256 +68,18 @@ jobs:
|
||||
| jq -s '{gfx_target: .}' \
|
||||
| jq -c)
|
||||
|
||||
should_build_windows="false"
|
||||
should_build_ubuntu="false"
|
||||
|
||||
if [[ "$operating_systems" == *"windows"* ]]; then
|
||||
should_build_windows="true"
|
||||
echo "windows_matrix=$matrix_targets" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
if [[ "$operating_systems" == *"ubuntu"* ]]; then
|
||||
should_build_ubuntu="true"
|
||||
echo "ubuntu_matrix=$matrix_targets" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
echo "should_build_windows=$should_build_windows" >> $GITHUB_OUTPUT
|
||||
echo "should_build_ubuntu=$should_build_ubuntu" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "Windows build: $should_build_windows"
|
||||
echo "Ubuntu build: $should_build_ubuntu"
|
||||
echo "Generated matrix: $matrix_targets"
|
||||
|
||||
build-windows:
|
||||
# Pinned to windows-2022 (VS 2022 / MSVC 14.4x) to avoid MSVC 14.51 <cmath> constexpr collision
|
||||
runs-on: windows-2022
|
||||
needs: prepare-matrix
|
||||
if: needs.prepare-matrix.outputs.should_build_windows == 'true'
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.prepare-matrix.outputs.windows_matrix) }}
|
||||
fail-fast: false
|
||||
outputs:
|
||||
rocm_version: ${{ steps.set-outputs.outputs.rocm_version }}
|
||||
cachyllama_commit_hash: ${{ steps.set-outputs.outputs.cachyllama_commit_hash }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Clean up existing directories
|
||||
shell: powershell
|
||||
run: |
|
||||
if (Test-Path "CachyLLama") { Remove-Item -Recurse -Force "CachyLLama" }
|
||||
if (Test-Path "C:\opt\rocm") { Remove-Item -Recurse -Force "C:\opt\rocm" }
|
||||
if (Test-Path "rocm.tar.gz") { Remove-Item -Force "rocm.tar.gz" }
|
||||
Write-Host "Cleanup completed"
|
||||
|
||||
- name: Install Visual Studio Build Tools
|
||||
shell: powershell
|
||||
run: |
|
||||
$vsInstallerUrl = "https://aka.ms/vs/17/release/vs_buildtools.exe"
|
||||
$vsInstallerPath = "$env:TEMP\vs_buildtools.exe"
|
||||
Write-Host "Downloading Visual Studio Build Tools..."
|
||||
Invoke-WebRequest -Uri $vsInstallerUrl -OutFile $vsInstallerPath
|
||||
Write-Host "Installing Visual Studio Build Tools..."
|
||||
Start-Process -FilePath $vsInstallerPath -ArgumentList "--quiet", "--wait", "--norestart", "--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "--add", "Microsoft.VisualStudio.Component.VC.CMake.Project", "--add", "Microsoft.VisualStudio.Component.VC.ATL", "--add", "Microsoft.VisualStudio.Component.Windows11SDK.22621" -Wait
|
||||
Remove-Item $vsInstallerPath -Force
|
||||
|
||||
- name: Install build dependencies
|
||||
shell: powershell
|
||||
run: |
|
||||
$ninjaUrl = "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip"
|
||||
$ninjaPath = "$env:TEMP\ninja-win.zip"
|
||||
$ninjaDir = "C:\ninja"
|
||||
New-Item -ItemType Directory -Force -Path $ninjaDir
|
||||
Invoke-WebRequest -Uri $ninjaUrl -OutFile $ninjaPath
|
||||
Expand-Archive -Path $ninjaPath -DestinationPath $ninjaDir -Force
|
||||
|
||||
$perlUrl = "http://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi"
|
||||
$perlPath = "$env:TEMP\strawberry-perl-5.32.1.1-64bit.msi"
|
||||
Invoke-WebRequest -Uri $perlUrl -OutFile $perlPath
|
||||
Start-Process msiexec.exe -ArgumentList "/i $perlPath /quiet /norestart" -Wait
|
||||
|
||||
$env:PATH = "C:\ninja;C:\Strawberry\perl\bin;$env:PATH"
|
||||
ninja --version
|
||||
perl --version
|
||||
|
||||
- name: Download ROCm nightly tarball
|
||||
shell: powershell
|
||||
run: |
|
||||
$rocmVersion = "${{ env.ROCM_VERSION }}"
|
||||
$currentTarget = "${{ matrix.gfx_target }}"
|
||||
|
||||
$s3Target = $currentTarget
|
||||
if ($currentTarget -eq "gfx103X" -or $currentTarget -eq "gfx110X" -or $currentTarget -eq "gfx120X") {
|
||||
$s3Target = "$currentTarget-all"
|
||||
Write-Host "Using target with -all suffix: $s3Target"
|
||||
}
|
||||
|
||||
$baseUrl = "https://rocm.nightlies.amd.com/tarball-multi-arch"
|
||||
if ($rocmVersion -eq "latest") {
|
||||
Write-Host "Auto-detecting latest ROCm version for target: $currentTarget"
|
||||
$indexHtml = (Invoke-WebRequest "$baseUrl/" -UseBasicParsing).Content
|
||||
$filesMatch = [regex]::Match($indexHtml, 'const files = (\[.*?\]);', [System.Text.RegularExpressions.RegexOptions]::Singleline)
|
||||
if (-not $filesMatch.Success) {
|
||||
Write-Error "Failed to parse file index from $baseUrl/"
|
||||
exit 1
|
||||
}
|
||||
$allFiles = $filesMatch.Groups[1].Value | ConvertFrom-Json
|
||||
$prefix = "therock-dist-windows-$s3Target-"
|
||||
$versionPattern = "^$([regex]::Escape($prefix))\d+\.\d+\.\d+(a|rc)\d+\.tar\.gz$"
|
||||
$latest = $allFiles |
|
||||
Where-Object { $_.name -match $versionPattern } |
|
||||
Sort-Object { [regex]::Match($_.name, '(\d{8})\.tar\.gz$').Groups[1].Value } |
|
||||
Select-Object -Last 1
|
||||
if (-not $latest) {
|
||||
Write-Error "No tarball found for prefix '$prefix' at $baseUrl/"
|
||||
exit 1
|
||||
}
|
||||
$latestFile = $latest.name
|
||||
Write-Host "Found latest file: $latestFile"
|
||||
|
||||
if ($latestFile -match "therock-dist-windows-$s3Target-(\d+\.\d+\.\d+(?:a|rc)\d+)\.tar\.gz") {
|
||||
$rocmVersion = $matches[1]
|
||||
Write-Host "Detected latest ROCm version: $rocmVersion"
|
||||
} else {
|
||||
Write-Error "Failed to extract ROCm version from latest file: $latestFile"
|
||||
exit 1
|
||||
}
|
||||
$rocmUrl = "$baseUrl/$latestFile"
|
||||
} else {
|
||||
$rocmUrl = "$baseUrl/therock-dist-windows-$s3Target-$rocmVersion.tar.gz"
|
||||
}
|
||||
|
||||
echo "DETECTED_ROCM_VERSION=$rocmVersion" >> $env:GITHUB_ENV
|
||||
Write-Host "Downloading ROCm from: $rocmUrl"
|
||||
Invoke-WebRequest -Uri $rocmUrl -OutFile "rocm.tar.gz"
|
||||
|
||||
- name: Extract ROCm to C:\opt\rocm
|
||||
shell: powershell
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force -Path "C:\opt\rocm"
|
||||
tar -xzf rocm.tar.gz -C C:\opt\rocm --strip-components=1
|
||||
|
||||
- name: Clone CachyLLama
|
||||
shell: powershell
|
||||
run: |
|
||||
$cachyllamaVersion = "${{ env.CACHYLLAMA_VERSION }}"
|
||||
Write-Host "Cloning CachyLLama ($cachyllamaVersion)..."
|
||||
git clone --depth 1 --single-branch --branch $cachyllamaVersion "${{ env.CACHYLLAMA_REPO }}" CachyLLama
|
||||
cd CachyLLama
|
||||
$commitHash = git rev-parse --short=7 HEAD
|
||||
echo "CACHYLLAMA_COMMIT_HASH=$commitHash" >> $env:GITHUB_ENV
|
||||
Write-Host "CachyLLama commit: $commitHash"
|
||||
git log -1 --oneline
|
||||
|
||||
- name: Patch CachyLLama for Windows Compatibility
|
||||
shell: powershell
|
||||
run: |
|
||||
python scripts/patch_windows_compat.py CachyLLama
|
||||
|
||||
- name: Build CachyLLama + ROCm
|
||||
shell: cmd
|
||||
run: |
|
||||
set "current_target=${{ matrix.gfx_target }}"
|
||||
echo Input target: %current_target%
|
||||
|
||||
if "%current_target%"=="gfx110X" (
|
||||
set "mapped_target=gfx1100;gfx1101;gfx1102;gfx1103"
|
||||
) else if "%current_target%"=="gfx103X" (
|
||||
set "mapped_target=gfx1030;gfx1031;gfx1032;gfx1034"
|
||||
) else if "%current_target%"=="gfx1151" (
|
||||
set "mapped_target=gfx1151"
|
||||
) else if "%current_target%"=="gfx1150" (
|
||||
set "mapped_target=gfx1150"
|
||||
) else if "%current_target%"=="gfx120X" (
|
||||
set "mapped_target=gfx1200;gfx1201"
|
||||
) else (
|
||||
set "mapped_target=%current_target%"
|
||||
)
|
||||
echo Mapped target: %mapped_target%
|
||||
|
||||
set HIP_PATH=C:\opt\rocm
|
||||
set HIP_PLATFORM=amd
|
||||
set PATH=%HIP_PATH%\lib\llvm\bin;%HIP_PATH%\bin;C:\ninja;%PATH%
|
||||
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath > vs_path.txt
|
||||
set /p VS_PATH=<vs_path.txt
|
||||
call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat"
|
||||
|
||||
cd CachyLLama
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake .. -G Ninja ^
|
||||
-DCMAKE_C_COMPILER="C:\opt\rocm\lib\llvm\bin\clang.exe" ^
|
||||
-DCMAKE_CXX_COMPILER="C:\opt\rocm\lib\llvm\bin\clang++.exe" ^
|
||||
-DCMAKE_CXX_FLAGS="-IC:\opt\rocm\include" ^
|
||||
-DCMAKE_CROSSCOMPILING=ON ^
|
||||
-DCMAKE_BUILD_TYPE=Release ^
|
||||
-DGPU_TARGETS="%mapped_target%" ^
|
||||
-DBUILD_SHARED_LIBS=ON ^
|
||||
-DLLAMA_BUILD_TESTS=OFF ^
|
||||
-DLLAMA_BUILD_TOOLS=ON ^
|
||||
-DLLAMA_BUILD_SERVER=ON ^
|
||||
-DGGML_HIP=ON ^
|
||||
-DGGML_HIP_FORCE_MMQ=ON ^
|
||||
-DGGML_CUDA_FORCE_CUBLAS=OFF ^
|
||||
-DGGML_OPENMP=OFF ^
|
||||
-DGGML_RPC=ON ^
|
||||
-DGGML_HIP_ROCWMMA_FATTN=OFF ^
|
||||
-DLLAMA_BUILD_BORINGSSL=ON ^
|
||||
-DGGML_NATIVE=OFF ^
|
||||
-DGGML_STATIC=OFF ^
|
||||
-DCMAKE_SYSTEM_NAME=Windows
|
||||
|
||||
cmake --build . -j %NUMBER_OF_PROCESSORS%
|
||||
|
||||
- name: Bundle ROCm Core Libraries (Windows)
|
||||
shell: powershell
|
||||
run: |
|
||||
$buildBinPath = "CachyLLama\build\bin"
|
||||
$rocmBinPath = "C:\opt\rocm\bin"
|
||||
Write-Host "Bundling ROCm runtime files to $buildBinPath..."
|
||||
|
||||
python scripts/gather_required_rocm_libs.py --rocm-dir "C:\opt\rocm" --dest-dir $buildBinPath --platform windows
|
||||
|
||||
- name: Verify Windows Binaries and Dependencies
|
||||
shell: powershell
|
||||
run: |
|
||||
$binDir = "CachyLLama\build\bin"
|
||||
Write-Host "Verifying executable existence and DLL dependencies in $binDir..."
|
||||
Get-ChildItem $binDir | Select-Object Name, Length
|
||||
$llamaCli = Join-Path $binDir "llama-cli.exe"
|
||||
$llamaServer = Join-Path $binDir "llama-server.exe"
|
||||
if (-not (Test-Path $llamaCli)) {
|
||||
Write-Error "llama-cli.exe missing!"
|
||||
exit 1
|
||||
}
|
||||
if (-not (Test-Path $llamaServer)) {
|
||||
Write-Error "llama-server.exe missing!"
|
||||
exit 1
|
||||
}
|
||||
Write-Host "Testing llama-cli.exe --help..."
|
||||
$helpText = & $llamaCli --help 2>&1
|
||||
$helpText | Select-Object -First 10 | Out-Host
|
||||
Write-Host "Windows binary verification successful!"
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cachy-llama-windows-rocm-${{ matrix.gfx_target }}-x64
|
||||
path: CachyLLama/build/bin/
|
||||
retention-days: 30
|
||||
|
||||
- name: Set job outputs
|
||||
id: set-outputs
|
||||
shell: powershell
|
||||
run: |
|
||||
$rocmVersion = if ($env:DETECTED_ROCM_VERSION) { $env:DETECTED_ROCM_VERSION } else { $env:ROCM_VERSION }
|
||||
echo "rocm_version=$rocmVersion" >> $env:GITHUB_OUTPUT
|
||||
echo "cachyllama_commit_hash=$env:CACHYLLAMA_COMMIT_HASH" >> $env:GITHUB_OUTPUT
|
||||
|
||||
build-ubuntu:
|
||||
runs-on: ubuntu-22.04
|
||||
needs: prepare-matrix
|
||||
@@ -500,15 +260,13 @@ jobs:
|
||||
echo "cachyllama_commit_hash=${CACHYLLAMA_COMMIT_HASH}" >> $GITHUB_OUTPUT
|
||||
|
||||
create-release:
|
||||
needs: [prepare-matrix, build-windows, build-ubuntu]
|
||||
needs: [prepare-matrix, build-ubuntu]
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: write
|
||||
if: |
|
||||
always() &&
|
||||
(needs.build-windows.result == 'success' || needs.build-windows.result == 'skipped') &&
|
||||
(needs.build-ubuntu.result == 'success' || needs.build-ubuntu.result == 'skipped') &&
|
||||
(needs.build-windows.result == 'success' || needs.build-ubuntu.result == 'success') &&
|
||||
needs.build-ubuntu.result == 'success' &&
|
||||
github.event_name != 'pull_request' &&
|
||||
(github.event_name == 'schedule' || github.event.inputs.create_release == 'true' || github.event.inputs.create_release == null)
|
||||
|
||||
@@ -564,8 +322,8 @@ jobs:
|
||||
- name: Generate release notes
|
||||
run: |
|
||||
TAG="${{ steps.tag.outputs.tag }}"
|
||||
ROCM_VERSION="${{ needs.build-windows.outputs.rocm_version || needs.build-ubuntu.outputs.rocm_version }}"
|
||||
CACHYLLAMA_COMMIT="${{ needs.build-windows.outputs.cachyllama_commit_hash || needs.build-ubuntu.outputs.cachyllama_commit_hash }}"
|
||||
ROCM_VERSION="${{ needs.build-ubuntu.outputs.rocm_version }}"
|
||||
CACHYLLAMA_COMMIT="${{ needs.build-ubuntu.outputs.cachyllama_commit_hash }}"
|
||||
|
||||
python3 scripts/generate_release_notes.py \
|
||||
--tag "$TAG" \
|
||||
|
||||
@@ -88,53 +88,8 @@ jobs:
|
||||
name: llama-ai-linux-x64-bundle.tar.gz
|
||||
path: llama-ai-linux-x64-bundle.tar.gz
|
||||
|
||||
build-bundle-macos:
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Clone llama-ai repository
|
||||
run: |
|
||||
git clone --depth 1 --branch "${{ github.event.inputs.llama_ai_version || 'main' }}" https://github.com/fewtarius/llama-ai.git llama-ai-dist
|
||||
|
||||
- name: Clone and Build CachyLLama (Metal Backend)
|
||||
run: |
|
||||
git clone --depth 1 --branch "${{ github.event.inputs.cachyllama_version || 'master' }}" https://github.com/fewtarius/CachyLLama.git CachyLLama
|
||||
cd CachyLLama
|
||||
cmake -B build \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DGGML_METAL=ON \
|
||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=13.3 \
|
||||
-DCMAKE_INSTALL_RPATH='@loader_path' \
|
||||
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
|
||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||
-DLLAMA_BUILD_TESTS=OFF \
|
||||
-DLLAMA_BUILD_TOOLS=ON \
|
||||
-DLLAMA_BUILD_SERVER=ON
|
||||
cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
|
||||
|
||||
- name: Assemble macOS Bundle
|
||||
run: |
|
||||
mkdir -p llama-ai-dist/src/cachy-llama-metal/build/bin
|
||||
cp -r CachyLLama/build/bin/* llama-ai-dist/src/cachy-llama-metal/build/bin/
|
||||
mkdir -p llama-ai-dist/bin
|
||||
cp -r CachyLLama/build/bin/* llama-ai-dist/bin/
|
||||
|
||||
chmod +x llama-ai-dist/llama-run.sh
|
||||
chmod +x llama-ai-dist/scripts/*.sh || true
|
||||
|
||||
tar -czvf llama-ai-macos-arm64-bundle.tar.gz -C llama-ai-dist .
|
||||
|
||||
- name: Upload macOS Bundle Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: llama-ai-macos-arm64-bundle.tar.gz
|
||||
path: llama-ai-macos-arm64-bundle.tar.gz
|
||||
|
||||
release:
|
||||
needs: [build-bundle-linux, build-bundle-macos]
|
||||
needs: [build-bundle-linux]
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -169,10 +124,6 @@ jobs:
|
||||
cp ./bundle-artifacts/llama-ai-linux-x64-bundle.tar.gz/llama-ai-linux-x64-bundle.tar.gz "./release-bundles/llama-ai-${TAG}-linux-x64.tar.gz"
|
||||
fi
|
||||
|
||||
if [ -f "./bundle-artifacts/llama-ai-macos-arm64-bundle.tar.gz/llama-ai-macos-arm64-bundle.tar.gz" ]; then
|
||||
cp ./bundle-artifacts/llama-ai-macos-arm64-bundle.tar.gz/llama-ai-macos-arm64-bundle.tar.gz "./release-bundles/llama-ai-${TAG}-macos-arm64.tar.gz"
|
||||
fi
|
||||
|
||||
ls -la ./release-bundles/
|
||||
|
||||
- name: Publish GitHub Release
|
||||
|
||||
@@ -4,9 +4,9 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
operating_systems:
|
||||
description: 'Operating systems to test on (comma-separated: windows,ubuntu)'
|
||||
description: 'Operating systems to test on (ubuntu)'
|
||||
required: false
|
||||
default: 'windows,ubuntu'
|
||||
default: 'ubuntu'
|
||||
gfx_target:
|
||||
description: 'AMD GPU targets (comma-separated: gfx1151,gfx1150,gfx110X)'
|
||||
required: false
|
||||
@@ -17,7 +17,7 @@ on:
|
||||
default: 'latest'
|
||||
|
||||
env:
|
||||
OPERATING_SYSTEMS: ${{ github.event.inputs.operating_systems || 'windows,ubuntu' }}
|
||||
OPERATING_SYSTEMS: ${{ github.event.inputs.operating_systems || 'ubuntu' }}
|
||||
GFX_TARGETS: ${{ github.event.inputs.gfx_target || 'gfx1151' }}
|
||||
RELEASE_TAG: ${{ github.event.inputs.release_tag || 'latest' }}
|
||||
|
||||
@@ -25,9 +25,7 @@ jobs:
|
||||
prepare-matrix:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
windows_matrix: ${{ steps.set-matrix.outputs.windows_matrix }}
|
||||
ubuntu_matrix: ${{ steps.set-matrix.outputs.ubuntu_matrix }}
|
||||
should_test_windows: ${{ steps.set-matrix.outputs.should_test_windows }}
|
||||
should_test_ubuntu: ${{ steps.set-matrix.outputs.should_test_ubuntu }}
|
||||
latest_release_tag: ${{ steps.get-release.outputs.latest_release_tag }}
|
||||
steps:
|
||||
@@ -62,60 +60,15 @@ jobs:
|
||||
| jq -s '{gfx_target: .}' \
|
||||
| jq -c)
|
||||
|
||||
should_test_windows="false"
|
||||
should_test_ubuntu="false"
|
||||
|
||||
if [[ "$operating_systems" == *"windows"* ]]; then
|
||||
should_test_windows="true"
|
||||
echo "windows_matrix=$matrix_targets" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
if [[ "$operating_systems" == *"ubuntu"* ]]; then
|
||||
should_test_ubuntu="true"
|
||||
echo "ubuntu_matrix=$matrix_targets" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
echo "should_test_windows=$should_test_windows" >> $GITHUB_OUTPUT
|
||||
echo "should_test_ubuntu=$should_test_ubuntu" >> $GITHUB_OUTPUT
|
||||
|
||||
test-windows:
|
||||
runs-on: windows-2022
|
||||
needs: prepare-matrix
|
||||
if: needs.prepare-matrix.outputs.should_test_windows == 'true'
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.prepare-matrix.outputs.windows_matrix) }}
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download release asset
|
||||
shell: powershell
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
$tag = "${{ needs.prepare-matrix.outputs.latest_release_tag }}"
|
||||
$target = "${{ matrix.gfx_target }}"
|
||||
$asset = "cachy-llama-${tag}-windows-rocm-${target}-x64.zip"
|
||||
Write-Host "Downloading $asset from release $tag..."
|
||||
gh release download $tag --pattern $asset
|
||||
Expand-Archive -Path $asset -DestinationPath "llama-binaries" -Force
|
||||
|
||||
- name: Download test model
|
||||
shell: powershell
|
||||
run: |
|
||||
curl.exe -L -o Qwen3-0.6B-Q4_0.gguf "https://huggingface.co/unsloth/Qwen3-0.6B-GGUF/resolve/main/Qwen3-0.6B-Q4_0.gguf?download=true"
|
||||
|
||||
- name: Test CachyLLama CLI
|
||||
shell: powershell
|
||||
run: |
|
||||
try {
|
||||
.\llama-binaries\llama-cli.exe -m Qwen3-0.6B-Q4_0.gguf -ngl 99 -p "I believe the meaning of life is" -st -v
|
||||
} catch {
|
||||
Write-Host "GPU mode failed, testing CPU mode..."
|
||||
.\llama-binaries\llama-cli.exe -m Qwen3-0.6B-Q4_0.gguf -ngl 0 -p "I believe the meaning of life is" -n 8 -st -v
|
||||
}
|
||||
|
||||
test-ubuntu:
|
||||
runs-on: ubuntu-22.04
|
||||
needs: prepare-matrix
|
||||
|
||||
@@ -43,7 +43,7 @@ CachyLLama-BUILDER/
|
||||
|
||||
### 1. `build-cachyllama-rocm.yml` (TheRock Multi-Arch Standalone)
|
||||
- **Schedule**: `0 13 * * *` (1:00 PM UTC / 5:00 AM PST, ~2 hours after daily AMD TheRock tarballs publish).
|
||||
- **Matrix OS**: Ubuntu 22.04 (`ubuntu-22.04`) and Windows Server 2022 (`windows-2022`).
|
||||
- **Matrix OS**: Ubuntu 22.04 (`ubuntu-22.04`).
|
||||
- **Matrix Targets**: `gfx1151`, `gfx1150`, `gfx120X`, `gfx110X`, `gfx103X`, `gfx90a`, `gfx908`.
|
||||
- **Target Mappings**:
|
||||
- `gfx110X` ➔ `gfx1100;gfx1101;gfx1102;gfx1103`
|
||||
@@ -51,10 +51,8 @@ CachyLLama-BUILDER/
|
||||
- `gfx120X` ➔ `gfx1200;gfx1201`
|
||||
- `gfx1151` ➔ `gfx1151`
|
||||
- `gfx1150` ➔ `gfx1150`
|
||||
- **AMD TheRock Scraping**: Fetches `https://rocm.nightlies.amd.com/tarball-multi-arch/` and extracts `const files = [...]` JSON to find newest `YYYYMMDD` build date matching `therock-dist-<os>-<target>-<version>.tar.gz`.
|
||||
- **Windows Toolchain Pin**: Pinned strictly to `windows-2022` (VS 2022 / MSVC 14.4x) to avoid MSVC 14.51 (VS 2026) `<cmath>` constexpr collision with ROCm Clang HIP headers.
|
||||
- **AMD TheRock Scraping**: Fetches `https://rocm.nightlies.amd.com/tarball-multi-arch/` and extracts `const files = [...]` JSON to find newest `YYYYMMDD` build date matching `therock-dist-linux-<target>-<version>.tar.gz`.
|
||||
- **Portability Layer**:
|
||||
- Windows: Copies `amdhip64_*.dll`, `rocblas.dll`, `hipblaslt.dll`, `amd_comgr*.dll`, `origami.dll`, plus `rocblas\library` and `hipblaslt\library`.
|
||||
- Linux: Copies `.so` libraries, `librocm_sysdeps_*`, `rocblas/library`, `hipblaslt/library`, and executes `patchelf --set-rpath '$ORIGIN' "$file"`.
|
||||
|
||||
### 2. `build-cachyllama-all.yml` (Multi-Backend Release)
|
||||
@@ -63,12 +61,10 @@ CachyLLama-BUILDER/
|
||||
- **Linux Vulkan (x64)**: Uses `-DGGML_VULKAN=ON` (RADV driver priority for AMD APUs).
|
||||
- **Linux CPU (x64 / ARM64)**: OpenMP, AVX2, AVX512 variants.
|
||||
- **Linux CUDA**: Architectures `sm_75`, `sm_80`, `sm_86`, `sm_89`, `sm_90`, `sm_100`, `sm_120`, `sm_121`.
|
||||
- **Windows CPU (x64)**: Native MSVC release build.
|
||||
- **macOS Metal (arm64)**: Native Apple Silicon Metal acceleration.
|
||||
|
||||
### 3. `build-llama-ai-bundle.yml` (Turnkey Distribution)
|
||||
- Assembles `fewtarius/llama-ai` with pre-compiled CachyLLama binaries, the solver (`scripts/optimize.sh`), `llama-run.sh`, and systemd units.
|
||||
- Generates ready-to-run release archives: `llama-ai-${TAG}-linux-x64.tar.gz` and `llama-ai-${TAG}-macos-arm64.tar.gz`.
|
||||
- Generates ready-to-run release archive: `llama-ai-${TAG}-linux-x64.tar.gz`.
|
||||
|
||||
---
|
||||
|
||||
@@ -77,9 +73,9 @@ CachyLLama-BUILDER/
|
||||
- **Format**: `bXXXX` (sequential 4-digit build numbers, e.g. `b1001`, `b1002`).
|
||||
- **Resolver**: The `.github/actions/get-tag-name` composite action checks `gh release list` and `git tag -l` to find the highest number and increments it by 1.
|
||||
- **Asset Pattern**:
|
||||
- ROCm: `cachy-llama-${TAG}-${os}-rocm-${target}-x64.zip`
|
||||
- ROCm: `cachy-llama-${TAG}-ubuntu-rocm-${target}-x64.zip`
|
||||
- Vulkan: `cachy-llama-${TAG}-bin-ubuntu-vulkan-x64.tar.gz`
|
||||
- llama-ai Bundle: `llama-ai-${TAG}-${os}-${arch}.tar.gz`
|
||||
- llama-ai Bundle: `llama-ai-${TAG}-linux-x64.tar.gz`
|
||||
|
||||
---
|
||||
|
||||
@@ -87,10 +83,8 @@ CachyLLama-BUILDER/
|
||||
|
||||
1. **Maintain CMake and ROCm Flags**:
|
||||
- Always ensure `-DGGML_HIP=ON`, `-DLLAMA_BUILD_SERVER=ON`, `-DLLAMA_BUILD_TOOLS=ON`, `-DGGML_RPC=ON`, and `-DCMAKE_INSTALL_RPATH='$ORIGIN'` are preserved when modifying ROCm workflows.
|
||||
2. **Preserve Windows Runner Image**:
|
||||
- Do NOT change `windows-2022` to `windows-latest` unless upstream ROCm clang resolves the MSVC 14.51 `<cmath>` header issue.
|
||||
3. **Verify Script Syntax Before Committing**:
|
||||
2. **Verify Script Syntax Before Committing**:
|
||||
- Always run `python3 -m py_compile scripts/*.py` and `bash -n scripts/*.sh`.
|
||||
- Always run `yaml.safe_load` on modified `.github/workflows/*.yml` files.
|
||||
4. **Clean Submodule Handling**:
|
||||
3. **Clean Submodule Handling**:
|
||||
- Local subfolders `CachyLLama/`, `llama-ai/`, `llama.cpp/`, `llamacpp-rocm/` are gitignored to allow local development and inspection without polluting the builder git repository.
|
||||
|
||||
@@ -39,7 +39,7 @@ python3 scripts/generate_release_notes.py --tag b1001 --cachyllama-commit master
|
||||
gh release list
|
||||
|
||||
# Trigger nightly ROCm build workflow manually
|
||||
gh workflow run build-cachyllama-rocm.yml -f operating_systems=ubuntu,windows -f gfx_target=gfx1151,gfx1150,gfx110X
|
||||
gh workflow run build-cachyllama-rocm.yml -f operating_systems=ubuntu -f gfx_target=gfx1151,gfx1150,gfx110X
|
||||
|
||||
# Trigger multi-backend release workflow manually
|
||||
gh workflow run build-cachyllama-all.yml
|
||||
|
||||
@@ -16,10 +16,9 @@ Developer reference for Google Gemini / Antigravity agents working in **CachyLLa
|
||||
- `lemonade-sdk/llama.cpp`
|
||||
|
||||
### Core Development Principles
|
||||
1. **Never Break CI Portability**: Standalone binaries must function without system-installed ROCm or CUDA drivers by bundling all required DLLs/shared objects and setting `RPATH=$ORIGIN`.
|
||||
1. **Never Break CI Portability**: Standalone binaries must function without system-installed ROCm or CUDA drivers by bundling all required shared objects and setting `RPATH=$ORIGIN`.
|
||||
2. **AMD APU Priority**: Strix Halo (`gfx1151`), Strix Point (`gfx1150`), and Phoenix (`gfx110X`) are primary targets. Always test that shader compile flags, subgroup configurations, and memory allocators align with CachyLLama defaults.
|
||||
3. **Keep Toolchain Pinned on Windows**: Maintain `windows-2022` for ROCm builds due to the MSVC 14.51 `<cmath>` header collision.
|
||||
4. **Planning Protocol**: For complex workflow restructuring, always use the `/plan` workflow: create a detailed implementation plan artifact, seek user review, verify with automated checks, and generate a walkthrough.
|
||||
3. **Planning Protocol**: For complex workflow restructuring, always use the `/plan` workflow: create a detailed implementation plan artifact, seek user review, verify with automated checks, and generate a walkthrough.
|
||||
|
||||
### Quick Verification Suite
|
||||
```bash
|
||||
|
||||
@@ -58,15 +58,14 @@ All ROCm and Vulkan packages are pre-compiled and bundled with required dynamic
|
||||
|
||||
| Architecture | GFX Target | Target AMD Devices & APUs / GPUs | Release Asset Pattern |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **RDNA3.5 (Strix Halo)** | `gfx1151` | **Ryzen AI Max+ 395 / Radeon 8060S (128 GB)** (Nimo Axis N161, Framework 16) | `cachy-llama-${TAG}-${os}-rocm-gfx1151-x64.zip` |
|
||||
| **RDNA3.5 (Strix Point)**| `gfx1150` | **Ryzen AI 9 HX 370 / 365 / Radeon 890M / 880M** (Asus Zenbook S16, G16) | `cachy-llama-${TAG}-${os}-rocm-gfx1150-x64.zip` |
|
||||
| **RDNA4** | `gfx120X` | **Next-Gen RDNA4 Discrete GPUs** (`gfx1200`, `gfx1201`) | `cachy-llama-${TAG}-${os}-rocm-gfx120X-x64.zip` |
|
||||
| **RDNA3** | `gfx110X` | **Radeon 780M / 760M** (7840U, 7940HS, Ayaneo Flip, GPD Win 4), **RX 7900 XTX / 7900 XT / 7800 XT** | `cachy-llama-${TAG}-${os}-rocm-gfx110X-x64.zip` |
|
||||
| **RDNA2** | `gfx103X` | **Steam Deck / Van Gogh 0405, 680M** (6800U), **RX 6800 / 6700 / 6600** | `cachy-llama-${TAG}-${os}-rocm-gfx103X-x64.zip` |
|
||||
| **CDNA / CDNA2** | `gfx90a`, `gfx908` | **AMD Instinct MI250X, MI210, MI100** Data Center Accelerators | `cachy-llama-${TAG}-${os}-rocm-gfx90a-x64.zip` |
|
||||
| **RDNA3.5 (Strix Halo)** | `gfx1151` | **Ryzen AI Max+ 395 / Radeon 8060S (128 GB)** (Nimo Axis N161, Framework 16) | `cachy-llama-${TAG}-ubuntu-rocm-gfx1151-x64.zip` |
|
||||
| **RDNA3.5 (Strix Point)**| `gfx1150` | **Ryzen AI 9 HX 370 / 365 / Radeon 890M / 880M** (Asus Zenbook S16, G16) | `cachy-llama-${TAG}-ubuntu-rocm-gfx1150-x64.zip` |
|
||||
| **RDNA4** | `gfx120X` | **Next-Gen RDNA4 Discrete GPUs** (`gfx1200`, `gfx1201`) | `cachy-llama-${TAG}-ubuntu-rocm-gfx120X-x64.zip` |
|
||||
| **RDNA3** | `gfx110X` | **Radeon 780M / 760M** (7840U, 7940HS, Ayaneo Flip, GPD Win 4), **RX 7900 XTX / 7900 XT / 7800 XT** | `cachy-llama-${TAG}-ubuntu-rocm-gfx110X-x64.zip` |
|
||||
| **RDNA2** | `gfx103X` | **Steam Deck / Van Gogh 0405, 680M** (6800U), **RX 6800 / 6700 / 6600** | `cachy-llama-${TAG}-ubuntu-rocm-gfx103X-x64.zip` |
|
||||
| **CDNA / CDNA2** | `gfx90a`, `gfx908` | **AMD Instinct MI250X, MI210, MI100** Data Center Accelerators | `cachy-llama-${TAG}-ubuntu-rocm-gfx90a-x64.zip` |
|
||||
| **Universal Vulkan** | `RADV` | **Universal Linux AMD APU Support** (Maximum driver stability without ROCm kernel DKMS) | `cachy-llama-${TAG}-bin-ubuntu-vulkan-x64.tar.gz` |
|
||||
| **NVIDIA CUDA** | `sm_75` - `sm_121` | **RTX 20 / 30 / 40 / 50 Series, A100, H100, Blackwell** | `cachy-llama-${TAG}-bin-ubuntu-cuda-${sm}-x64.tar.gz` |
|
||||
| **Apple Silicon** | `Metal` | **M1, M2, M3, M4 (Pro / Max / Ultra)** | `cachy-llama-${TAG}-bin-macos-metal-arm64.tar.gz` |
|
||||
|
||||
---
|
||||
|
||||
@@ -136,10 +135,9 @@ cd cachy-llama
|
||||
|
||||
## 🌟 Key Architecture & Portability Features
|
||||
|
||||
- **Zero Host ROCm Dependency**: Standalone Linux and Windows packages bundle all required ROCm runtime libraries (`rocblas.dll` / `.so`, `hipblaslt.dll` / `.so`, `amdhip64`, `libamd_comgr`, `origami`, `rocm_kpack`, etc.).
|
||||
- **Zero Host ROCm Dependency**: Standalone Linux packages bundle all required ROCm runtime libraries (`rocblas.so`, `hipblaslt.so`, `amdhip64`, `libamd_comgr`, `origami`, `rocm_kpack`, etc.).
|
||||
- **`$ORIGIN` RPATH Patchelfing**: Linux binaries are dynamically linked against their sibling libraries in the same directory using `patchelf --set-rpath '$ORIGIN'`, ensuring zero library collisions with system packages on SteamOS, Bazzite, CachyOS, Fedora, or Ubuntu.
|
||||
- **AMD TheRock Multi-Arch Dynamic Scraping**: Automatically checks `https://rocm.nightlies.amd.com/tarball-multi-arch/` to compile against the newest daily AMD ROCm toolchain.
|
||||
- **Windows Toolchain Compatibility**: Automatically applies MSVC 14.4x / `windows-2022` environment pinning to eliminate compiler collisions between Clang HIP and MSVC headers.
|
||||
- **Sequential Versioning**: Automatically manages sequential release tags (`b1001`, `b1002`...) matching upstream llama.cpp patterns.
|
||||
|
||||
---
|
||||
@@ -148,15 +146,15 @@ cd cachy-llama
|
||||
|
||||
| Workflow | Schedule | Description |
|
||||
| :--- | :--- | :--- |
|
||||
| **[`build-cachyllama-rocm.yml`](.github/workflows/build-cachyllama-rocm.yml)** | `0 13 * * *` (Daily) | Automated nightly ROCm multi-arch builder for Windows & Ubuntu across all gfx targets. |
|
||||
| **[`build-cachyllama-all.yml`](.github/workflows/build-cachyllama-all.yml)** | `0 2 * * *` (Daily) | Multi-backend release matrix (Linux Vulkan RADV, CPU x64/arm64, CUDA sm_75-121, Metal). |
|
||||
| **[`build-llama-ai-bundle.yml`](.github/workflows/build-llama-ai-bundle.yml)** | `0 4 * * *` (Daily) | Turnkey `llama-ai` distribution bundle assembler. |
|
||||
| **[`build-cachyllama-rocm.yml`](.github/workflows/build-cachyllama-rocm.yml)** | `0 13 * * *` (Daily) | Automated nightly ROCm multi-arch builder for Ubuntu across all gfx targets. |
|
||||
| **[`build-cachyllama-all.yml`](.github/workflows/build-cachyllama-all.yml)** | `0 2 * * *` (Daily) | Multi-backend release matrix (Linux Vulkan RADV, CPU x64/arm64, CUDA sm_75-121). |
|
||||
| **[`build-llama-ai-bundle.yml`](.github/workflows/build-llama-ai-bundle.yml)** | `0 4 * * *` (Daily) | Turnkey `llama-ai` distribution bundle assembler (Linux x64). |
|
||||
| **[`test-cachyllama-rocm.yml`](.github/workflows/test-cachyllama-rocm.yml)** | Post-Build / Manual | Automated GPU offload and prompt execution smoke test harness. |
|
||||
|
||||
### Manual Dispatch Parameters
|
||||
|
||||
Workflows can be dispatched on-demand via the **Actions** tab with custom inputs:
|
||||
- `operating_systems`: comma-separated (`windows,ubuntu`)
|
||||
- `operating_systems`: comma-separated (`ubuntu`)
|
||||
- `gfx_target`: AMD GPU architectures (`gfx1151,gfx1150,gfx120X,gfx110X,gfx103X,gfx90a,gfx908`)
|
||||
- `rocm_version`: version string or `latest` (auto-detected from AMD TheRock)
|
||||
- `cachyllama_version`: branch, tag, or commit hash in `fewtarius/CachyLLama`
|
||||
|
||||
@@ -47,7 +47,7 @@ def main():
|
||||
parser.add_argument("--llama-ai-commit", default="latest", help="llama-ai commit hash")
|
||||
parser.add_argument("--rocm-version", default="N/A", help="ROCm version used (e.g. 7.14.0a20260612)")
|
||||
parser.add_argument("--targets", default="", help="Comma-separated GPU targets (e.g. gfx1151,gfx1150)")
|
||||
parser.add_argument("--os-list", default="windows,ubuntu", help="Comma-separated OS list")
|
||||
parser.add_argument("--os-list", default="ubuntu", help="Comma-separated OS list")
|
||||
parser.add_argument("--artifacts-dir", type=Path, default=Path("."), help="Directory containing release archives")
|
||||
parser.add_argument("--output", type=Path, default=Path("release_notes.md"), help="Output markdown file")
|
||||
args = parser.parse_args()
|
||||
|
||||
Reference in New Issue
Block a user