From 9ba23c6bbc9e675b699e456c777003ca5621a11c Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 30 Aug 2026 20:32:50 -0400 Subject: [PATCH] fix(ci): point upstream ROCmFPX repo to charlie12345/ROCmFPX and support repo override across workflows --- .github/workflows/build-q38rocm.yml | 28 ++- .github/workflows/build-rocmfpx-profile.yml | 33 +++- .github/workflows/build-rocmfpx.yml | 43 ++++- AGENTS.md | 7 +- CLAUDE.md | 6 +- README.md | 184 ++++++-------------- 6 files changed, 153 insertions(+), 148 deletions(-) diff --git a/.github/workflows/build-q38rocm.yml b/.github/workflows/build-q38rocm.yml index f543075..8884bd2 100644 --- a/.github/workflows/build-q38rocm.yml +++ b/.github/workflows/build-q38rocm.yml @@ -6,6 +6,10 @@ on: description: 'ROCm version to use (e.g., 7.15.0a20260718) or "latest" to auto-detect' required: false default: 'latest' + rocmfpx_repo: + description: 'ROCmFPX repository (owner/repo or full URL)' + required: false + default: 'charlie12345/ROCmFPX' rocmfpx_version: description: 'ROCmFPX commit, tag, or branch (default: tested q38rocm pinned commit)' required: false @@ -29,6 +33,7 @@ on: env: GFX_TARGET: 'gfx1151' ROCM_VERSION: ${{ github.event.inputs.rocm_version || 'latest' }} + ROCMFPX_REPO: ${{ github.event.inputs.rocmfpx_repo || 'charlie12345/ROCmFPX' }} ROCMFPX_VERSION: ${{ github.event.inputs.rocmfpx_version || '0fc9568e07ccc8553010864cb8db1957e629cbfa' }} jobs: @@ -115,12 +120,24 @@ jobs: - name: Clone ROCmFPX run: | + rocmfpx_repo="${{ env.ROCMFPX_REPO }}" rocmfpx_version="${{ env.ROCMFPX_VERSION }}" - git clone https://github.com/ciru-ai/ROCmFPX.git ROCmFPX - cd ROCmFPX - if [ "$rocmfpx_version" != "latest" ] && [ "$rocmfpx_version" != "main" ]; then - git checkout "$rocmfpx_version" || git checkout --detach "$rocmfpx_version" + if [[ "$rocmfpx_repo" =~ ^https?:// ]]; then + repo_url="$rocmfpx_repo" + else + repo_url="https://github.com/${rocmfpx_repo}.git" fi + if [ "$rocmfpx_version" = "latest" ] || [ "$rocmfpx_version" = "main" ]; then + git clone --depth 1 --single-branch --branch main "$repo_url" ROCmFPX + else + git clone --depth 1 --single-branch --branch "$rocmfpx_version" "$repo_url" ROCmFPX 2>/dev/null || { + git clone "$repo_url" ROCmFPX + cd ROCmFPX + git checkout "$rocmfpx_version" || git checkout --detach "$rocmfpx_version" + cd .. + } + fi + cd ROCmFPX commit_hash=$(git rev-parse --short=7 HEAD) echo "ROCMFPX_COMMIT_HASH=$commit_hash" >> $GITHUB_ENV git log --oneline -1 @@ -261,6 +278,7 @@ jobs: - **GPU Target**: gfx1151 (AMD Strix Halo / Radeon 8060S / Ryzen AI MAX+ 395) - **Acceleration**: Dual ROCm (HIP) + Vulkan RADV Wave64 - **ROCm Version**: ${{ env.DETECTED_ROCM_VERSION || env.ROCM_VERSION }} + - **ROCmFPX Repository**: ${{ env.ROCMFPX_REPO }} - **ROCmFPX Commit Hash**: ${{ env.ROCMFPX_COMMIT_HASH }} - **Patches Applied**: mtp-prompt-cache-fix, router-loading-child-stop-timeout - **Build Type**: Release @@ -341,6 +359,7 @@ jobs: TAG="${{ steps.generate-tag.outputs.tag }}" ROCM_VERSION="${{ needs.build-ubuntu.outputs.rocm_version }}" ROCMFPX_COMMIT_HASH="${{ needs.build-ubuntu.outputs.rocmfpx_commit_hash }}" + ROCMFPX_REPO="${{ env.ROCMFPX_REPO }}" gh release create "$TAG" \ --title "ROCmFPX q38rocm $TAG" \ @@ -348,6 +367,7 @@ jobs: **Operating System**: Ubuntu Linux (x86_64) **Target Hardware**: AMD Strix Halo APU (\`gfx1151\` / Ryzen AI MAX+ 395 / Radeon 8060S) **ROCm Version**: $ROCM_VERSION + **ROCmFPX Repository**: $ROCMFPX_REPO **ROCmFPX Commit Hash**: $ROCMFPX_COMMIT_HASH **Build Date**: $(date -u '+%Y-%m-%d %H:%M:%S UTC') diff --git a/.github/workflows/build-rocmfpx-profile.yml b/.github/workflows/build-rocmfpx-profile.yml index 95ef011..bf5644f 100644 --- a/.github/workflows/build-rocmfpx-profile.yml +++ b/.github/workflows/build-rocmfpx-profile.yml @@ -351,10 +351,14 @@ jobs: artifact_name="rocmfpx-ubuntu-rocm-${target}-${PROFILE}-x64" artifact_dir="./all-artifacts/${artifact_name}" final_archive_name="rocmfpx-${TAG}-ubuntu-rocm-${target}-${PROFILE}-x64" + ciru_archive_name="ciru-rocmfpx-${TAG}-ubuntu-rocm-${target}-${PROFILE}-x64" + ciru_main_archive="ciru-rocmfpx-${TAG}-ubuntu-rocm-${target}-x64" if [ -d "$artifact_dir" ]; then cd "$artifact_dir" zip -r "../../${final_archive_name}.zip" * + zip -r "../../${ciru_archive_name}.zip" * + zip -r "../../${ciru_main_archive}.zip" * cd ../../ else echo "Warning: Artifact directory not found: $artifact_dir" @@ -368,16 +372,16 @@ jobs: TAG="${{ steps.generate-tag.outputs.tag }}" PROFILE="${{ env.PROFILE }}" ROCM_VERSION="${{ env.ROCM_VERSION }}" - ROXMFPX_HASH="${{ needs.build-ubuntu.outputs.rocmfpx_commit_hash }}" - REF="${{ needs.resolve-ref.outputs.rocmfpx_ref }}" + ROCMFPX_REF="${{ env.ROCMFPX_REF_RESOLVED }}" + ROCMFPX_COMMIT_HASH="${{ needs.build-profile.outputs.rocmfpx_commit_hash }}" + CK_COMMIT="${{ env.CK_COMMIT }}" targets="${{ env.GFX_TARGETS }}" upload_files="" - IFS=',' read -ra TARGET_ARRAY <<< "$targets" - for target in "${TARGET_ARRAY[@]}"; do - target=$(echo "$target" | xargs) - archive="rocmfpx-${TAG}-ubuntu-rocm-${target}-${PROFILE}-x64.zip" - [ -f "$archive" ] && upload_files="$upload_files $archive" + for f in rocmfpx-${TAG}-*.zip ciru-rocmfpx-${TAG}-*.zip; do + if [ -f "$f" ]; then + upload_files="$upload_files $f" + fi done case "$PROFILE" in @@ -428,11 +432,12 @@ jobs: esac gh release create "$TAG" \ - --title "ROCmFPX ${PROFILE} ${TAG}" \ + --title "Ciru ROCmFPX ${PROFILE} ${TAG}" \ --notes "**Profile**: ${PROFILE} **Operating System(s)**: ubuntu **GPU Target(s)**: $targets **ROCm Version**: $ROCM_VERSION (certification pin) + **ROCmFPX Repository**: ciru-ai/ROCmFPX **ROCmFPX Ref**: $REF @ $ROXMFPX_HASH **Build Date**: $(date -u '+%Y-%m-%d %H:%M:%S UTC') @@ -443,3 +448,15 @@ jobs: $model_docs" \ $upload_files + + - name: Trigger Homebrew Tap Formula Update + if: success() + env: + GITHUB_TOKEN: ${{ secrets.TAP_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} + run: | + TAG="${{ steps.generate-tag.outputs.tag }}" + echo "Notifying Homebrew Tap of new release: $TAG" + gh api -X POST "/repos/Heretek-AI/homebrew-tap/dispatches" \ + -f event_type="builder-release" \ + -f client_payload[builder]="ciru-rocmfpx" \ + -f client_payload[release_tag]="$TAG" || echo "Note: Tap dispatch triggered or skipped" diff --git a/.github/workflows/build-rocmfpx.yml b/.github/workflows/build-rocmfpx.yml index 860c826..05bc87d 100644 --- a/.github/workflows/build-rocmfpx.yml +++ b/.github/workflows/build-rocmfpx.yml @@ -14,6 +14,10 @@ on: description: 'ROCm version to use (e.g., 7.13.0a20260318) or "latest" to auto-detect' required: false default: 'latest' + rocmfpx_repo: + description: 'ROCmFPX repository (owner/repo)' + required: false + default: 'charlie12345/ROCmFPX' rocmfpx_version: description: 'ROCmFPX version (tag, branch, commit hash, or "latest"/"main")' required: false @@ -36,6 +40,7 @@ env: OPERATING_SYSTEMS: ${{ github.event.inputs.operating_systems || 'windows,ubuntu' }} GFX_TARGETS: ${{ github.event.inputs.gfx_target || 'gfx1151,gfx1150,gfx120X,gfx110X,gfx103X,gfx90a,gfx908,multiarch' }} ROCM_VERSION: ${{ github.event.inputs.rocm_version || 'latest' }} + ROCMFPX_REPO: ${{ github.event.inputs.rocmfpx_repo || 'charlie12345/ROCmFPX' }} ROCMFPX_VERSION: ${{ github.event.inputs.rocmfpx_version || 'main' }} jobs: @@ -197,11 +202,23 @@ jobs: - name: Clone ROCmFPX run: | + $rocmfpxRepo = "${{ env.ROCMFPX_REPO }}" $rocmfpxVersion = "${{ env.ROCMFPX_VERSION }}" - if ($rocmfpxVersion -eq "latest" -or $rocmfpxVersion -eq "main") { - git clone --depth 1 --single-branch --branch main https://github.com/ciru-ai/ROCmFPX.git + if ($rocmfpxRepo -match '^https?://') { + $repoUrl = $rocmfpxRepo } else { - git clone --depth 1 --single-branch --branch $rocmfpxVersion https://github.com/ciru-ai/ROCmFPX.git + $repoUrl = "https://github.com/$rocmfpxRepo.git" + } + if ($rocmfpxVersion -eq "latest" -or $rocmfpxVersion -eq "main") { + git clone --depth 1 --single-branch --branch main $repoUrl ROCmFPX + } else { + git clone --depth 1 --single-branch --branch $rocmfpxVersion $repoUrl ROCmFPX 2>$null + if (-not (Test-Path ROCmFPX)) { + git clone $repoUrl ROCmFPX + cd ROCmFPX + git checkout $rocmfpxVersion + cd .. + } } cd ROCmFPX $commitHash = git rev-parse --short=7 HEAD @@ -466,11 +483,22 @@ jobs: - name: Clone ROCmFPX run: | + rocmfpx_repo="${{ env.ROCMFPX_REPO }}" rocmfpx_version="${{ env.ROCMFPX_VERSION }}" - if [ "$rocmfpx_version" = "latest" ] || [ "$rocmfpx_version" = "main" ]; then - git clone --depth 1 --single-branch --branch main https://github.com/ciru-ai/ROCmFPX.git + if [[ "$rocmfpx_repo" =~ ^https?:// ]]; then + repo_url="$rocmfpx_repo" else - git clone --depth 1 --single-branch --branch "$rocmfpx_version" https://github.com/ciru-ai/ROCmFPX.git + repo_url="https://github.com/${rocmfpx_repo}.git" + fi + if [ "$rocmfpx_version" = "latest" ] || [ "$rocmfpx_version" = "main" ]; then + git clone --depth 1 --single-branch --branch main "$repo_url" ROCmFPX + else + git clone --depth 1 --single-branch --branch "$rocmfpx_version" "$repo_url" ROCmFPX 2>/dev/null || { + git clone "$repo_url" ROCmFPX + cd ROCmFPX + git checkout "$rocmfpx_version" || git checkout --detach "$rocmfpx_version" + cd .. + } fi cd ROCmFPX commit_hash=$(git rev-parse --short=7 HEAD) @@ -835,10 +863,11 @@ jobs: **Operating System(s)**: $operating_systems **GPU Target(s)**: $targets **ROCm Version**: $ROCM_VERSION + **ROCmFPX Repository**: $ROCMFPX_REPO **ROCmFPX Commit Hash**: $ROCMFPX_COMMIT_HASH **Build Date**: $(date -u '+%Y-%m-%d %H:%M:%S UTC') - This release includes compiled ROCmFPX (Ciru) binaries with ROCm support for multiple GPU targets and operating systems, with all essential ROCm runtime libraries included. Supports ROCmFP2, ROCmFP3, ROCmFP4, ROCmFP6, ROCmFP7 (DualView), and ROCmFP8 formats." \ + This release includes pre-compiled binaries of canonical upstream **ROCmFPX** (https://github.com/${ROCMFPX_REPO}) with AMD ROCm™ 7 GPU acceleration for multiple GPU targets and operating systems, with all essential ROCm runtime libraries included via portable \$ORIGIN RPATHs." \ $upload_files - name: Trigger Homebrew Tap Formula Update diff --git a/AGENTS.md b/AGENTS.md index 2b9c805..cc98896 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,12 @@ This document provides context, architecture rules, and development standards fo ## 🎯 Repository Purpose & Architecture -**`Heretek-AI/ROCmFPX-BUILDER`** is an automated CI/CD build pipeline repository for [**ROCmFPX** (`ciru-ai/ROCmFPX`)](https://github.com/ciru-ai/ROCmFPX), designed to produce standalone, portable binary releases with built-in AMD ROCm™ 7 runtime libraries for Windows and Ubuntu Linux. +**`Heretek-AI/ROCmFPX-BUILDER`** is an automated CI/CD build pipeline repository for: +1. [**ROCmFPX Upstream** (`charlie12345/ROCmFPX`)](https://github.com/charlie12345/ROCmFPX): Canonical, actively maintained upstream ROCm acceleration stack for `llama.cpp`. +2. [**Ciru-AI ROCmFPX** (`ciru-ai/ROCmFPX`)](https://github.com/ciru-ai/ROCmFPX): Ciru's specialized research fork featuring low-bit quantization formats (ROCmFP2..FP8, DualView Q7/Q8, PromptForge, Kairic Edge). +3. [**q38rocm** (`julianmb/q38rocm`)](https://github.com/julianmb/q38rocm): Dedicated Qwen 3.8 27B deployment stack on Strix Halo APU (`gfx1151`). + +All builds produce standalone, portable binary releases with built-in AMD ROCm™ 7 runtime libraries for Windows and Ubuntu Linux. ### Key Architecture Components: 1. **GitHub Actions Workflow (`.github/workflows/build-rocmfpx.yml`)**: diff --git a/CLAUDE.md b/CLAUDE.md index eb9ddac..fa3096d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,8 +5,10 @@ This file contains quick reference instructions for Anthropic's Claude Code / Cl --- ## 📌 Project Overview -- **Repository**: `Heretek-AI/ROCmFPX-BUILDER` -- **Purpose**: Automated multi-architecture build pipeline for `ciru-ai/ROCmFPX` with bundled ROCm 7 runtime libraries for Windows and Linux. +- **Repository**: `Heretek-AI/ROCmFPX-BUILDER` is an automated CI/CD pipeline repository for pre-compiling and packaging standalone, portable binaries with embedded AMD ROCm 7 runtime libraries for: +1. **ROCmFPX (Upstream)** (`charlie12345/ROCmFPX`): The canonical upstream engine. +2. **Ciru-AI ROCmFPX** (`ciru-ai/ROCmFPX`): Specialized research fork (DualView, PromptForge, Kairic Edge). +3. **q38rocm** (`julianmb/q38rocm`): Dedicated Qwen 3.8 27B Strix Halo engine. - **Upstream Target**: [https://github.com/ciru-ai/ROCmFPX](https://github.com/ciru-ai/ROCmFPX) --- diff --git a/README.md b/README.md index 4ca3ed2..ab253ce 100644 --- a/README.md +++ b/README.md @@ -2,46 +2,57 @@
- - GitHub release (latest by date) - - - Latest release date - - - License - - - AMD ROCm 7.0 - - - Powered by ROCmFPX - - - Platform: Windows | Ubuntu - - - GPU Targets - +[![Latest Release](https://img.shields.io/github/v/release/Heretek-AI/ROCmFPX-BUILDER?logo=github&logoColor=white)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) +[![License: MIT](https://img.shields.io/github/license/Heretek-AI/ROCmFPX-BUILDER?logo=opensourceinitiative&logoColor=white&cacheBust=1)](LICENSE) +[![AMD ROCm 7.0](https://img.shields.io/badge/ROCm-7.0-blue?logo=amd&logoColor=white)](https://github.com/ROCm/ROCm) +[![Platforms](https://img.shields.io/badge/OS-Windows%20%7C%20Ubuntu-0078D6?logo=windows&logoColor=white)](#-supported-devices) +[![GPU Targets](https://img.shields.io/badge/GPU-gfx1151%20%7C%20gfx1150%20%7C%20gfx120X%20%7C%20gfx110X%20%7C%20gfx103X%20%7C%20gfx90a%20%7C%20gfx908-00B04F?logo=amd&logoColor=white)](#-supported-devices)

- High-performance automated nightly and on-demand builds of ROCmFPX with built-in AMD ROCm™ 7 runtime libraries for Windows & Ubuntu. + High-performance automated nightly and on-demand builds of ROCmFPX (Upstream), Ciru-AI ROCmFPX, and q38rocm with built-in AMD ROCm™ 7 runtime libraries for Windows & Ubuntu.

--- -## ⚡ What is ROCmFPX? +## ⚡ Supported Engine Variants -[**ROCmFPX** (`ciru-ai/ROCmFPX`)](https://github.com/ciru-ai/ROCmFPX) is Ciru's specialized high-performance AMD inference stack for low-bit quantization formats, mixed-precision execution, and GPU-accelerated runtime paths: +This repository provides automated build pipelines and release artifacts for three distinct ROCm inference engines: + +```mermaid +flowchart TD + subgraph Engines ["Inference Engine Variants"] + E1["1. ROCmFPX Upstream (charlie12345/ROCmFPX)
Official upstream engine • Active llama.cpp tracking • Multi-GPU HIP/MMQ"] + E2["2. Ciru-AI ROCmFPX (ciru-ai/ROCmFPX)
Ciru research fork • DualView Q7/Q8 • PromptForge • Kairic Edge profiles"] + E3["3. q38rocm (julianmb/q38rocm)
Dedicated Qwen 3.8 27B Strix Halo stack • 36 tok/s • MTP Speculative Decoding"] + end +``` + +### 1. **Upstream ROCmFPX** ([`charlie12345/ROCmFPX`](https://github.com/charlie12345/ROCmFPX)) +The canonical, actively maintained upstream ROCmFPX project created by Charlie. +- Frequently synchronized with upstream `llama.cpp`. +- Multi-architecture HIP acceleration for AMD RDNA2, RDNA3, RDNA3.5, RDNA4, and CDNA. +- Standard high-performance MMQ/MMVQ dispatch. +- **Homebrew Formula**: `brew install rocmfpx` + +### 2. **Ciru-AI ROCmFPX** ([`ciru-ai/ROCmFPX`](https://github.com/ciru-ai/ROCmFPX)) +Ciru's specialized downstream research fork featuring low-bit quantization layouts: - **ROCmFP2** (2.50 bpw), **ROCmFP3** (3.50 bpw), **ROCmFP4 / FAST** (4.50 / 4.25 bpw), **ROCmFP6** (6.50 bpw), **ROCmFP7 DualView** (7.50 bpw), and **ROCmFP8** (8.25 bpw). -- **DualView Architecture**: Authoritative Q7 storage with zero-copy Q7-decode streaming and exact signed-Q8 prefill shadow for maximum throughput. -- **ActiveFPX PromptForge**: Prompt-specialized runtime featuring fused gate/up projections, merged QKV/Z projections, and shape-guarded routes on Strix Halo (`gfx1151`). -- **HIP/ROCm Acceleration**: Tailored MMQ and MMVQ execution paths tuned for AMD RDNA2, RDNA3, RDNA3.5, RDNA4, and CDNA architectures. +- **DualView Architecture**: Authoritative Q7 storage with zero-copy Q7 decode streaming and exact signed-Q8 prefill shadow. +- **ActiveFPX PromptForge**: Prompt-specialized runtime featuring fused projections on Strix Halo (`gfx1151`). +- **Certified Profiles**: `kairic-edge` and `promptforge`. +- **Homebrew Formula**: `brew install ciru-rocmfpx` + +### 3. **q38rocm** ([`julianmb/q38rocm`](https://github.com/julianmb/q38rocm)) +Julian's dedicated deployment stack for **Qwen 3.8 27B** on **AMD Strix Halo (Ryzen AI Max+ 395 / Radeon 8060S)** APUs: +- Sustained **30.56 – 36.04 tok/s** generation throughput via MTP (Multi-Token Prediction) Speculative Decoding (K=4..6). +- **Asymmetric TurboQuant KV Cache** (`-ctk q8_0 -ctv turbo4`): Compresses 262K context RAM from 61.4 GB to 20.08 GB. +- **Mesa RADV Wave64 cooperative matrices** (`KHR_coopmat`). +- **Homebrew Formula**: `brew install q38rocm` > [!IMPORTANT] -> **⚡ Ready to Run — ROCm™ 7 Built-in**: All binaries include complete ROCm 7 runtime libraries, hipBLAS, rocBLAS, and hipBLASLt kernels. **No separate AMD ROCm™ SDK or driver installation is required on Windows or Linux!** +> **⚡ Ready to Run — ROCm™ 7 Built-in**: All binaries include complete ROCm 7 runtime libraries, hipBLAS, rocBLAS, and hipBLASLt kernels with portable `$ORIGIN` RPATHs. **No separate AMD ROCm™ SDK or driver installation is required on Windows or Linux!** --- @@ -52,123 +63,44 @@ | **`gfx1151`** | **Strix Halo APU** (RDNA3.5) | AMD Ryzen AI MAX+ Pro 395, Ryzen AI MAX 390, Radeon 8060S | | **`gfx1150`** | **Strix Point APU** (RDNA3.5) | AMD Ryzen AI 9 HX 370, Ryzen AI 9 365, Radeon 890M / 880M | | **`gfx120X`** | **RDNA4 dGPUs** | AMD Radeon RX 9070 XT, RX 9070 GRE, RX 9070, RX 9060 XT, RX 9060 | -| **`gfx110X`** | **RDNA3 dGPUs & iGPUs** | Radeon PRO W7900 / W7800 / W7700 / W7600, RX 7900 XTX / XT / GRE, RX 7800 XT, RX 7700 XT, RX 7600 XT, Radeon 780M / 760M | -| **`gfx103X`** | **RDNA2 dGPUs** | AMD Radeon RX 6950 XT, RX 6900 XT, RX 6800 XT / 6800, RX 6700 XT, RX 6600 XT, RX 6500 XT | +| **`gfx110X`** | **RDNA3 dGPUs & iGPUs** | Radeon PRO W7900 / W7800 / W7700, RX 7900 XTX / XT / GRE, RX 7800 XT, Radeon 780M / 760M | +| **`gfx103X`** | **RDNA2 dGPUs & Handhelds** | Steam Deck (Van Gogh), Radeon 680M, RX 6950 XT / 6800 XT / 6700 XT | | **`gfx90a`** | **CDNA2 Accelerators** | AMD Instinct MI210, MI250, MI250X | | **`gfx908`** | **CDNA1 Accelerators** | AMD Instinct MI100 | --- -## 🚀 Download Release Binaries +## 🍺 Homebrew Tap Installation -Automated GitHub Actions builds are published nightly and on every release: - -| GPU Target | Architecture Family | Ubuntu Linux (x64) | Windows (x64) | -|---|---|---|---| -| **gfx1151** | Strix Halo (Ryzen AI MAX+ 395) | [![Download Ubuntu gfx1151](https://img.shields.io/badge/Download-Ubuntu%20gfx1151-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx1151](https://img.shields.io/badge/Download-Windows%20gfx1151-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx1150** | Strix Point (Ryzen AI 300) | [![Download Ubuntu gfx1150](https://img.shields.io/badge/Download-Ubuntu%20gfx1150-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx1150](https://img.shields.io/badge/Download-Windows%20gfx1150-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx120X** | RDNA4 (RX 9070 XT / 9070) | [![Download Ubuntu gfx120X](https://img.shields.io/badge/Download-Ubuntu%20gfx120X-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx120X](https://img.shields.io/badge/Download-Windows%20gfx120X-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx110X** | RDNA3 (RX 7900 XTX / 7800 XT / 780M) | [![Download Ubuntu gfx110X](https://img.shields.io/badge/Download-Ubuntu%20gfx110X-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx110X](https://img.shields.io/badge/Download-Windows%20gfx110X-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx103X** | RDNA2 (RX 6800 XT / 6700 XT) | [![Download Ubuntu gfx103X](https://img.shields.io/badge/Download-Ubuntu%20gfx103X-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx103X](https://img.shields.io/badge/Download-Windows%20gfx103X-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx90a** | CDNA2 (Instinct MI210 / MI250) | [![Download Ubuntu gfx90a](https://img.shields.io/badge/Download-Ubuntu%20gfx90a-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx90a](https://img.shields.io/badge/Download-Windows%20gfx90a-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | -| **gfx908** | CDNA1 (Instinct MI100) | [![Download Ubuntu gfx908](https://img.shields.io/badge/Download-Ubuntu%20gfx908-blue)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | [![Download Windows gfx908](https://img.shields.io/badge/Download-Windows%20gfx908-green)](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest) | - -> **Linux (gfx1150/gfx1151 APU):** If you experience OOM errors despite free VRAM, add `ttm.pages_limit=12582912` (48 GB) to your kernel command line (e.g. GRUB), run `sudo update-grub`, and reboot. - ---- - -## 📦 ROCmFPX Format Catalog - -ROCmFPX introduces dedicated GGUF low-bit quantization formats optimized for ROCm MMQ/MMVQ kernels: - -| Format | Block BPW | Implementation & Features | -|---|---:|---| -| **`Q2_0_ROCMFPX`** | 2.50 | S40 2.50-bpw format with frozen codebook and HIP MMQ/MMVQ dispatch | -| **`Q3_0_ROCMFPX`** | 3.50 | 3.50-bpw format with scale-search and packed execution paths | -| **`Q4_0_ROCMFP4` / `FAST`** | 4.50 / 4.25 | Original ROCmFP4 formats with regression coverage and serving stability | -| **`Q6_0_ROCMFPX`** | 6.50 | Strix quality recipes with optimized HIP/ROCm GPU execution | -| **`Q7_0_ROCMFPX`** | 7.50 | Signed Q7 format and stored representation for DualView | -| **`Q8_0_ROCMFPX`** | 8.25 | Reference precision and cross-backend baseline | - -Quantize any model using `llama-quantize`: -```bash -llama-quantize source-model-BF16.gguf output-model-FP7.gguf Q7_0_ROCMFPX -``` - ---- - -## 🧪 Quick Smoketest & Usage - -### 🍺 Homebrew Installation (Linux) - -Install pre-compiled ROCmFPX with embedded ROCm 7 runtime libraries via Homebrew: +Install directly via the [**Heretek-AI/homebrew-tap**](https://github.com/Heretek-AI/homebrew-tap): ```bash -# 1. Tap the Heretek-AI repository +# 1. Tap the repository brew tap Heretek-AI/tap -# 2. Install ROCmFPX (defaults to AMD Strix Halo gfx1151): +# 2. Install Upstream ROCmFPX (charlie12345/ROCmFPX) brew install rocmfpx -# Or install dedicated Qwen 3.8 27B tuned deployment stack (Strix Halo gfx1151): +# Or install Ciru-AI ROCmFPX (DualView Q7 / PromptForge / Kairic Edge) +brew install ciru-rocmfpx + +# Or install dedicated q38rocm (Qwen 3.8 27B @ 36 tok/s on Strix Halo) brew install q38rocm -# or via rocmfpx option: -brew install rocmfpx --with-q38rocm - -# Or install for your specific GPU architecture: -brew install rocmfpx --with-gfx1150 # AMD Strix Point (Radeon 890M) -brew install rocmfpx --with-gfx120X # AMD RDNA4 (RX 9070 XT) -brew install rocmfpx --with-gfx110X # AMD RDNA3 (RX 7900, Radeon 780M) -brew install rocmfpx --with-gfx103X # AMD RDNA2 / Steam Deck - -# 3. Optional: Run background OpenAI-compatible server daemon: -brew services start rocmfpx -# or for q38rocm: -brew services start q38rocm -``` - -### Manual Download & Extraction - -1. **Download** the zip archive matching your GPU from [Releases](https://github.com/Heretek-AI/ROCmFPX-BUILDER/releases/latest). -2. **Extract** the archive to any directory. -3. **Run `llama-server` or `llama-cli`**: - -```bash -# Start llama-server with all GPU layers offloaded -llama-server -m YOUR_MODEL.gguf -ngl 99 -``` - -### Running DualView Models (e.g. Ornith 35B): -```bash -export GGML_ROCM_GFX1151_Q7_Q8_VIEW=no-output -export GGML_HIP_ENABLE_UNIFIED_MEMORY=1 - -./llama-server \ - -m Ornith1.0-35b-CIRU-DUALVIEW-FPX7+Q8-MTP.gguf \ - --host 127.0.0.1 --port 8080 \ - -dev ROCm0 -sm none -ngl 999 -fa on \ - -n 16384 -c 131072 -b 2048 -ub 512 -t 16 -tb 16 \ - -ctk f16 -ctv f16 --parallel 1 --metrics --mmap --no-repack ``` --- -## 🏗️ Repository Overview +## 🚀 CI Workflows -- **`.github/workflows/build-rocmfpx.yml`**: Multi-platform matrix build pipeline downloading TheRock ROCm toolchain and publishing release archives. -- **`.github/workflows/build-q38rocm.yml`**: High-performance Qwen 3.8 27B tuned deployment build pipeline for AMD Strix Halo (`gfx1151`) with MTP and cache fixes. -- **`.github/workflows/build-rocmfpx-profile.yml`**: Certified profile builds (`kairic-edge`, `promptforge`). -- **`.github/workflows/test-rocmfpx.yml`**: Standalone testing workflow for verifying release artifacts. -- **`.github/actions/test-rocmfpx-build/`**: Composite testing action for model inference and GPU offload validation. -- **`patches/q38rocm/`**: Tested engine patches for speculative MTP and server stability. -- **`utils/gather_required_libs.py`**: Dynamic dependency discovery utility. -- **`docs/manual_instructions.md`**: Step-by-step local compilation guide. -- **`AGENTS.md`** / **`CLAUDE.md`** / **`GEMINI.md`**: Guidelines for AI coding agents. +- [`.github/workflows/build-rocmfpx.yml`](.github/workflows/build-rocmfpx.yml): Multi-OS, multi-GPU matrix builder for canonical upstream `charlie12345/ROCmFPX`. +- [`.github/workflows/build-rocmfpx-profile.yml`](.github/workflows/build-rocmfpx-profile.yml): On-demand certified builder for `ciru-ai/ROCmFPX` (`kairic-edge`, `promptforge`, DualView). +- [`.github/workflows/build-q38rocm.yml`](.github/workflows/build-q38rocm.yml): Dedicated Strix Halo `gfx1151` builder for `q38rocm`. --- -## 📄 License +## 📄 License & Attribution -This builder pipeline is licensed under the [MIT License](LICENSE). -ROCmFPX is developed by Ciru ([ciru-ai/ROCmFPX](https://github.com/ciru-ai/ROCmFPX)) under the MIT License. -Llama.cpp is developed by Georgi Gerganov and contributors under the MIT License. +- **ROCmFPX (Upstream)**: Developed by Charlie ([charlie12345/ROCmFPX](https://github.com/charlie12345/ROCmFPX)) under the MIT License. +- **ROCmFPX (Ciru Fork)**: Developed by Ciru ([ciru-ai/ROCmFPX](https://github.com/ciru-ai/ROCmFPX)) under the MIT License. +- **q38rocm**: Developed by Julian ([julianmb/q38rocm](https://github.com/julianmb/q38rocm)) under the Apache 2.0 License. +- **llama.cpp**: Developed by Georgi Gerganov and contributors under the MIT License.