Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 96 additions & 61 deletions projects/hipdnn/docs/Roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ This document outlines the development roadmap for hipDNN, a comprehensive graph
- Forward LSE/softmax-stats output and a GPU forward reference ✅
- Overridable tensor shapes API (required for variable sequence lengths) ✅
- Phase 1 override-shape plumbing landed (RFC 0008) ✅
- SDPA backward pass on gfx942 ⏳
- SDPA backward pass on gfx942 ✅
- FP32 gradient accumulation ✅
- No-mask, causal and sliding-window mask modes ✅
- BF16 and FP16 at head dim 128 ✅
Expand Down Expand Up @@ -89,118 +89,153 @@ This document outlines the development roadmap for hipDNN, a comprehensive graph

**Focus:** SDPA, GEMM with MX low-precision data types, better heuristics & improved kernel provider selection

> [!NOTE]
> Q3 2026 ended on 2026-09-30. Items that were not complete moved to [Carried over from Q3 2026](#carried-over-from-q3-2026) under Q4 2026. Only completed Q3 items remain in this section.
### SDPA
- Forward GPU reference ✅
- gfx950 causal forward ✅
- **rocKE SDPA in the HIP kernel provider** — ROCm Kernel Engine SDPA kernels served through hipDNN ✅
- gfx950 dense attention engine ✅
- gfx1151 (Strix Halo) inference SDPA engine ✅

### GEMM
- **hipBLASLt plugin expanded operation & datatype support** ✅
- FP8 (OCP) dequantize + GEMM ✅
- MX GEMMs (MX FP4 and MX FP6) through the hipBLASLt provider plugin ✅
- Documented constraints surfaced for graph builders (alignment, batch, epilogues) ✅

### Heuristics
- Heuristic plugin API (RFC 0007) ✅
- Universal Heuristic Descriptor design (RFC 0019) ✅
- Benchmarked engine-ranking cache, in-process and persisted to disk ✅

### Normalization
- Expanded LayerNorm & RMSNorm kernel coverage in the HIP kernel provider ✅

### Support matrix
- Whole-graph bundled integration tests ✅
- Default authoring format for new graph-verification tests ✅
- Enabled as the default execution path in CI ✅

## Q4 2026 & beyond (Current milestone)
### Universal descriptors
- **Data-driven kernel ingestion** via universal kernel, match, heuristic and engine descriptors (RFCs 0017–0020) ✅
- Generic kernel ingestor with build-time kernel packaging ✅

**Focus:** Broader operation, layout & datatype coverage; deeper framework integrations; and the graph-execution, tensor and packaging work that moves hipDNN from tech preview toward general availability. We still value community input on what you would like to see prioritized!
### cuDNN compatibility
- **cuDNN v9 frontend compatibility shim** behind `HIPDNN_ENABLE_CUDNN_COMPATIBILITY` ✅
- Shim core node coverage landed ✅
- Node and enum coverage expansion ✅

### Carried over from Q3 2026
### Core
- Runtime pass-by-value scalars (RFC 0016) ✅

> [!NOTE]
> These items were planned for Q3 2026. They were not complete when the quarter ended, so they moved here. Markers show the state at the time of the move.
## Q4 2026 (Current milestone)
Comment thread
dpeabody-amd marked this conversation as resolved.
Resolved

#### SDPA
**Focus:** Broad SDPA coverage, kernel-ingestor maturity, deeper integration testing, and expanded benchmarking.

### SDPA
- **Broad SDPA forward and backward coverage** ⏳
- rocKE integration ⏳
- Ahead-of-time (AOT) compiled FlyDSL kernels for broad coverage ⏳
- Wider SDPA coverage: FP16 and FP8 forward, head dims up to 256, broader GQA configurations ⏳
- Production-quality backward pass ⏳ (the forward GPU reference landed in Q2)
- gfx950 backward and gfx950 causal forward
- **rocKE SDPA plugin for hipDNN** — ROCm Kernel Engine SDPA provider plugin
- ROCm Kernel Engine (rocKE) in-progress, including a JIT SDPA path ⏳
- FP16 forward and broader GQA configurations ✅
- FP8 forward path wired through the SDPA engine ✅
- Head dim 256 on gfx1151 ✅ (CDNA head dim 256 still in progress)
- Production-quality backward pass, including gfx950 ⏳
- Ragged tensor support for variable sequence lengths (RFC 0014) ⏳
- API, descriptor lowering and GPU reference ✅

#### GEMM
- **hipBLASLt plugin expanded operation & datatype support** ⏳
- FP8 (OCP) dequantize + GEMM path landed behind `HIPBLASLTPROVIDER_ENABLE_MX_GEMM` (off by default) ✅
- MX GEMMs through the hipBLASLt provider plugin ⏳
- Documented constraints surfaced for graph builders (alignment, batch, epilogues)
### Kernel ingestor
- Performance improvements ✅
- Execution plan save/load ✅
- Expression handling improvements ⏳
- Runtime improvements ⏳

#### MOE (Mixture of Experts)
- MOE frontend and backend POC (limited coverage) ⏳
- Frontend API, schema & backend descriptors landed ✅
- Initial provider kernel dispatch ⏳
### MIOpen provider
- Close the operation-coverage gap in the hipDNN MIOpen provider ⏳

#### Heuristics
- Plugin architecture ⏳
- Phase 1 heuristic plugin: providing heuristic engine selection for limited architectures or team may pivot to support heuristics on rocKE
### GEMM
- **MX GEMM in the hipBLASLt provider** ⏳
- gfx1250 enablement ⏳
- Enabled by default ⏳

#### Normalization
- Expanded LayerNorm & RMSNorm kernel coverage in the HIP kernel provider ⏳
- Expanded layout & datatype coverage for batchnorm ⏳
### Convolution
- Expanded convolution integration from rocKE ⏳

#### Support matrix
- Matrix published as a regular CI artifact ⏳
### Integration testing
- Per-op review and enhancements ⏳
- "Gauntlet" mode for deeply proving integrations

#### Testing
- **Op coverage: detailed per-op integration tests**, in order Attention, then Convolution, then Normalization
- A test plan per tier (quick, standard, comprehensive, full) for each op
- Pairwise feature coverage per op, so the smallest set flags obvious breaks across providers
- Bundles that execute the plans
- Golden-reference baseline per op
### Benchmarking & performance testing
- Improved op support in [ROCm/dnn-benchmarking](https://github.com/ROCm/dnn-benchmarking), including SDPA backward and other backward ops
- Graph metadata for improved tracking and filtering of the benchmark corpus
- Expanded set of benchmarked graphs

#### Universal descriptors
- Data-driven kernel ingestion via universal kernel, match, dispatch, engine and heuristic descriptors (RFC 0017) ⏳
### cuDNN compatibility
- Continued cuDNN v9 frontend compatibility, including a user guide and samples ⏳
Comment thread
dpeabody-amd marked this conversation as resolved.
Resolved
- cuDNN v8 frontend compatibility ⏳

#### Benchmarking & performance testing
- Benchmarking CI running on AMD GPUs in [ROCm/dnn-benchmarking](https://github.com/ROCm/dnn-benchmarking) ⏳
### Heuristics
- Learned engine and kernel ranking via Universal Heuristic Descriptors, with shipped trained models ⏳
- Heuristic generation pipeline for custom engines, letting custom engines compete with built-in engines in selection ⏳

#### PyTorch
- **PyTorch integration for opt-in hipDNN backend** ⏳
### MOE (Mixture of Experts)
- MOE frontend and backend POC (limited coverage) ⏳
- Frontend API, schema & backend descriptors landed ✅
- Initial provider kernel dispatch ⏳

#### cuDNN compatibility
- **cuDNN v9 frontend compatibility shim** behind `HIPDNN_ENABLE_CUDNN_COMPATIBILITY` ⏳
- Shim core node coverage landed ✅
- Node and enum coverage expansion in progress ⏳
### Support matrix
- Matrix published as a regular CI artifact ⏳

### PyTorch
- **PyTorch integration for opt-in hipDNN backend** ⏳
- `hipdnn_torch` injection layer ✅

#### MIOpen integration
- **MIOpen ↔ hipDNN shim** enabling MIOpen to route through hipDNN, behind `MIOPEN_ENABLE_HIPDNN_WRAPPER` (off by default) ⏳
### MIOpen integration
- **Opt-in runtime-feature flag to route MIOpen → hipDNN for convolutions** ⏳
- MIOpen superbuild integration ✅
- Convolution entry points forwarded to hipDNN behind `MIOPEN_ENABLE_HIPDNN_WRAPPER` ✅

#### Core
- Add **hipRTC & caching support** to plugin SDK (Empowers plugin developers, and standardizes caching of artifacts)
- Kernel engine tagging & filtering
- Numeric notes for filtering
- Client API to enable filtering
### Core
- Python API wrappers (general availability beyond POC) ⏳
- Plugin SDK utility expansion to further streamline new-provider development
- Engine discovery, auto-tuning and DLPack interoperability ✅
- Frontend installable as a wheel ✅
- Plugin SDK utility expansion to further streamline new-provider development ⏳

### Testing
- Unified gate for a new integration or kernel source, built on the per-op coverage, giving high confidence in its quality
- Fuzzy mode for release testing (Q1 2027): exploratory runs within an affordable pre-release budget to find uncovered cases, grow the set, and show where coverage stands
## Beyond Q4 2026
Comment thread
dpeabody-amd marked this conversation as resolved.
Resolved

**Focus:** Broader operation, layout & datatype coverage; deeper framework integrations; and the graph-execution, tensor and packaging work that moves hipDNN from tech preview toward general availability. We still value community input on what you would like to see prioritized!

### Increase operational support coverage
- Additional high performance static fusion support for priority use cases
- Additional JIT graph support for operations
- Improve general operational support for operations:
- Additional layout support
- Additional datatype support
- Expanded layout & datatype coverage for batchnorm

### Benchmarking & performance testing
- Bindings installable as wheels ⏳
- Benchmarking CI running on AMD GPUs in [ROCm/dnn-benchmarking](https://github.com/ROCm/dnn-benchmarking)
- App installable as wheel
- Automated benchmark runs weekly or daily off `develop`, with release-by-release regression tracking (Q1 2027)

### More framework integrations
- vLLM backend
- Deeper PyTorch integration, using hipDNN for attention
- Currently discussing timelines for various framework integrations. Roadmap will be updated as they are defined.

### Normalization
- **Distributed normalization support**

### MIOpen integration
- Harden the MIOpen → hipDNN convolution reroute until it can be the default-on path

### Core
- Add **hipRTC & caching support** to plugin SDK (Empowers plugin developers, and standardizes caching of artifacts)
- Kernel engine tagging & filtering
- Numeric notes for filtering
- Client API to enable filtering
- Fallback (graph splitting) engine
- Expanded performance and validation suites for hipDNN full install (using real user workloads and benchmarks to drive testing)
- AOT graph compilation without devices present (Pre-compile graph support)
- **hipGraph support**
- Support dynamic linking to backend (enables forwards and backwards compatible client libraries) ⏳
- Support dynamic linking to backend (enables forwards and backwards compatible client libraries)
- Save/Load Execution plans (binary serialize/deserialize of graph + execution plan landed in Q2; full save/load across dynamic linking tracked here)
- Non-standard tensor support (non-packed, vectorized)

Expand Down
Loading