Repository navigation
docs(pixart): record why FP8 is not shipped - #2111
Merged
zhenshanx-nv merged 1 commit intoNov 9, 2026
Merged
Conversation
Add a README for the PixArt family with the FP8 quantization study of the DiT linears on TensorRT 11.4 and 11.1 (B200, B300): feed-forward and self-attention q/k/v FP8 give 1.05x to 1.15x on the DiT call at batch 1 but 3.5x to 6x the fp16 denoiser error and LPIPS 0.07 to 0.20 against 0.016 to 0.04; cross-attention q/k/v FP8 stays at the fp16 floor with no speedup. FP8 is not shipped; no code change. Signed-off-by: Zhenshan Xie <zhenshanx@nvidia.com>
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 24 minutes. View limit details
|
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
families/pixartbuilds PixArt-Sigma XL (PixArt-alpha/PixArt-Sigma-XL-2-1024-MS) as T5 encoder, DiT and VAE decoder engines (fp16 at 512 x 512 and 1024 x 1024, fp32 with tensor parallel size 4) and has no quantized build. No FP8 or NVFP4 checkpoint or official quantization config exists for PixArt-Sigma, so FP8 self-quantization of the DiT linears (per-tensor FP8 weights at build time, static activation scales calibrated on the PyTorch model, fp16 Dequantize) was built and measured on TensorRT 11.4 and 11.1, B200 and B300. FP8 does not pay for this family: the variants that give a speedup (feed-forward and self-attention q/k/v) give 1.05x to 1.15x on the DiT call at batch 1, but their denoiser error is 3.5x to 6x the fp16 floor and LPIPS against the fp32 reference grows from 0.016 to 0.04 to 0.07 to 0.20. The only variant at the fp16 floor (cross-attention q/k/v) gives 1.00x to 1.01x. This change adds a README for the family that records the study, like the yolov10 (#2093), bart (#2004), timesfm (#2005) and marian (#2035) studies, so that it does not have to be repeated. The FP8 code is not part of this change. NVFP4 was not tried.Exit Criteria
Implementation
families/pixart/README.md(new): a short family description and the section "FP8 quantization study (not shipped)": summary and decision, recipe, method, results (speed, batch 2, TensorRT 11.1, quality per group, time split), why no gain, NVFP4, what was not tried, when to revisit.Recipe that was measured (code kept out of the repository):
ff.net.0.projandff.net.2, self-attentionattn1.to_q/k/v, cross-attentionattn2.to_q/k/v. Embeddings, adaptive layer norm, attention matmuls,attn1.to_out.0,norm_out,proj_out, T5 and the VAE stay unquantized.Why no gain: the error is FP8 rounding noise amplified by the 28 blocks and guidance (clipping, per-block exclusion of blocks 0 to 3 did not bring it near the floor); the insensitive cross-attention linears are a small share of the time; half of the DiT call is not GEMM time.
Change categories
Validation
Commands and Results
Documentation only.
python3 -m tools.model_ci validatepytest tools/tests/test_architecture.py tools/tests/test_public_source_hygiene.py(CPU)git diff --checkpython3 tools/pr_metadata.py validateon this descriptionThe numbers in the README come from the local study and are not re-run by this change (DiT call at batch 1, x is fp16 time over FP8 time, FF = feed-forward):
Quality (TensorRT 11.1 study, fp32 PyTorch reference, 20 steps, guidance 4.5): step error 0.0089 (fp16) vs 0.051 (FF) and 0.070 (all linears) at 512; LPIPS 0.016 (fp16) vs 0.081 (FF) at 512 and 0.041 vs 0.177 at 1024. No non-finite output in any FP8 engine.
Hardware, Environment, and Revisions
upstream/mainat5801406c.PixArt-alpha/PixArt-Sigma-XL-2-1024-MSate102b3591cc82e97071b8b4cb90d834d0c487207(manifest revision);PixArt-alpha/PixArt-Sigma-XL-2-512-MSfor the 512 quality runs.Not Run / Remaining Gaps
Contributor Self-Review
Notes For Future Readers
Risk level
Risk rationale: documentation only; one README added, no code, build, bundle or test change.
🤖 Generated with Claude Code