Commit Graph
10 Commits
Author SHA1 Message Date
Woutermans 7c60d53cd0 Merge pull request #25 from woutermans/rdna4-fp8-byte-activations
Speed up preset M on RDNA4 native FP8 (byte activations, cheaper accuracy set)
2026-10-06 19:27:30 +02:00
Woutermans 8537c3132f Merge pull request #23 from dhaern/fix/launcher-config-and-packaging
fix(launcher): harden config parsing and release packaging
2026-10-06 19:20:35 +02:00
Woutermans 17012ea588 Merge pull request #21 from dhaern/fix/native-kernel-hardening
fix(native-kernels): harden kernel loading in the bridge and ZLUDA patch
2026-10-06 19:20:31 +02:00
Woutermans 9f96c3e57e Merge pull request #20 from dhaern/fix/ngx-feature-cleanup
fix(shim): release NGX state when feature creation or recreation fails
2026-10-06 19:20:27 +02:00
Woutermans 1db8df252f Merge pull request #22 from dhaern/fix/shim-log-path-and-ranges
fix(shim): fix log path overflow, negative numeric settings and RGB9E5 range
2026-10-06 19:20:23 +02:00
Woutermans 3381127259 Merge pull request #24 from Tk-Glitch/R8G8B8A8_UNORM_motion
Add R8G8B8A8_UNORM motion vector format
2026-10-06 19:20:20 +02:00
woutermans cf741c2e3d docs: RDNA4 fast and accuracy sets, FP8 and 16-bit, before and after 2026-10-06 15:18:11 +02:00
woutermans 11c84193e6 docs: compare the RDNA4 FP8 set with the 16-bit path
The 2x figure is against the previous native-FP8 layers. With NativeFp8 off
the RX 9070 XT was already at 3.37 ms for 1280x720 -> 3840x2160; the FP8 set
is 2.88 ms there.
2026-10-06 15:03:00 +02:00
woutermans ffa686e079 Narrow the RDNA4 accuracy set's cost for preset M
The FP8 Swin layers encode with a clamp to +-448 (NaN-propagating packed
minimum/maximum) followed by v_cvt_pk_fp8_f32, in both the fast and the
accuracy build: equal to half_to_e4m3 for every non-NaN input, NaN encodes
as 0xff. The accuracy build rounds each k32 step with v_fma_mix (K32_MIX).
On gfx12 the accuracy builds of M's post and downsample kernels are wave64
with denormal handling kept.

RX 9070 XT, 1280x720 -> 3840x2160, D3D12 harness: the accuracy set goes
from 3.54 ms to 3.05 ms per evaluation (3.01 -> 2.59 ms under load). Its
Swin layers still equal swin_model.py on sampled blocks and its image is
byte-identical to the previous accuracy set over 8 temporal frames.
2026-10-06 15:03:00 +02:00
woutermans ba77946a4a Speed up preset M on RDNA4: e4m3 byte activations in the FP8 Swin layers
On the gfx12 native-FP8 path the Swin layers kept GEMM activations as f16
in LDS and encoded them to e4m3 again at every operand load. They are now
encoded once where they are produced, with v_cvt_pk_fp8_f32, and stored as
bytes (SWIN_A8); the patch merge reads the stored output codes. The M
downsample kernels are built as wave64 on gfx12.

RX 9070 XT, 1280x720 -> 3840x2160, D3D12 harness, DLSS 310.7: whole
evaluation 5.9 ms -> 2.8 ms of GPU time with the GPU otherwise idle, 2.4 ms
at 80-98% GPU utilisation. Harness output is byte-identical to the previous
kernels; the accuracy build matches swin_model.py on sampled blocks.

Builds without D4R_FP8_WMMA (RDNA3, and RDNA4 with NativeFp8 off) compile to
the same instructions as before.
2026-10-06 15:02:51 +02:00