RNC: Efficient RRAM-aware NAS and Compilation for DNNs on Resource-Constrained Edge Devices
<|reference_start|>RNC: Efficient RRAM-aware NAS and Compilation for DNNs on Resource-Constrained Edge Devices: Computing-in-memory (CIM) is an emerging computing paradigm, offering noteworthy potential for accelerating neural networks with high parallelism, low latency, and energy efficiency compared to conventional von Neumann architectures. However, existing research has primarily focused on hardware architecture and network co-design for large-scale neural networks, without considering resource constraints. In this study, we aim to develop edge-friendly deep neural networks (DNNs) for accelerators based on resistive random-access memory (RRAM). To achieve this, we propose an edge compilation and resource-constrained RRAM-aware neural architecture search (NAS) framework to search for optimized neural networks meeting specific hardware constraints. Our compilation approach integrates layer partitioning, duplication, and network packing to maximize the utilization of computation units. The resulting network architecture can be optimized for either high accuracy or low latency using a one-shot neural network approach with Pareto optimality achieved through the Non-dominated Sorted Genetic Algorithm II (NSGA-II). The compilation of mobile-friendly networks, like Squeezenet and MobilenetV3 small can achieve over 80% of utilization and over 6x speedup compared to ISAAC-like framework with different crossbar resources. The resulting model from NAS optimized for speed achieved 5x-30x speedup. The code for this paper is available at https://github.com/ArChiiii/rram_nas_comp_pack.<|reference_end|>
@article{loong2024rnc:,
    title={RNC: Efficient RRAM-aware NAS and Compilation for DNNs on
  Resource-Constrained Edge Devices},
    author={Kam Chi Loong, Shihao Han, Sishuo Liu, Ning Lin, Zhongrui Wang},
    journal={arXiv preprint arXiv:2409.18841},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.18841},
    primaryClass={cs.NE}
}