8000 GitHub - bonanyan/pim-gym: PIM-Gym, including a lot of practice for PIM macros and SoCs
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

bonanyan/pim-gym

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Static Badge Static Badge Static Badge

PIM Gym

Collection of Baseline Designs for Memory-Centric Tensor Processing SoC

Author: Bonan Yan :)


Quick Downloads in This Repo

File Version URL
PIM macro behavioral model, Verilog version v2 [download]
PIM macro behavioral model, Chisel version v2 [download]
SoC, Type 1 v1 [download]
SoC, Type 2 v1 [download]
SoC, Type 3 v1 [download]
SoC, Type 4 v1 [download]

SoC Categories:

  • Type 1:
  • Type 2:
  • Type 3:
  • Type 4:

🏁 PIM Macro Model, Verilog version

Step 1: Untar the downloaded pim-verilog-bmodel.tar.gz and enter the working folder (where the "makefile" lies)

tar xvzf pim-verilog-bmodel.tar.gz
cd pim-verilog-bmodel

Files:

pim-verilog-bmodel/
├── doc
│   ├── APIM_AddressMap.pdf  //address map of apim
│   └── DPIM_AddressMap.pdf  //address map of dpim
├── makefile  //top entry
├── readme.md //readme
└── src
    ├── APIM_tb.v //testbench for APIM.v
    ├── APIM.v //design (behavioral model) of APIM
    ├── DPIM_tb.v //testbench for DPIM.v
    ├── DPIM.v //design (behavioral model) of DPIM
    └── plt.tcl //gtkwave ploting configuration, used in "make plot"

Step 2: Run

Choose one of the 4 following commend to run in shell:

(a) To test APIM.v:

make apim

(b) To test DPIM.v:

make dpim

(c) To plot the testing waveform:

make plot

(d) To cleanup:

make clean

FAQs: It is common to revise the code of the behavioral model codes according to your own demands, please refer to arvix:XXX for detailed elaboration on the macro structure.


🏁 PIM Macro Model, Chisel version

< 8000 a id="user-content-checkered_flag-pim-macro-model-chisel-version" class="anchor" aria-label="Permalink: :checkered_flag: PIM Macro Model, Chisel version" href="#checkered_flag-pim-macro-model-chisel-version">

Behavioral model:

/src/main/scala/pislib/*
File Content
Memory.scala traditional memory behavioral model
APIM.scala analog PIM macro behavioral model
DPIM.scala digital PIM macro behavioral model

Chisel testbench:

/src/test/scala/pislib/*

To use:

Step 1: Untar the downloaded pim-chisel-bmodel.tar.gz and enter the working folder (where the "makefile" lies)

tar xvzf pim-chisel-bmodel.tar.gz
cd pim-chisel-bmodel

Step 2: Select one of the following:

(a) Test normal memory:

make testMem

Explain: test conventional memory chisel behavioral model

(b) Test analog PIM:

make testAPIM 

Explain: test analog PIM macro chisel behavioral model

(c) Test digital PIM:

make testDPIM 

Explain: test digital PIM macro chisel behavioral model

Run environment setup:

Refer to [chisel local install]

  • install Java SDK
  • install sbt
  • Good to go run the main entry

🏁 Type 1 SoC:


🏁 Type 2 SoC:


🏁 Type 3 SoC:


🏁 Type 4 SoC:


Citation

Please cite this work as:

XXX, XXX, XXX

or use Bibtex:

@article{pimgym,
    author = {Yan, Bonan},
    journal = {arXiv preprint arXiv:2202.07646},
    title = {Quantifying memorization across neural language models},
    url = {https://arxiv.org/abs/2202.07646},
    year = {2022}
}

To update docs:

source make_doc_page.sh

About

PIM-Gym, including a lot of practice for PIM macros and SoCs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0