softgpu 0.8.0

Developer-oriented GPU emulation, testing, debugging, and sanitization runtime
Documentation
# Changelog

All notable changes to SoftGPU are documented here.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.8.0] — 2026-09-16

### Added

- HSA executable subset: `hsa_code_object_reader_*`, `hsa_executable_create_alt` /
  load_agent / freeze / get_symbol_by_name / symbol_get_info / get_info.
- SoftGPU agent image load: gfx1201 metadata + `.text` extract
  (`softgpu-amd-code-object::load_agent_image`), fixture
  `fixture_tiny_add_with_text`.
- SoftGPU CC launch for loaded SoftGPU artifacts; AQL
  `softgpu_kernel_success` via executable→kernel_object bridge.
- Host gate `phase_hip_load`; ROCm helper
  `environments/rocm-x86_64/run-phase-hip-load.sh`.

### Changed

- `ACTIVE_PHASE``phase-hip-load`.
- Workspace package version → `0.8.0`.

### Notes

- SoftGPU fixtures use SoftGPU CC (`s[4:5]` kernarg). Arbitrary hipcc `.text`
  may still trap until ISA grows; optional hipcc compile is inspect-only.
- Unrestricted HIP / rocBLAS / hardware differential remain unsupported (v0.9).

## [0.7.0] — 2026-09-16

### Added

- Broader SoftGPU gfx1201 compute ISA subset `softgpu-gfx1201-compute-v2`
  (SOPC/SOPK/branches, richer SOP1/SOP2, VOP1/VOP2/VOPC) with llvm-mc goldens.
- SoftGPU builtins `clamp64` and `select_gt50` (host differential + `run-kernel`).
- Nested Phase 11 `softgpu-gfx1201-e2e-tiny-v1` / `tiny_add` remains supported.
- Living gap map updates in [`docs/ISA-gap-analysis.md`]docs/ISA-gap-analysis.md.

### Changed

- `ACTIVE_PHASE``phase-isa-v2`.
- Workspace package version → `0.7.0`.

### Notes

- HSA executable / HIP module load still stubbed (target of v0.8.0).
- Unrestricted HIP launch and hardware differential remain unsupported (v0.9 / Phase 12).

## [0.6.0] — 2026-09-16

### Added

- Phase 10: `softgpu-amd-isa` sourced gfx1201 SALU foundation (decoder, machine
  state, fail-closed traps, llvm-mc goldens, fuzz), `softgpu decode-isa` /
  `run-isa`, Article 11.
- Phase 11: e2e tiny subset `softgpu-gfx1201-e2e-tiny-v1` (SMEM/VOP2/GLOBAL),
  llvm-mc SoftGPU `tiny_add` text, AQL `softgpu_kernel_success` for registered
  kernels with SoftGPU kernarg, `softgpu run-kernel`, Article 12,
  [`docs/isa-path.md`]docs/isa-path.md.

### Changed

- `ACTIVE_PHASE``phase-11`.
- Workspace / crates.io package version → `0.6.0` (all SoftGPU crates via
  `[workspace.package]`, including new `softgpu-amd-isa`).

### Notes

- Unregistered AQL kernels remain `diagnostic_complete_no_execution`.
- SoftGPU e2e tiny calling convention is SoftGPU-defined (not a full AMD ABI claim).
- Unrestricted HIP/`hipcc` launch and full gfx1201 coverage remain **unsupported**.
- Hardware differential deferred to Phase 12.
- Tag `v0.6.0` must match root `Cargo.toml` `[workspace.package] version = "0.6.0"`
  (release workflow gate).

## [0.5.0] — 2026-09-16

### Added

- Phase 9: SoftGPU debugger (`softgpu-debug-trace-v1`), breakpoints, state snapshots, hostile JSONL reader, `schedule_seed` wave-order exploration, race minimize; `softgpu debug-functional`; Article 10; `phase9_debug` tests.
- Coverage-focused tests for ELF fail-closed paths, Phase 9 debug edges, and CLI smoke (`debug-functional`, `--sanitize collect`, `check-config`).

### Changed

- `ACTIVE_PHASE``phase-9`.
- Workspace / crates.io package version → `0.5.0` (all SoftGPU crates via `[workspace.package]`).

### Notes

- Debugger never invents SFIR→source line maps (provenance string only).
- HIP/HSA AQL kernel success remains **unsupported**.
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Tag `v0.5.0` must match root `Cargo.toml` `[workspace.package] version = "0.5.0"` (release workflow gate).

## [0.4.0] — 2026-09-15

### Added

- Phase 8: SoftGPU functional sanitizer (shadow state, SoftGPU happens-before races, missing barrier, OOB/UAF/uninit, replay bundles); `--sanitize` on `run-functional`; Article 9; `phase8_sanitize` tests.

### Changed

- `ACTIVE_PHASE``phase-8`.

### Notes

- HIP/HSA AQL kernel success remains **unsupported** (diagnostic complete ≠ success).
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Fidelity claimed for Phase 8 path: **Sanitized** (declared SoftGPU HB subset on SFIR).

## [0.3.0] — 2026-09-15

### Added

- Phase 7: SoftGPU software waves/lanes, group memory, barrier segments, structured `if`/`while`, compares/`and`, selected `atomic_add`; `wave_barrier` schedule; Article 8; `phase7_semantics` tests.
- Phase 6: `softgpu-functional` SoftGPU Functional IR (`softgpu-sfir-v1`) CPU interpreter, `softgpu run-functional`, fixtures under `fixtures/functional/`, [`docs/functional-path.md`]docs/functional-path.md, Article 7.
- Coverage harness: shared `tools/coverage.sh`, enforced line/function floors, HTML+LCOV artifacts, `llvm-tools-preview` in toolchain.
- Tests: SoftGPU-owned fake SFIR programs + forged/null HSA handle fail-closed checks (no mock framework); CLI smoke for Phase 5/6 commands.

### Changed

- `ACTIVE_PHASE``phase-7` (then Phase 6 markers in earlier notes).
- Honesty: functional CPU execution ≠ gfx1201 ISA emulation; HIP/HSA AQL still diagnostic-only for kernels.
- Release publish order includes `softgpu-functional`.

### Fixed

- Release workflow: skip `cargo publish --dry-run` for crates whose SoftGPU sibling deps are not yet on crates.io; use `cargo info --registry crates-io` so local workspace versions are not mistaken for published crates.

### Notes

- HIP/HSA AQL kernel success remains **unsupported** (diagnostic complete ≠ success).
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Fidelity claimed for Phase 6–7 path: **Functional** (disclosed SFIR on CPU).

## [0.2.0] — 2026-09-15

### Added

- Phase 3: Path C memory (legacy regions + AMD pools), signals, queue create/observe, charter stress, Article 4.
- Phase 4: AQL packet validate/trace, diagnostic complete/reject contract, capture/replay, Article 5, [`docs/aql-diagnostic-contract.md`]docs/aql-diagnostic-contract.md.
- Phase 5: `softgpu-amd-code-object` bounded ELF64 + MessagePack AMDHSA metadata (`NT_AMDGPU_METADATA`, `gfx1201` gate), `softgpu inspect-code-object`, fixtures/provenance, Article 6, [`docs/code-object.md`]docs/code-object.md.
- ROCm probes through Phase 5 (`phase3`/`phase4`/`phase5` helpers in the load-proof harness).

### Changed

- Agent `FEATURE=KERNEL_DISPATCH` means queue + AQL intercept + metadata inspect — **not** kernel execution.
- `ACTIVE_PHASE``phase-5`; CI `push` triggers narrowed to `main`/`master` (PR runs once via `pull_request`).

### Notes

- Kernel / gfx1201 ISA execution remains **unsupported** (Phase 6+).
- Diagnostic AQL completion is never claimed as kernel success.
- Fidelity claimed: **ABI** / protocol observation (see README and `docs/status.md`).

## [0.1.0] — 2026-09-14

### Added

- Phase 0 charter: fidelity vocabulary, fail-closed unsupported policy, profile schema with provenance.
- Phase 1: SoftGPU `libhsa_runtime64` (`softgpu-hsa`) with fail-closed HSA stubs, `ROCR_1` ELF version node, pinned ROCm **7.14.0** HIP load proof in CI.
- Phase 2: generation-safe handles, one virtual GPU agent (`FEATURE=0`), profile-backed identity, HIP-linked HSA discovery probe.
- Workspace crates: `softgpu` (CLI), `softgpu-core`, `softgpu-hsa`.
- CI: core (macOS/Linux), ROCm integration gate, coverage → Coveralls, code quality, dependency (`cargo-deny`) checks, tag-driven crates.io release workflow.

### Notes

- Queues, AQL, kernels, and `hipGetDeviceCount > 0` remain **unsupported** / out of scope for 0.1.0.
- Fidelity claimed: **ABI** (see README and `docs/status.md`).

[Unreleased]: https://github.com/thanos/SoftGPU/compare/v0.8.0...HEAD
[0.8.0]: https://github.com/thanos/SoftGPU/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/thanos/SoftGPU/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/thanos/SoftGPU/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/thanos/SoftGPU/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/thanos/SoftGPU/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/thanos/SoftGPU/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/thanos/SoftGPU/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/thanos/SoftGPU/releases/tag/v0.1.0