Recent Releases of memtorch
memtorch - 1.1.6 Release
Added
- The
random_crossbar_initargument to memtorch.bh.Crossbar. If true, this is used to initialize crossbars to random device conductances in between 1/Ron and 1/Roff. CUDA_device_idxtosetup.pyto allow users to specify theCUDAdevice to use when installingMemTorchfrom source.- Implementations of CUDA accelerated passive crossbar programming routines for the 2021 Data-Driven model.
- A BiBTeX entry, which can be used to cite the corresponding OSP paper.
Fixed
- In the getting started tutorial, Section 4.1 was a code cell. This has since been converted to a markdown cell.
- OOM errors encountered when modeling passive inference routines of crossbars.
Enhanced
- Templated quantize bindings and fixed semantic error in
memtorch.bh.nonideality.FiniteConductanceStates. - The memory consumption when modeling passive inference routines.
- The sparse factorization method used to solve sparse linear matrix systems.
- The
naive_programroutine for crossbar programming. The maximum number of crossbar programming iterations is now configurable. - Updated ReadTheDocs documentation for
memtorch.bh.Crossbar. - Updated the version of
PyTorchused to build Python wheels from1.9.0to1.10.0.
- Python
Published by github-actions[bot] almost 4 years ago
memtorch - 1.1.5 Release
Added
- Partial support for the
groupsargument for convolutional layers.
Fixed
- Patching procedure in
memtorch.mn.module.patch_modelandmemtorch.bh.nonideality.apply_nonidealitiesto fix semantic error inTutorial.ipynb. - Import statement in
Exemplar_Simulations.ipynb.
Enhanced
- Further modularized patching logic in
memtorch.bh.nonideality.NonIdealityandmemtorch.mn.Module. - Modified default number of worker in
memtorch.utilsfrom 2 to 1.
- Python
Published by github-actions[bot] over 4 years ago
memtorch - 1.1.4 Release
Added
- Added Patching Support for
torch.nn.Sequentialcontainers. - Added support for modeling source and line resistances for passive crossbars/tiles.
- Added C++ and CUDA bindings for modeling source and line resistances for passive crossbars/tiles*.
- Added a new MemTorch logo to
README.md - Added the
set_cuda_malloc_heap_sizeroutine to patchedtorch.mnmodules. - Added unit tests for source and line resistance modeling.
- Relaxed requirements for programming passive crossbars/tiles.
*Note it is strongly suggested to set cuda_malloc_heap_size using m.set_cuda_malloc_heap_size manually when simulating source and line resistances using CUDA bindings.
Enhanced
- Modularized patching logic in
memtorch.bh.nonideality.NonIdealityandmemtorch.mn.Module. - Updated
ReadTheDocsdocumentation. - Transitioned from
GittertoGitHub Discussionsfor general discussion.
- Python
Published by github-actions[bot] over 4 years ago
memtorch - 1.1.3 Release
Added
- Added another version of the Data Driven Model defined using
memtorch.bh.memrsitor.Data_Driven2021. - Added CPU- and GPU-bound C++ bindings for
gen_tiles. - Exposed
use_bindings. - Added unit tests for
use_bindings. - Added
exemptAssigneestag toscale.yml. - Created
memtorch.map.Inputto encapsulate customizable input scaling methods. - Added the
force_scaleinput argument to the default scaling method to specify whether inputs are force scaled if they do not exceedmax_input_voltage. - Added CPU and GPU bindings for
tiled_inference.
Enhanced
- Modularized input scaling logic for all layer types.
- Modularized
tile_inferencefor all layer types. - Updated ReadTheDocs documentation.
Fixed
- Fixed GitHub Action Workflows for external pull requests.
- Fixed error raised by
memtorch.map.Parameterwhenp_lis defined. - Fixed semantic error in
memtorch.cpp.gen_tiles.
- Python
Published by github-actions[bot] over 4 years ago
memtorch - 1.1.2 Release
Added
- C++ and CUDA bindings for
memtorch.bh.crossbar.Tile.tile_matmul.
Using an NVIDIA GeForce GTX 1080, a tile shape of (25, 25), and two tensors of size (500, 500), the runtime of tile_matmul without quantization support is reduced by 2.45x and 5.48x, for CPU-bound and GPU-bound operation, respectively. With an ADC resolution of 4 bits and an overflow rate of 0.0, the runtime of tile_matmul with quantization support is reduced by 2.30x and 105.27x, for CPU-bound and GPU-bound operation, respectively.
| Implementation | Runtime Without Quantization Support (s) | Runtime With Quantization Support (s) | | ---------------------- | ---------------------------------------- | ------------------------------------- | | Pure Python (Previous) | 6.917784 | 27.099764 | | C++ (CPU-bound) | 2.822265 | 11.736974 | | CUDA (GPU-bound) | 1.262861 | 0.2574267 |
Eigenintegration with C++ and CUDA bindings.- Additional unit tests.
Enhanced
- Modularized C++ and CUDA
quantizebindings. - Enhanced functionality of
naive_progamand added additional input arguments to dictate logic for stuck devices.
Fixed
- Removed debugging code from
naive_progam.
- Python
Published by github-actions[bot] over 4 years ago
memtorch - 1.1.0 Release
Added
- Unit tests and removed system CUDA dependency;
- Support for Conv1d and Conv3d Layers;
- Legacy support;
- MANIFEST.in and resolved header dependency;
- Native toggle for forward_legacy and size arguments to tune;
codecovintegration;- Support for all
torch.distributions; - 1R programming routine and non-linear device simulation during inference;
- Stanford PKU and A Data Driven Verilog a ReRAM memristor models;
- Modular crossbar tile support;
- ADC and variable input voltage range support, and modularized all
memtorch.mnmodules; cibuildwheelintegration to automatically generate build wheels.
Enhanced
- Mapping functionality;
- Reduced pooling memory usage with
maxtasksperchild; - Programming routine;
set_conductance;apply_cycle_variability.
Fixed
- Dimension mismatch error for convolutional layers with non-zero padding;
reg.coef_andreg.intercept_extraction process for N-dimensional arrays;- Various semantic errors.
- Python
Published by coreylammie almost 5 years ago