CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool
<|reference_start|>CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool: Compute-In-Memory (CiM) is a promising solution to accelerate Deep Neural Networks (DNNs) as it can avoid energy-intensive DNN weight movement and use memory arrays to perform low-energy, high-density computations. These benefits have inspired research across the CiM stack, but CiM research often focuses on only one level of the stack (i.e., devices, circuits, architecture, workload, or mapping) or only one design point (e.g., one fabricated chip). There is a need for a full-stack modeling tool to evaluate design decisions in the context of full systems (e.g., see how a circuit impacts system energy) and to perform rapid early-stage exploration of the CiM co-design space.   To address this need, we propose CiMLoop: an open-source tool to model diverse CiM systems and explore decisions across the CiM stack. CiMLoop introduces (1) a flexible specification that lets users describe, model, and map workloads to both circuits and architecture, (2) an accurate energy model that captures the interaction between DNN operand values, hardware data representations, and analog/digital values propagated by circuits, and (3) a fast statistical model that can explore the design space orders-of-magnitude more quickly than other high-accuracy models.   Using CiMLoop, researchers can evaluate design choices at different levels of the CiM stack, co-design across all levels, fairly compare different implementations, and rapidly explore the design space.<|reference_end|>
@article{andrulis2024cimloop:,
    title={CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool},
    author={Tanner Andrulis, Joel S. Emer, Vivienne Sze},
    journal={ISPASS 2024 pp. 10-23},
    year={2024},
    doi={10.1109/ISPASS61541.2024.00012},
    archivePrefix={arXiv},
    eprint={2405.07259},
    primaryClass={cs.AR}
}