Skip to content

Known issues

AlexHe edited this page Aug 26, 2026 · 4 revisions

Known issues (HIP / gfx1151)

Gaps that do not block default ./h3 T2VA on Strix Halo. Production DiT uses BF16 activations and INT8 weights (hipBLAS).

In-tree copy: docs/KNOWN_ISSUES.md.

KI-001: CPU Euler sampler

Status: intentional until a GPU Euler path is proven.

h3_gpu_is_m5() returns 0, so DiT uses the host Euler sampler. Metal on M5 defaults to the GPU-state sampler (H3_GPU_SAMPLER=1). Default CLI works; timing and exact step numerics differ from M5 Metal.

KI-002: Nearest-neighbor host scale

Status: HIP host fallback (no Accelerate / vImage).

Reference and preview resizes use nearest-neighbor in h3_host.c. Same-size canvases (no scale) are unaffected. --ref-image / first-last when the still is scaled: slightly sharper/blockier than Metal.

KI-003: MLX fixture numerical parity

Status: pending without misc/fixtures/.

make parity / make real-parity skip. HIP correctness is gated by CPU-oracle kernel tests, make test, make hip-functional, and end-to-end smokes — not bit-exact Metal dumps.

KI-004: Apple TensorOps kernels

Status: deferred (same product decision as the CUDA sibling).

M5 NAX / TensorOps shaders are not the HIP path. HIP uses its own INT8 tiles (sdot4) and fused MLP kernels.

Backlog

ID Topic Status
P Remaining E2E vs Metal fox-s2 is no longer GPU-bound; wall is mostly NVMe weight I/O. See Performance.
V --ref-video-audio VIDEO AUDIO E2E clip Same kernels as --ref-video; not separately showcased

Profiling

--profile sets H3_PROFILE=1 and prints Metal-compatible phase lines plus an op-classes breakdown (linear / sdpa / conv / other). On HIP, wait / root-gpu is stream-sync only; use op-classes for GPU time.

rocprofv3 --hip-trace --kernel-trace --stats -o /tmp/h3-prof -- \
  ./h3 --profile -d "$MODEL" -p "..." --width 512 --height 512 \
  --frames 22 --steps 2 --layers 35 --reuse 1 -o /tmp/prof.mp4

Clone this wiki locally