File size: 1,213 Bytes
585c960 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # Performance notes
Tested: Windows 11, AMD RX 6900 XT 16GB, Vulkan 1.4, 1024x512, 20 steps.
| Stage | Before | After |
| --- | ---: | ---: |
| VAE decode | 9.0 s | 1.35 s (`--vae-tiling --vae-tile-size 512x512`) |
| DA-2 | 8.7 s (CPU fallback) | 3.05 s (Vulkan f32) |
| t2s total | ~75 s | 56.7 s |
| i2s total | — | 61.5 s |
## What helped
- VAE tiling: the untiled decode is memory-bound and leaves the GPU idle.
- ncnn `-DNCNN_VULKAN` + `net.set_vulkan_device(0)`: without both, ncnn
silently runs DA-2 on CPU.
- f32 Vulkan for DA-2 is required: fp16 gives 2.5 s but max error 2.74 and
cosine 0.972, which is not acceptable for depth.
- FLUX sampling already reaches ~100% GPU 3D utilization at 1024x512.
## What did not help
- Forcing `--flash-attn on`: the probe reports it slower than the normal path
on this RDNA2 GPU (11.68 s vs 4.05 s for one step).
- fp16 VAE: decode remained ~9.1 s untiled.
- `torch.amax` inside the DA-2 graph: broke the ncnn export; normalization is
done by the caller instead.
## Remaining headroom
- 1600x800 needs a separate DA-2 trace or resampling.
- T5 prompt encoding is ~3.4 s and not cached.
- Optional `use_sharp` / `inpaint_bg` branches are not wired.
|