Hybrid quantization follow-ups
I maintainer di solito rispondono entro 2 giorni
@negvet ci sta già lavorando.
Dal 30/6/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Tracking follow-ups from PR #2817. Detailed implementation notes are already in code comments / xfails.
Recipe / validation
- Validate per-GEMM scaling-mode compatibility for hybrid qfactories.
- See
HybridQuantizer._get_compatible_recipe()intransformer_engine/pytorch/tensor/hybrid_tensor.py.
- See
- Support delayed-scaling requests inside
HybridQuantizer.- See
HybridQuantizer.__init__()in `transformer_engine/pytorch/tensor/hybrid_tensor.py
- See
- Support producing both directional representations at the fused normalization boundary (transformer_engine/pytorch/ops/basic/layer_norm.py)
Performance / kernels
- Fused kernels: one read -> two writes.
- Introduce a policy for when to materialize a tensor for
columnwise_source="rowwise_dequantized". - Support module-/role-specific CustomRecipe quantization alignment. The current recipe-global quantization_alignment must use the maximum requirement across all factory outputs, which can overpad lower-alignment MXFP8/FP8 layers in mixed-format models. Derive alignment from canonical cached module quantizers and propagate it to the corresponding Fp8Padding without speculative qfactory calls.
- Support HybridQuantizer with standard Userbuffers.
- Add native columnwise-only per-tensor FP8 quantization for Hopper, covering both CurrentScaling and DelayedScaling. The legacy per-tensor cast-transpose kernel currently requires both rowwise and columnwise output buffers.
TP/SP
- Add native
HybridQuantizerdispatch togather_along_first_dim. - Preserve existing SP amax-reduction semantics and cover them in distributed tests.
FSDP2
- Optimize hybrid FSDP2 communication buffers.
- See
HybridQuantizedTensor.fsdp_pre_all_gather()intransformer_engine/pytorch/tensor/hybrid_tensor.py.
- See
- Fix
HybridFloat8BlockScalingFSDP2 xfail.- See
_HYBRID_FLOAT8_BLOCK_FSDP2_XFAIL_REASONintests/pytorch/distributed/fsdp2_tests/conftest.py.
- See
- Add NVFP4 hybrid sub-storage FSDP2 hooks.
- See
TestHybridFsdpPreAllGatherProtocol.test_nvfp4_sub_storage_raises_on_pre_all_gather()intests/pytorch/test_hybrid_quantization.py. - Non-hybrid FSDP alignment: reuse fsdp extract buffers and fsdp_assign_gather for the current base tensor class (non-hybrid)
- See
- Support Hybrid sub-storages that fall back to a high-precision tensor for an unquantizable local shard (TransformerEngine/transformer_engine/pytorch/tensor/hybrid_tensor.py).
GEMM / quantization
- Support
HybridQuantizer/IdentityQuantizeras GEMM output quantizers.- See
_reject_unsupported_output_quantizer()intransformer_engine/pytorch/cpp_extensions/gemm.py.
- See
GroupedLinear / grouped storage
- Support
IdentityQuantizerandHybridQuantizerwithGroupedLinear(single_grouped_weight=True).
Distributed optimizer / Megatron
- Support per-block hybrid sub-quantizers in
quantize_master_weights. - Hybrid distributed optimizer: partial-master support with columnwise_source="original". The current one-payload distributed-optimizer path cannot preserve both independently quantized Hybrid directions when each rank owns only a partial master weight. A safety guard rejects this configuration unless full-master data or an FSDP Hybrid shard containing both directions is provided. Unblock by adding a two-payload sharding/all-gather contract for Hybrid rowwise and columnwise storage, including their scale/amax metadata, then relax _validate_hybrid_partial_master_policy.
- Hybrid distributed optimizer with columnwise_source="rowwise_dequantized": reconstruct the column only after the rowwise update/all-gather.
- Complete Megatron-LM
quantized_model_init + --fp{4,8}-param-gather + dist opt.- See PR #2817 integration notes.
- Complete Megatron-FSDP +
--fp{4,8}-param-gather.- See PR #2817 integration notes.
- Complete Torch FSDP2 +
--fp{4,8}-param-gather.- See PR #2817 integration notes and
tests/pytorch/distributed/fsdp2_tests/.
- See PR #2817 integration notes and
Activation recompute
- Investigate vanilla
torch.utils.checkpoint(use_reentrant=False)with TE weight-workspace cache.- See xfails in
TestHybridActivationRecomputeintests/pytorch/test_hybrid_quantization.py. te.checkpointpath is already covered and works.
- See xfails in
Validation
- Convergence validation of base non-hybrid recipes.
- Lingua principale
- Python
- Stelle
- 3.6k
- Fork
- 851
- Merge medio
- 4g 20h
- PR unite (30g)
- 58
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/TransformerEngine
-
[Bug] group_quantize_fp8_blockwise: mbarrier invalidated before other threads finish waiting on itAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NVIDIA/TransformerEngine#3647 ·
I maintainer di solito rispondono entro 2 giorni
-
[PyTorch] fp8_cs_quantize fake implementation returns a vector inverse scale instead of a scalarForse già presa @sanjana658 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NVIDIA/TransformerEngine#3636 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
[Bug] Backend selection picks FA3 for training with head_dim_qk=192 / v_head_dim=128, but FA3 backward cannot run itForse di nuovo libera @modelpath-dev l’ha presa 39 giorni fa e non c’è nessuna pull request aperta. Apertaattention
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
NVIDIA/TransformerEngine#3481 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Increase MAX_TENSOR_NUMApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
NVIDIA/TransformerEngine#2189 · 7 commenti · 5 reazioni ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
NVIDIA/TransformerEngine#3668 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di NVIDIA/TransformerEngine
Issue simili
-
bug difficulty:2 good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
MakazhanAlpamys/Soup#1865 ·
I maintainer di solito rispondono entro 1 giorno
-
area: agents area: docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptForse già presa @adityasinha-ghub l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pylint-dev/pylint#11656 ·
I maintainer di solito rispondono entro 1 giorno
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
randomparity/kdive#3203 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
get() for StrEnumForse già presa @FeJo5952 l’ha presa oggi. Apertagood first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
collective/icalendar#1921 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno