Repository navigation
RTX 4070 Ti SUPER + MSI B650M + Ryzen 7 9700X (Win11): 1.69x BF16 measured, 2.0-2.2x end-to-end on a real 3D-generation pipeline #143
Replies: 1 comment
|
@CYXyouzhi Thank you for this one — it's recorded in three places now: the compat matrix 1. Your "BF16 > FP16 on Ada" observation is now anchored to the per-precision forensics. Across the three independent 2684 datasets (#69 both reporters + #80), TF32 is the only directly measured clamp (ships ×0.5, releases to full rate); the FP16/BF16·FP32acc cuBLAS rows are library routing — they track ≡ the FP8 row ÷ 2 across all datasets, which is why your FP16 (1.59×) trailed BF16 (1.69×). BF16-as-headline on Ada is the right call and is now the documented convention (theoretical-uplift §5/§7). 2. Your end-to-end > microbenchmark case closes a two-sided question. A 3060/X99 report in D#131 independently derived the lower bound shape (end-to-end 1.43× < tensor 1.79×, via an Amdahl inversion putting ~68% of sampling time in matmul/attention). Your case is the upper bound (2.0–2.2× > 1.69×, idle-gap + dependency-chain mechanisms). The pair is now a documented note — the end-to-end/microbenchmark ratio is bidirectional, and Amdahl share decides the direction. Your two-mechanism explanation matched ours, so we adopted it as-is. 3. The AV kernel-filter note went straight to work. It's the third same-shape observation for #118 ( One sharpening your S3/S0ix + FP32 flat at 27.4 was the control we'd expect — it's the sanity check that separates "rate limiter removed" from "clocks bumped", and your report already treated it that way. Good box, good writeup. |
Uh oh!
There was an error while loading. Please reload this page.
RTX 4070 Ti SUPER + MSI B650M + Ryzen 7 9700X (Win11): 1.69× BF16 measured, 2.0–2.2× end-to-end on a real 3D-generation pipeline
Status: working, reproducible, no VBIOS flash. Unlock survives reboots-from-UEFI; every cold boot through the U-disk transaction keeps it. Power settled at the stock 285 W limit with no thermal ceiling hit.
Posting because the compatibility matrix has thin Ada 4070-class coverage and because synthetic microbenchmarks undersell what this does to a real multi-stage generative workload — the pipeline I run got 2.0–2.2× wall-clock, not 1.7×.
TL;DR
The interesting part: the pipeline gain exceeds the BF16 matmul gain. Reason below.
Hardware
pcie.link.gen.max 4,width.max 16)Ada AD103,
major.minor = 8.9. No GSP registry prerequisite needed (that's Turing-only).Unlock procedure — what actually mattered
The happy path is
make-usbroot.ps1→ boot from the FAT32 USB → let it run → it hands off to Windows automatically. The friction was all in preconditions:Settings → Security → Secure Boot. Forgetting it gives a boot loop with no useful error.{fwbootmgr}. F12 one-shot boot menu is the reliable path on this board.ssdiag. If you getMAP_PHYS win32 error 5, the tool now prints a pre-flight gate list (HVCI runtime / kernel AV filter driver / driver load refused). Suspending AV protection is not enough — its kernel hook stays loaded. Desktop machine here had no AV conflict, but this was the single most-reported failure mode in the issues.ssdiag --reapplyrewrites SS0/SS1 without the whole U-disk dance — worth trying before a full re-run.Certification path that worked: UEFI pre-driver run → automatic handoff to Windows → verify with
nvidia-smi(no Code 43, no TDR) → benchmark. No black screens, no resets, single attempt.Synthetic benchmarks
Measured with
torch.matmulon 8192×8192 tensors, warm-up ×3, 20 iterations averaged,torch.cuda.synchronize()around the loop. RTX 4070 Ti SUPER stock spec is ~44.1 TFLOPS FP32 and ~88 TFLOPS dense BF16/FP16 tensor.Two notes for anyone reproducing:
Real-world workload — and why the gain is >2×
This box runs a local image → 3D game-asset pipeline in ComfyUI (Trellis2 geometry backbone → UltraShape refinement → pymeshlab/xatlas remesh+unwrap → UltraTex 4K PBR baking). These are all diffusion/transformer inference at BF16.
Two mechanisms explain the >1.7× numbers:
Caveat worth stating plainly: I only measured BF16 inference. FP8 paths (some nodes here can use them) report ~2.0× on other Ada cards; I didn't isolate FP8 because the pipeline doesn't use it end-to-end.
Thermals & power
This is the part that surprised me. Doubling tensor throughput at a fixed 285 W power ceiling means the card got roughly 2× more work done for the same energy — i.e. the unlock is not "overclocking harder," it's removing a rate limiter while power draw stays pinned at the same wall. Temps rose by only a few degrees because the limit is wattage, not clocks.
If your card is thermally limited rather than power limited (small dual-fan AIB models), expect the gain to compress. On a 285 W-capped triple-slot model it doesn't.
Gotchas / small things that cost time
ssdiagneeds an elevated prompt. A non-admin shell givesOpenSCManager failed: win32 5. Easy to misread as "unlock broke."nvidia-smiclocks look normal either way; only the tensor throughput actually changes.Verification one-liner
Thanks to the author — this turned a 55-minute iteration loop into 25 minutes, which is the difference between "prototype twice a day" and "prototype six times a day" for anyone doing local generative 3D work.
All reactions