{"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/quamba-a-post-training-quantization-recipe","title":"Quamba: A Post-Training Quantization Recipe for Selective State Space Models","arxiv_id":"2410.13229","date":"2024-10-17","proceeding":null,"authors":["Hung-Yueh Chiang","Chi-Chih Chang","Natalia Frumkin","Kai-Chiang Wu","Diana Marculescu"],"abstract":"State Space Models (SSMs) have emerged as an appealing alternative to Transformers for large language models, achieving state-of-the-art accuracy with constant memory complexity which allows for holding longer context lengths than attention-based networks. The superior computational efficiency of SSMs in long sequence modeling positions them favorably over Transformers in many scenarios. However, improving the efficiency of SSMs on request-intensive cloud-serving and resource-limited edge applications is still a formidable task. SSM quantization is a possible solution to this problem, making SSMs more suitable for wide deployment, while still maintaining their accuracy. Quantization is a common technique to reduce the model size and to utilize the low bit-width acceleration features on modern computing units, yet existing quantization techniques are poorly suited for SSMs. Most notably, SSMs have highly sensitive feature maps within the selective scan mechanism (i.e., linear recurrence) and massive outliers in the output activations which are not present in the output of token-mixing in the self-attention modules. To address this issue, we propose a static 8-bit per-tensor SSM quantization method which suppresses the maximum values of the input activations to the selective SSM for finer quantization precision and quantizes the output activations in an outlier-free space with Hadamard transform. Our 8-bit weight-activation quantized Mamba 2.8B SSM benefits from hardware acceleration and achieves a 1.72x lower generation latency on an Nvidia Orin Nano 8G, with only a 0.9% drop in average accuracy on zero-shot tasks. The experiments demonstrate the effectiveness and practical applicability of our approach for deploying SSM-based models of all sizes on both cloud and edge platforms.","url_abs":"https://arxiv.org/abs/2410.13229v2","url_pdf":"https://arxiv.org/pdf/2410.13229v2.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":"quamba-a-post-training-quantization-recipe","repo_url":"https://github.com/enyac-group/quamba","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":"mamba","task_name":"Mamba"},{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"state-space-models","task_name":"State Space Models"}],"methods":[{"method_slug":"mamba","method_name":"Mamba"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2410.13229","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.13229"}},"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/enyac-group/quamba","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":9,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":12,"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":12,"samples":[{"code_sha256_prefix":"f33bb8921075cbcb","entry":"fake_quantize_with_type","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/datatype_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/datatype_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f33bb8921075cbcb"}},{"code_sha256_prefix":"eb9d2957b3161128","entry":"get_c4","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/data_loaders.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/data_loaders.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"eb9d2957b3161128"}},{"code_sha256_prefix":"e454b1111eff4d5c","entry":"get_datatypes","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/datatype_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/datatype_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e454b1111eff4d5c"}},{"code_sha256_prefix":"5595a55cc17ecd71","entry":"get_pack_factor","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/marlin_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/marlin_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5595a55cc17ecd71"}},{"code_sha256_prefix":"0445dadcfab62c4d","entry":"get_per_channel_scale","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/gptq_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/gptq_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0445dadcfab62c4d"}},{"code_sha256_prefix":"130787f1aae9a274","entry":"get_type_scales","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/datatype_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/datatype_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"130787f1aae9a274"}},{"code_sha256_prefix":"feae53d10372e4ae","entry":"get_w4a8_permute_weights","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/marlin_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/marlin_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"feae53d10372e4ae"}},{"code_sha256_prefix":"e36d941e3a44f9df","entry":"is_pow2","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/hadamard_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/hadamard_utils.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e36d941e3a44f9df"}},{"code_sha256_prefix":"9f5fdc371e76fdce","entry":"permute_weights","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/marlin_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/marlin_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9f5fdc371e76fdce"}},{"code_sha256_prefix":"7355789c27de24da","entry":"quant","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/gptq_utils.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/gptq_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7355789c27de24da"}},{"code_sha256_prefix":"fbe28cafff31e83e","entry":"get_ptb_new","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/data_loaders.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/data_loaders.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fbe28cafff31e83e"}},{"code_sha256_prefix":"f9f3ddd2d74b2929","entry":"get_wikitext2","repo":"enyac-group/quamba","repo_kind":"official","path":"quamba/data_loaders.py","file_url":"https://github.com/enyac-group/quamba/blob/HEAD/quamba/data_loaders.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f9f3ddd2d74b2929"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}