https://github.com/3it-inpaqt/memtorch
A Simulation Framework for Memristive Deep Learning Systems
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
A Simulation Framework for Memristive Deep Learning Systems
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of coreylammie/MemTorch
Created over 4 years ago
· Last pushed over 4 years ago
https://github.com/3it-inpaqt/MemTorch/blob/master/
[](https://www.python.org/)   [](https://github.com/coreylammie/MemTorch/discussions/97)  [](https://github.com/coreylammie/MemTorch/actions/workflows/push_pull.yml) [](https://codecov.io/gh/coreylammie/MemTorch) [](https://github.com/psf/black) MemTorch is a _Simulation Framework for Memristive Deep Learning Systems_, which integrates directly with the well-known PyTorch Machine Learning (ML) library. MemTorch is formally described in _MemTorch: An Open-source Simulation Framework for Memristive Deep Learning Systems_, which is openly accessible [here](https://arxiv.org/abs/2004.10971).  ## MemTorch: An Open-source Simulation Framework for Memristive Deep Learning Systems > Corey Lammie, Wei Xiang, Bernab Linares-Barranco, and Mostafa Rahimi Azghadi
![]()
> > **Abstract:** _Memristive devices have shown great promise to facilitate the acceleration and improve the power efficiency of Deep Learning (DL) systems. Crossbar architectures constructed using these Resistive Random-Access Memory (RRAM) devices can be used to efficiently implement various in-memory computing operations, such as Multiply Accumulate (MAC) and unrolled-convolutions, which are used extensively in Deep Neural Networks (DNNs) and Convolutional Neural Networks (CNNs). However, memristive devices face concerns of aging and non-idealities, which limit the accuracy, reliability, and robustness of Memristive Deep Learning Systems (MDLSs), that should be considered prior to circuit-level realization. This Original Software Publication (OSP) presents MemTorch, an open-source framework for customized large-scale memristive DL simulations, with a refined focus on the co-simulation of device non-idealities. MemTorch also facilitates co-modelling of key crossbar peripheral circuitry. MemTorch adopts a modernized soft-ware engineering methodology and integrates directly with the well-known PyTorch Machine Learning (ML) library._ ## Installation MemTorch can be installed from source using `python setup.py install`: ``` git clone --recursive https://github.com/coreylammie/MemTorch cd MemTorch python setup.py install ``` or using `pip install .`, as follows: ``` git clone --recursive https://github.com/coreylammie/MemTorch cd MemTorch pip install . ``` _If CUDA is `True` in `setup.py`, CUDA Toolkit 10.1 and Microsoft Visual C++ Build Tools are required. If `CUDA` is False in `setup.py`, Microsoft Visual C++ Build Tools are required._ Alternatively, MemTorch can be installed using the _pip_ package-management system: ``` pip install memtorch-cpu # Supports normal operation pip install memtorch # Supports CUDA and normal operation ``` ## API & Example Usage A complete API is avaliable [here](https://memtorch.readthedocs.io/). To learn how to use MemTorch, and to reproduce results of _MemTorch: An Open-source Simulation Framework for Memristive Deep Learning Systems_, we provide numerous tutorials in the form of Jupyter notebooks [here](https://memtorch.readthedocs.io/en/latest/tutorials.html). The best place to get started is [here](https://colab.research.google.com/github/coreylammie/MemTorch/blob/master/memtorch/examples/Tutorial.ipynb). ## Current Issues and Feature Requests Current issues, feature requests and improvements are welcome, and are tracked using: https://github.com/coreylammie/MemTorch/projects/1. These should be reported [here](https://github.com/coreylammie/MemTorch/issues). ## Contributing Please follow the "fork-and-pull" Git workflow: 1. **Fork** the repo on GitHub. 2. **Clone** the project to your own machine using `git clone --recursive`. 3. **Enter Development Mode** using `python setup.py develop` in the cloned repository's directory. 4. **Configure** `git pre-commit`, `black`, `isort`, and `clang-format` using `pip install pre-commit black isort && pre-commit install` and `apt install clang clang-format` (for linux) or `choco install llvm uncrustify cppcheck` (for windows). 5. **Commit** changes to your own branch. 6. **Push** your work back up to your fork. 7. Submit a **Pull request** so that your changes can be reviewed. _Be sure to merge the latest from 'upstream' before making a pull request_. This can be accomplished using `git rebase master`. ## Citation To cite _MemTorch: An Open-source Simulation Framework for Memristive Deep Learning Systems_, use the following BibTex entry: ``` @misc{lammie2020memtorch, title={{MemTorch: An Open-source Simulation Framework for Memristive Deep Learning Systems}}, author={Corey Lammie and Wei Xiang and Bernab\'e Linares-Barranco and Mostafa Rahimi Azghadi}, month=Apr., year={2020}, eprint={2004.10971}, archivePrefix={arXiv}, primaryClass={cs.ET} } ``` To cite this repository, use the following BibTex entry: ``` @software{corey_lammie_2020_3760696, author={Corey Lammie and Wei Xiang and Bernab\'e Linares-Barranco and Mostafa Rahimi Azghadi}, title={{coreylammie/MemTorch: Initial Release}}, month=Apr., year={2020}, publisher={Zenodo}, doi={10.5281/zenodo.3760695}, url={https://doi.org/10.5281/zenodo.3760696} } ``` ## License All code is licensed under the GNU General Public License v3.0. Details pertaining to this are available at: https://www.gnu.org/licenses/gpl-3.0.en.html.
Owner
- Name: Integrated Nanoelectronics and Packaging for AI and Quantum Technologies (INPAQT)
- Login: 3it-inpaqt
- Kind: organization
- Location: Sherbrooke, Canada
- Website: nano-electronique/groupe-inpaqthttps://www.usherbrooke.ca/ln2/recherche/
- Repositories: 18
- Profile: https://github.com/3it-inpaqt
Sherbrooke University – Institut Interdisciplinaire d'Innovation Technologique (3IT) – Laboratoire Nanotechnologies et Nanosystèmes (LN2)