This repository is the official implementation of DynaPAT paper. Details of the proposed methods are described in: Thai-Hoang Nguyen, Muhammad Imran, Joon-Sung Yang (2022). DynaPAT: A Dynamic Pattern-Aware Encoding Technique for Robust MLC PCM-Based Deep Neural Networks. ICCAD'22: Proceedings of the 41st IEEE/ACM International Conference on Computer-Aided Design.
Install required packages:
$ pip install -r requirement.txt
- Clone the repo
git clone https://github.com/thnguyen996/DynaPAT_ICCAD_22.git
- Download pretrained weights and put it in checkpoint/ folder
- Run the code
python main.py --help
to see all the options provided by the code
Run the following code to evaluate resistance drift on a baseline model
$ python main.py --model [name of the model] --method baseline -gpu [GPU ID] --num_bits 8
Run state_encoding.py to generate state encoding for DynaPAT
$ python state_encoding.py --model [Name of the model] --method proposed_method
Run main.py to evaluate DynaPAT for a given state encoding
$ python main.py --method proposed_method --model [Name of the model] --gpu [GPU ID] --num_bits 8
For Flipcy and Helmet, run the main.py file with addtional options --encode first, this will generate encodings for the 2 methods
$ python main.py --method ECP
If you use this code for your research paper, please use the following citation:
@inproceedings{nguyen2022dynapat,
author = {Nguyen, Thai-Hoang and Imran, Muhammad and Yang, Joon-Sung},
booktitle = {Proceedings of the 41st IEEE/ACM International Conference on Computer-Aided Design},
pages = {1--9},
title = {DynaPAT: A Dynamic Pattern-Aware Encoding Technique for Robust MLC PCM-Based Deep Neural Networks},
year = {2022}
}