Releases: IBM/aihwkit
Releases · IBM/aihwkit
IBM Analog Hardware Acceleration Kit 0.2.1
Added
- The
rpu_config
is now pretty-printed in a readable manner (excluding the
default settings and other readability tweak). (#60) - Added a new
ReferenceUnitCell
which has two devices, where one is fixed and
the other updated and the effective weight is computed a difference between
the two. (#61) VectorUnitCell
accepts now arbitrary weighting schemes that can be
user-defined by using a newgamma_vec
property that specifies how to combine
the unit cell devices to form the effective weight. (#61)
Changed
- The unit cell items in
aihwkit.simulator.configs
have been renamed, removing
theirDevice
suffix, for having a more consistent naming scheme. (#57) - The
Exceptions
raised by the library have been revised, making use in some
cases of the ones introduced in a newaihwkit.exceptions
module. (#49) - Some
VectorUnitCell
properties have been renamed and extended with an update
policy specifying how to select the hidden devices. (#61) - The
pybind11
version required has been bumped to 2.6.0, which can be
installed frompip
and makes system-wide installation no longer required.
Please update yourpybind11
accordingly for compiling the library. (#44)
Removed
- The
BackwardIOParameters
specialization has been removed, as bound
management is now automatically ignored for the backward pass. Please use the
more generalIOParameters
instead. (#45)
Fixed
- Serialization of
Modules
that contain children analog layers is now
possible, both when using containers such asSequential
and when using
analog layers as custom Module attributes. (#74, #80) - The build system has been improved, with experimental Windows support and
supporting using CUDA 11 correctly. (#58, #67, #68)
IBM Analog Hardware Acceleration Kit 0.2.0
Added
- 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 ofSequential
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 newRPUConfig
family of classes, that is
passed as arpu_config
argument instead ofresistive_device
toTiles
andLayers
. Please check theaihwkit.simulator.config
module for more
details. (#23) - The different analog tiles are now organized into a
aihwkit.simulator.tiles
package. The internalIndexedTiles
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 usingAnalogSequential
(or by the optimizer if
using regular torch container modules). (#34)
IBM Analog Hardware Acceleration Kit 0.1.0
Added
- Initial public release.
- Added
rpucuda
C++ simulator, exposed through apybind
interface. - Added a PyTorch
AnalogLinear
neural network model. - Added a PyTorch
AnalogConv2d
neural network model.