XBTorch: A Unified Framework for Modeling and Co-Design of Crossbar-Based Deep Learning Accelerators
Osama Yousuf, Andreu L. Glasmann, Martin Lueker-Boden, Sina Najmaei, Gina C. Adam
TL;DR
XBTorch addresses the need for a unified framework to study memristive neural networks across device models, hardware-aware training, and inference-time fault tolerance. It integrates with PyTorch, supports analytical and tabular device models (e.g., FeFET, ReRAM), and provides gradient decomposition, loss landscape analysis, and LLM evaluation with analog noise. The results demonstrate interplay between device non-idealities and training dynamics, showing how hardware-aware strategies can improve robustness and enable realistic benchmarking. This framework enables systematic algorithm–hardware co-design for crossbar-based accelerators and could accelerate progress in neuromorphic computing.
Abstract
Emerging memory technologies have gained significant attention as a promising pathway to overcome the limitations of conventional computing architectures in deep learning applications. By enabling computation directly within memory, these technologies - built on nanoscale devices with tunable and nonvolatile conductance - offer the potential to drastically reduce energy consumption and latency compared to traditional von Neumann systems. This paper introduces XBTorch (short for CrossBarTorch), a novel simulation framework that integrates seamlessly with PyTorch and provides specialized tools for accurately and efficiently modeling crossbar-based systems based on emerging memory technologies. Through detailed comparisons and case studies involving hardware-aware training and inference, we demonstrate how XBTorch offers a unified interface for key research areas such as device-level modeling, cross-layer co-design, and inference-time fault tolerance. While exemplar studies utilize ferroelectric field-effect transistor (FeFET) models, the framework remains technology-agnostic - supporting other emerging memories such as resistive RAM (ReRAM), as well as enabling user-defined custom device models. The code is publicly available at: https://github.com/ADAM-Lab-GW/xbtorch
