Files
Felipe Cardoso 58124cd657 feat: add Qwen3.5 model catalog and agentic evaluation framework
Models:
- configs/models.conf: catalog with Qwen3.5-35B-A3B (MoE, top pick),
  Qwen3.5-27B (dense), Qwen3-Coder-30B-A3B (agentic/coding)
- Updated benchmark setup to show catalog with download status
- docs/model-recommendations.md: memory planning, quantization guide

Agentic evaluation:
- scripts/agentic/setup.sh: installs inspect-ai, evalplus, bigcodebench
  in a Python venv
- scripts/agentic/run-eval.sh: runs evaluations against local LLM server
  (ollama or llama.cpp). Suites: quick (HumanEval+IFEval), code
  (EvalPlus+BigCodeBench), tooluse (BFCL), full (all)
- bin/agentic: dispatcher with help
- docs/agentic-benchmarks.md: methodology, framework comparison, model
  recommendations for agentic use

Updated: Makefile (6 new targets), README, CLAUDE.md, docs/references.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 00:20:23 +01:00

123 lines
5.3 KiB
Markdown

# Strix Halo Optimization Toolkit
Audit, monitor, benchmark, and optimize AMD Strix Halo integrated GPU systems for LLM inference workloads.
**Target hardware**: AMD Ryzen AI MAX+ 395 / Radeon 8060S (gfx1151) with 64 GB unified memory, on Fedora 43. Tested on HP ZBook Ultra G1a.
## Quick Start
```bash
make audit # See current system status and optimization score
make monitor-install # Install amdgpu_top + btop
make benchmark-setup # Create toolbox containers + download test model
make benchmark-baseline # Capture performance before optimization
```
## System Status
`make audit` produces a single-screen overview:
```
=== Memory Allocation ===
[!!] VRAM (dedicated) 32.0 GiB — should be 0.5 GiB in BIOS
[!!] GTT (dynamic) 15.5 GiB — should be ~59.0 GiB with kernel params
=== Kernel Boot Parameters ===
[!!] iommu=pt MISSING
[!!] amdgpu.gttsize MISSING — recommended: 60416
[!!] ttm.pages_limit MISSING — recommended: 15466496
=== Performance Profile ===
[!!] Tuned profile throughput-performance — recommended: accelerator-performance
=== Optimization Score ===
2 / 8 checks passing
```
Each `[!!]` is an optimization opportunity. Run `make optimize` to address them.
## Commands
| Command | Description |
|---------|-------------|
| `make audit` | Quick system status (single screen) |
| `make audit-full` | Full system report (saved to data/audits/) |
| `make monitor` | Launch tmux monitoring dashboard |
| `make monitor-simple` | Launch amdgpu_top only |
| `make monitor-install` | Install monitoring tools (amdgpu_top, btop) |
| `make monitor-log` | Start background CSV metric logger |
| `make benchmark-setup` | Ensure toolboxes and test models are ready |
| `make benchmark-baseline` | Capture pre-optimization baseline |
| `make benchmark` | Run full benchmark suite |
| `make benchmark-compare` | Compare two runs (`BEFORE=dir AFTER=dir`) |
| `sudo make optimize` | Interactive optimization walkthrough |
| `sudo make optimize-kernel` | Configure kernel boot parameters |
| `sudo make optimize-tuned` | Switch to accelerator-performance profile |
| `make optimize-vram` | BIOS VRAM guidance + GTT verification |
| `make verify` | Post-optimization verification checklist |
| `sudo make rollback` | Rollback optimizations |
| `make agentic-setup` | Install agentic eval frameworks (inspect-ai, evalplus) |
| `make agentic-quick ARGS="--model NAME"` | EvalPlus + IFEval (~1 hour) |
| `make agentic-code ARGS="--model NAME"` | Code generation evals (~2-3 hours) |
| `make agentic-tooluse ARGS="--model NAME"` | BFCL function calling eval (~1-2 hours) |
| `make agentic-full ARGS="--model NAME"` | All agentic evaluations (~5-6 hours) |
| `make test` | Run BATS test suite |
## Optimization Workflow
```
1. Audit make audit
2. Monitor make monitor-install && make monitor
3. Baseline make benchmark-setup && make benchmark-baseline
4. Optimize sudo make optimize
│ ├── tuned profile (instant, +5-8% pp)
│ ├── kernel params (reboot required)
│ └── BIOS VRAM (reboot + BIOS access)
5. Verify make verify
6. Re-benchmark make benchmark && make benchmark-compare BEFORE=... AFTER=...
```
See [docs/optimization.md](docs/optimization.md) for the full walkthrough with explanations.
## Project Structure
```
bin/ Entry points (audit, monitor, benchmark, optimize)
lib/ Shared bash libraries (common, detect, format)
scripts/ Implementation organized by function
configs/ Reference configuration (grub-cmdline.conf with recommended kernel params)
data/ Runtime output: audits, benchmarks, logs, backups (gitignored)
docs/ Technical documentation
```
See [docs/architecture.md](docs/architecture.md) for the full architecture, data flow, and JSON schemas.
## Requirements
- **OS**: Fedora 43 (tested). Requires kernel >= 6.18.4
- **Hardware**: AMD Strix Halo (Ryzen AI MAX / MAX+) with RDNA 3.5 iGPU
- **Tools**: `bc`, `python3`, `tmux`, `podman`, `toolbox`
- **Optional**: `amdgpu_top` (installed via `make monitor-install`), `huggingface-cli` (for model downloads)
## Documentation
| Document | Contents |
|----------|----------|
| [docs/architecture.md](docs/architecture.md) | Script layers, data flow, unified memory model, JSON schemas |
| [docs/optimization.md](docs/optimization.md) | Step-by-step optimization walkthrough |
| [docs/benchmarking.md](docs/benchmarking.md) | Benchmark methodology, test params, result interpretation |
| [docs/bios-vram-guide.md](docs/bios-vram-guide.md) | HP ZBook BIOS configuration for VRAM |
| [docs/troubleshooting.md](docs/troubleshooting.md) | Common issues and fixes |
| [docs/model-recommendations.md](docs/model-recommendations.md) | Qwen3.5 models, quantization, memory planning |
| [docs/agentic-benchmarks.md](docs/agentic-benchmarks.md) | Agentic evaluation frameworks and methodology |
| [docs/references.md](docs/references.md) | External links: AMD docs, toolboxes, community resources |
## Contributing
AI assistants: see [CLAUDE.md](CLAUDE.md) for safety rules and technical context. Agent workflows are in [AGENTS.md](AGENTS.md).