Published January 30, 2023
| Version v0.7.0
Software
Open
IBM/aihwkit: IBM Analog Hardware Acceleration Kit 0.7.0
Authors/Creators
- 1. @IBMResearch
- 2. IBM
- 3. IBM Research
- 4. Bilkent University
- 5. @UPHF
- 6. @IBM
- 7. Red Hat
- 8. Emory University
Description
[0.7.0] - 2023/01/30
Added- Reset tiles method (#456)
- Added many new analog MAC non-linearties (forward / backward pass) (#456)
- Polynomial weight noise for hardware-aware training (#456)
- Remap functionality for hardware-aware training (#456)
- Input range estimation for InferenceRPUConfig (#456)
- CUDA always syncs and added non-blocking option if not wished (#456)
- Fitting utility for fitting any device model to conductance measurements (#456)
- Added
PowStepReferenceDevicefor easy subtraction of symmetry point (#456) - Added
SoftBoundsReferenceDevicefor easy subtraction of symmetry point (#456) - Added stand-alone functions for applying inference drift to any model (#419)
- Added Example 24: analog inference and hardware-aware training on BERT with the SQUAD task (#440)
- Added Example 23: how to use
AnalogTiledirectly to implement an analog matrix-vector product without using pytorch modules. (#393) - Added Example 22: 2 layer LSTM network trained on War and Peace dataset. (#391)
- Added a new notebook for exploring analog sensitivities. (#380)
- Remapping functionality for
InferenceRPUConfig. (#388) - Inference cloud experiment and runners. (#410)
- Added
analog_modulesgenerator inAnalogSequential. (#410) - Added
SKIP_CUDA_TESTSto manually switch off the CUDA tests. - Enabling comparisons of
RPUConfiginstances. (#410) - Specific user-defined function for layer-wise setting for RPUConfigs in conversions. (#412)
- Added stochastic rounding options for
MixedPrecisionCompound. (#418) - New
remapparameter field and functionality inInferenceRPUConfig(#423). - Tile-level weight getter and setter have
apply_weight_scalingargument. (#423) - Pre and post-update / backward / forward methods in
BaseTilefor easier user-defined modification of pre and/or post-processings of a tile. (#423) - Type-checking for
RPUConfigfields. (#424)
- Decay fix for compound devices (#463)
RPUCudabackend update with many fixes (#456)- Missing zero-grad call in example 02 (#446)
- Indexing error in
OneSidedDevicefor CPU (#447) - Analog summary error when model is on cuda device. (#392)
- Index error when loading the state dict with a model use previously. (#387)
- Weights that were not contiguous could have been set wrongly. (#388)
- Programming noise would not be applied if drift compensation was not used. (#389)
- Loading a new model state dict for inference does not overwrite the noise model setting. (#410)
- Avoid
AnalogContextcopying of self pointers. (#410) - Fix issue that drift compensation is not applied to conv-layers. (#412)
- Fix issue that noise modifiers are not applied to conv-layers. (#412)
- The CPU
AnalogConv2dlayer now uses unfolded convolutions instead of indexed covolutions (that are efficient only for GPUs). (#415) - Fix issue that write noise hidden weights are not transferred to
pytorch when using
get_hidden_parametersin case of CUDA. (#417) - Learning rate scaling due to output scales. (#423)
WeightModifiersof theInferenceRPUConfigare no longer called in the forward pass, but instead in thepost_update_stepmethod to avoid issues with repeated forward calls. (#423)- Fix training
learn_out_scalesissue after checkpoint load. (#434)
- Pylint / mypy / pycodestyle / protobuf version bump (#456)
- All configs related classes can now be imported from
aihwkit.simulator.config(#456) - Weight noise visualization now shows the programming noise and drift noise differences. (#389)
- Concatenate the gradients before applying to the tile update function (some speedup for CUDA expected). (#390)
- Drift compensation uses eye instead of ones for readout. (#412)
weight_scaling_omega_columnwiseparameter inMappingParameteris now calledweight_scaling_columnwise. (#423)- Tile-level weight getter and setter now use Tensors instead of numpy arrays. (#423)
- Output scaling and mapping scales are now distiniguished, only the former is learnable. (#423)
- Renamed
learn_out_scaling_alphaparameter inMappingParametertolearn_out_scalingand columnwise learning has a separate switchout_scaling_columnwise. (#423)
- Input
weight_scaling_omegaargument in analog layers is deprecated. (#423)
- The
_scaledversions of the weight getter and setter methods are removed. (#423)
Files
IBM/aihwkit-v0.7.0.zip
Files
(8.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:b284612dd0818a2aa6355f7ddb7c1ef9
|
8.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/IBM/aihwkit/tree/v0.7.0 (URL)