{"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/using-the-ibm-analog-in-memory-hardware","title":"Using the IBM Analog In-Memory Hardware Acceleration Kit for Neural Network Training and Inference","arxiv_id":"2307.09357","date":"2023-07-18","proceeding":null,"authors":["Manuel Le Gallo","Corey Lammie","Julian Buechel","Fabio Carta","Omobayode Fagbohungbe","Charles Mackin","Hsinyu Tsai","Vijay Narayanan","Abu Sebastian","Kaoutar El Maghraoui","Malte J. Rasch"],"abstract":"Analog In-Memory Computing (AIMC) is a promising approach to reduce the latency and energy consumption of Deep Neural Network (DNN) inference and training. However, the noisy and non-linear device characteristics, and the non-ideal peripheral circuitry in AIMC chips, require adapting DNNs to be deployed on such hardware to achieve equivalent accuracy to digital computing. In this tutorial, we provide a deep dive into how such adaptations can be achieved and evaluated using the recently released IBM Analog Hardware Acceleration Kit (AIHWKit), freely available at https://github.com/IBM/aihwkit. The AIHWKit is a Python library that simulates inference and training of DNNs using AIMC. We present an in-depth description of the AIHWKit design, functionality, and best practices to properly perform inference and training. We also present an overview of the Analog AI Cloud Composer, a platform that provides the benefits of using the AIHWKit simulation in a fully managed cloud setting along with physical AIMC hardware access, freely available at https://aihw-composer.draco.res.ibm.com. Finally, we show examples on how users can expand and customize AIHWKit for their own needs. This tutorial is accompanied by comprehensive Jupyter Notebook code examples that can be run using AIHWKit, which can be downloaded from https://github.com/IBM/aihwkit/tree/master/notebooks/tutorial.","url_abs":"https://arxiv.org/abs/2307.09357v2","url_pdf":"https://arxiv.org/pdf/2307.09357v2.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":"using-the-ibm-analog-in-memory-hardware","repo_url":"https://github.com/IBM/aihwkit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":null,"method_name":"Library"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.09357","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.09357"}},"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/IBM/aihwkit","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":0,"samples":[{"code_sha256_prefix":"493c8891525a7c4b","entry":"is_inplace_operation","repo":"IBM/aihwkit","repo_kind":"official","path":"src/aihwkit/optim/weight_view.py","file_url":"https://github.com/IBM/aihwkit/blob/HEAD/src/aihwkit/optim/weight_view.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"493c8891525a7c4b"}},{"code_sha256_prefix":"7d44cbaf313abd51","entry":"specific_rpu_config_id","repo":"IBM/aihwkit","repo_kind":"official","path":"src/aihwkit/nn/conversion.py","file_url":"https://github.com/IBM/aihwkit/blob/HEAD/src/aihwkit/nn/conversion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7d44cbaf313abd51"}},{"code_sha256_prefix":"46b89ee4c9e1eb11","entry":"raise_if_readonly_write_target","repo":"IBM/aihwkit","repo_kind":"official","path":"src/aihwkit/optim/weight_view.py","file_url":"https://github.com/IBM/aihwkit/blob/HEAD/src/aihwkit/optim/weight_view.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"46b89ee4c9e1eb11"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}