IBM Analog Hardware Acceleration Kit is a Python toolkit for simulating and training neural networks on analog in-memory computing devices.
The toolkit addresses the challenge of developing machine learning models that can run efficiently on analog hardware by providing both a PyTorch integration layer and a high-performance analog device simulator. The PyTorch components include analog neural network modules such as fully connected and convolutional layers, along with training and inference workflows that account for hardware non-idealities. The simulator, which supports CUDA acceleration, models a wide range of analog devices and crossbar configurations with adjustable parameters, including forward pass noise, device variations, and stochastic update behavior. A key capability is hardware-aware training, which incorporates realistic device noise and non-idealities into the forward pass during training to make models more robust when deployed on actual analog hardware.
The toolkit is suited for researchers and practitioners exploring in-memory computing for AI workloads who want to prototype and validate designs before hardware deployment. It provides device presets calibrated to real hardware measurements, including a statistical model of phase-change memory arrays, which helps bridge the gap between simulation and physical devices. The toolkit also includes high-level experiment modules for common use cases like neural network training with minimal code overhead, and can automatically convert pre-trained models to their analog equivalents by replacing standard layers with analog counterparts.
The project receives issue and pull request responses within one to two weeks. Work in the issue tracker centers on bug fixes, enhancements, and build-related tasks.