Low-Precision Arithmetic Simulation in Pytorch - Extension for Posit and customized number formats
Project description
QPytorch+: Extending Qpytorch for Posit format and more
Author: minhhn2910@github, himeshi@github
Install
Install in developer mode:
git clone https://github.com/minhhn2910/QPyTorch.git
cd QPyTorch
pip install -e ./
Simple test if c-extension is working correctly :
python test.py
Important: if there are errors when running test.py, please export the environment variables indicating build directory and/or CUDA_HOME, otherwise we will have permission problem in multi-user-server.
export TORCH_EXTENSIONS_DIR=/[your-home-folder]/torch_extension
export CUDA_HOME=/[your cuda instalation directory e.g. /usr/local/cuda-10.2]
python test.py
Functionality:
- Support Posit Format with round to nearest mode.
- Scaling of value before & after conversion to/from posit is supported (Exponent bias when the scale is a power of 2).
For example:value x -> x*scale -> Posit(x*scale) -> x - Support Tanh approximation with Posit and correction of error:
Whenxis in a posit format with es = 0 =>Sigmoid(x) = (x XOR 0x8000) >> 2 => PositTanh(x) = 2 · Sigmoid(2x) − 1 - More number formats (Table lookup, log2 system ..., and new rounding modes will be supported on new versions).
Currently under development and update to support more number formats and schemes.
Demo and tutorial:
- Approximate Tanh Function with Posit is presented at
examples/tutorial/test_posit_func.ipynb - Most functionalities can be tested by using the notebooks in posit tutorials: ./examples/tutorial/
- Notebook demo training Cifar10 with vanilla Posit 8 bit:
examples/tutorial/CIFAR10_Posit_Training_Example.ipynb - Demo of DCGAN Cifar10 training with Posit 8 bit: Google Colab Link
- Demo of DCGAN Lsun inference using Posit 6 bit and Approximate Tanh : Google Colab Link
- Demo of applying posit 6 bits & 8 bits to ALBERT for Question Answering Task: GoogleColab Demo
If you find this repo useful, please cite our paper(s) listed below. The below also explain the terms and usage of Posit's enhancements (exponent bias and tanh function).
@inproceedings{ho2021posit,
title={Posit Arithmetic for the Training and Deployment of Generative Adversarial Networks},
author={Ho, Nhut-Minh and Nguyen, Duy-Thanh and De Silva, Himeshi and Gustafson, John L and Wong, Weng-Fai and Chang, Ik Joon},
booktitle={2021 Design, Automation \& Test in Europe Conference \& Exhibition (DATE)},
pages={1350--1355},
year={2021},
organization={IEEE}
}
The original Qpytorch package which supports floating point and fixed point:
The original README file is in REAME.original.md
Credit to the Qpytorch team and their original publication
@misc{zhang2019qpytorch,
title={QPyTorch: A Low-Precision Arithmetic Simulation Framework},
author={Tianyi Zhang and Zhiqiu Lin and Guandao Yang and Christopher De Sa},
year={2019},
eprint={1910.04540},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Qpytorch Team
- Tianyi Zhang
- Zhiqiu Lin
- Guandao Yang
- Christopher De Sa
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qtorch_plus-0.2.0.tar.gz.
File metadata
- Download URL: qtorch_plus-0.2.0.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/3.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76496a8cb347fed7374dadf6ec4db86fa02290918e1ae06605508f4d835e309a
|
|
| MD5 |
0b259899c70f0f4057b2452c32ccdee0
|
|
| BLAKE2b-256 |
8f65c516493c307e4468b44a33572ecb2a06ba030b95f7fdf0132ebdc795dd6c
|
File details
Details for the file qtorch_plus-0.2.0-py3-none-any.whl.
File metadata
- Download URL: qtorch_plus-0.2.0-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/3.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba90c64119545a8be1351535c3ea6139222774fa278daed3fd22e86ecc805a66
|
|
| MD5 |
704b1d4b959135333446d2442c94568a
|
|
| BLAKE2b-256 |
6c7543be25fdf4aae997074aa12d6965c79adee981aa3d69fe818e1df600616f
|