[Coverage] Direct unit-test suites for five untested core modules (conversion, core_utils, tensor_quantizer, model_calib, export/postprocess) — plus bugs found along the way
I maintainer di solito rispondono entro 2 giorni
@kevalmorabia97 ci sta già lavorando.
Dal 21/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
While auditing test coverage, we found that several load-bearing modules have no direct unit-test file — they are exercised only incidentally through higher-level flows. We wrote hermetic, CPU-only unit suites (per CONTRIBUTING's tests/unit rules: fast, no network, no GPU) for five of them, adversarially reviewed and mutation-checked each suite, and will attach one PR per module so each is reviewable in isolation:
| Module | Suite | Tests |
|---|---|---|
torch/quantization/conversion.py |
test_conversion.py | 63 |
torch/quantization/utils/core_utils.py |
test_core_utils.py | 128 |
torch/quantization/nn/modules/tensor_quantizer.py |
test_tensor_quantizer.py | 90 (incl. hand-computed INT8/FP8/block fake-quant values) |
torch/quantization/model_calib.py |
test_model_calib.py | 42 |
torch/export/postprocess.py |
test_postprocess.py | 74 (TP/PP split layouts, padding math) |
397 tests, ~4.2k lines, total runtime ~5s. Each suite was verified to kill seeded mutations of its target (wrong scale direction, flipped split axes, broken running-max, etc.), so this is regression-detection capacity, not line-count.
Bugs found while writing these (documented in-test with NOTE: documents current behavior comments; happy to file/fix separately as preferred)
_normalize_fused_experts_quantizer_namecollides withSequentialQuantizerchild names (introduced in #1340: the singularweight_quantizer.<N>pattern matches sequential children). Two consequences, both reproduced: (a) applying the same list-of-configs twice viaset_quantizer_attributes_fullnestsSequentialQuantizers inside sub-slots (non-idempotent, corrupt state); (b)set_quantizer_attributes_partialwith a list and a*weight_quantizerwildcard now raisesValueErrormid-iteration for targets that are already sequential — a regression against its own docstring. Suggested fix: skip normalization when the matched quantizer's parent is aSequentialQuantizer.awq()silently no-ops on an unknown algorithm string (public__all__API; only themtq.quantizeconfig layer validates the literal). One-lineraise ValueErrorin an else would match the module's fail-fast style.TensorQuantizer.extra_reprdead code: the disabled branch builds a detailed string, then returns the literal"disabled", discarding it.update_lm_head_quantizationwarns "Enable lm_head quantization" even when quantizers are already disabled, and its sole call site (model_config_export.py:323) appears to passinference_pipeline_parallelinto theinference_tensor_parallelparameter.- Minor exception-safety inconsistencies:
replace_function/calibrate_with_adapters/enable_fake_quantyield without try/finally (unlikeexport_torch_modeet al.), so an exception mid-context leaks the patched state.
The behavior-documenting tests are written to fail-and-force-update when these are fixed.
PRs
Will be linked below, one per module, each self-contained.
- Lingua principale
- Python
- Stelle
- 5.3k
- Fork
- 745
- Merge medio
- 4g 2h
- PR unite (30g)
- 160
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/Model-Optimizer
-
[Bug] modelopt-mcp: all launcher subprocesses hang when the server runs as a stdio MCP server — missing stdin=DEVNULLForse già presa @ChenhanYu l’ha presa 14 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
NVIDIA/Model-Optimizer#2551 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Puzzletron Progress 6/8 (calculating one block scores) takes 10 to 20 times more than in tutorialForse di nuovo libera @tejasng053 l’ha presa 20 giorni fa e non c’è nessuna pull request aperta. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
NVIDIA/Model-Optimizer#1667 ·
I maintainer di solito rispondono entro 2 giorni
-
fp4_kernel_hopper.py uses tl.make_block_ptr, which is removed in Triton main (breaks NVFP4 fake quant)Forse già presa @kinjalpatel27 l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 72/100
NVIDIA/Model-Optimizer#2810 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
test_cast_fp4_impl_gpu_mem is flaky on Jetson Thor: mem_get_info reports system-wide memory on integrated GPUsForse già presa @LinCanNerd l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
NVIDIA/Model-Optimizer#2706 ·
I maintainer di solito rispondono entro 2 giorni
-
test_cuda_pack_reconstruction_matches_pytorch_at_scale[iq1_m] fails on Jetson Thor: exact ties exceed the blocks // 1000 boundForse già presa @LinCanNerd l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
NVIDIA/Model-Optimizer#2705 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di NVIDIA/Model-Optimizer
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
noontide-co/mainbranch#1211 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersApertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
dbt-labs/dbt#16784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug settings ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DewaldOosthuizen/py-tray-command-launcher#162 ·
I maintainer di solito rispondono entro 1 giorno
-
run_all sleeps after the final job despite documenting delays between jobsForse già presa @Gambit-Checkmate l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100