# Changelog¶

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning:

• Added for new features.

• Changed for changes in existing functionality.

• Deprecated for soon-to-be removed features.

• Removed for now removed features.

• Fixed for any bug fixes.

• Security in case of vulnerabilities.

## 0.2.0 - 2020/10/20¶

• Added more types of resistive devices: IdealResistiveDevice, LinearStep, SoftBounds, ExpStep, VectorUnitCell, TransferCompoundDevice, DifferenceUnitCell. (#14)

• Added a new InferenceTile that supports basic hardware-aware training and inference using a statistical noise model that was fitted by real PCM devices. (#25)

• Added a new AnalogSequential layer that can be used in place of Sequential for easier operation on children analog layers. (#34)

### Changed¶

• Specifying the tile configuration (resistive device and the rest of the properties) is now based on a new RPUConfig family of classes, that is passed as a rpu_config argument instead of resistive_device to Tiles and Layers. Please check the aihwkit.simulator.config module for more details. (#23)

• The different analog tiles are now organized into a aihwkit.simulator.tiles package. The internal IndexedTiles have been removed, and the rest of previous top-level imports have been kept. (#29)

### Fixed¶

• Improved package compatibility when using non-UTF8 encodings (version file, package description). (#13)

• The build system can now detect and use openblas directly when using the conda-installable version. (#22)

• When using analog layers as children of another module, the tiles are now correctly moved to CUDA if using AnalogSequential (or by the optimizer if using regular torch container modules). (#34)

## 0.1.0 - 2020/09/17¶

• Added rpucuda C++ simulator, exposed through a pybind interface.
• Added a PyTorch AnalogLinear neural network model.
• Added a PyTorch AnalogConv2d neural network model.