{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/pruning-vs-quantization-which-is-better","title":"Pruning vs Quantization: Which is Better?","arxiv_id":"2307.02973","date":"2023-07-06","proceeding":"NeurIPS 2023 11","authors":["Andrey Kuzmin","Markus Nagel","Mart van Baalen","Arash Behboodi","Tijmen Blankevoort"],"abstract":"Neural network pruning and quantization techniques are almost as old as neural networks themselves. However, to date only ad-hoc comparisons between the two have been published. In this paper, we set out to answer the question on which is better: neural network quantization or pruning? By answering this question, we hope to inform design decisions made on neural network hardware going forward. We provide an extensive comparison between the two techniques for compressing deep neural networks. First, we give an analytical comparison of expected quantization and pruning error for general data distributions. Then, we provide lower bounds for the per-layer pruning and quantization error in trained networks, and compare these to empirical error after optimization. Finally, we provide an extensive experimental comparison for training 8 large-scale models on 3 tasks. Our results show that in most cases quantization outperforms pruning. Only in some scenarios with very high compression ratio, pruning might be beneficial from an accuracy standpoint.","url_abs":"https://arxiv.org/abs/2307.02973v2","url_pdf":"https://arxiv.org/pdf/2307.02973v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"pruning-vs-quantization-which-is-better","repo_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause-Clear"}}],"tasks":[{"task_slug":"network-pruning","task_name":"Network Pruning"},{"task_slug":"quantization","task_name":"Quantization"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.02973","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.02973"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization","reach":{"status":"ok","spdx":"BSD-3-Clause-Clear"}}],"summary":{"ran":9,"ran_violates":1},"by_repo_kind":{"official":{"samples":10,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":10,"samples":[{"code_sha256_prefix":"dbe9711932a99fd7","entry":"generate_integr_grid_piecewise","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/quant_error_estimator.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/quant_error_estimator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"dbe9711932a99fd7"}},{"code_sha256_prefix":"9d1815904a95bcc4","entry":"get_conv_args","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/autoquant_utils.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/autoquant_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"9d1815904a95bcc4"}},{"code_sha256_prefix":"dd5c1d8c7fb510bd","entry":"mulrandn","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/optimizers_sdp.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/optimizers_sdp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"dd5c1d8c7fb510bd"}},{"code_sha256_prefix":"2a33f6009d1d948b","entry":"new_origin","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/optimizers_sdp.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/optimizers_sdp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"2a33f6009d1d948b"}},{"code_sha256_prefix":"870c07d5c47a4c01","entry":"next_bn","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/autoquant_utils.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/autoquant_utils.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"870c07d5c47a4c01"}},{"code_sha256_prefix":"f54ec5c35b42cc77","entry":"notile","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"pruning/tiling.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/pruning/tiling.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"f54ec5c35b42cc77"}},{"code_sha256_prefix":"46ec2462620c40cd","entry":"qp_obj","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"quantization/optimizers_sdp.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/quantization/optimizers_sdp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"46ec2462620c40cd"}},{"code_sha256_prefix":"876d9a307ee3b496","entry":"reparameterize","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"pruning/pruning_manager.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/pruning/pruning_manager.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"876d9a307ee3b496"}},{"code_sha256_prefix":"9d00ca655ed448eb","entry":"sparsity_level_cubic","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"pruning/pruning_utils.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/pruning/pruning_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"9d00ca655ed448eb"}},{"code_sha256_prefix":"91d771e7773df7fa","entry":"topk_func","repo":"Qualcomm-AI-research/pruning-vs-quantization","repo_kind":"official","path":"pruning/pruning_utils.py","file_url":"https://github.com/Qualcomm-AI-research/pruning-vs-quantization/blob/HEAD/pruning/pruning_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"91d771e7773df7fa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}