forked from estwings57/HMC-MAC
-
Notifications
You must be signed in to change notification settings - Fork 0
Processing-in Memory Architecture for Multiply-Accumulate Operations with Hybrid Memory Cube
License
m1chaelyeung/HMC-MAC
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
HMC-MAC: Processing-in Memory Architecture for Multiply-Accumulate Operations with Hybrid Memory Cube version HMC-MAC v1.0 - 2017.02.14 1. Developer Dong-Ik Jeon Ki-Seok Chung Hanyang University estwings57 [at] gmail [dot] com 2. About HMC-MAC A novel PIM architecture called HMC-MAC that implements the MAC operation in the HMC is proposed. The proposed HMC-MAC architecture can closely follow the conventional HMC structure only with slight modification of the HMC atomic operation logic. This HMC-MAC simulator is based on the existing HMC simulatior, called CasHMC. CasHMC provides a cycle-by-cycle simulation of every module in HMC, and generates analysis results including a bandwidth graph and statistical data. (CasHMC source code is available at https://github.com/estwings57/CasHMC) HMC-MAC simulator is a good example of how to utilize the CasHMC simulator. All modified source code from CasHMC is distinguished by HMC_MAC ifdef state. HMC-MAC has six new instructions with a combination of the data size and the data type. All new instructions can be checked in 'RunSim.cpp' file (line 119 to line 128) 3. HMC-MAC version info v1.0 (2017.02.14 released) - Released the 1st HMC-MAC - A PIM architecture that implements the MAC operation in the HMC 4. Getting HMC-MAC HMC-MAC is available on github. https://github.com/estwings57/HMC-MAC 5. Folder directory graph : Gnuplot script file and a graph data file after a simulation run is over result : Log files after a simulation run is over sources : All HMC-MAC source files trace : The example of trace files (The files are extracted from SPEC CPU2006 benchmarks) 6. Building HMC-MAC To build an optimized HMC-MAC $ make 7. Running HMC-MAC > Command line arguments -c (--cycle) : The number of CPU cycles to be simulated -t (--trace) : Trace type ('random' or 'file') -u (--util) : Requests frequency (0 = no requests, 1 = as fast as possible) [Default 0.1] -r (--rwratio) : (%) The percentage of reads in request stream [Default 80] -f (--file) : Trace file name -h (--help) : Simulation option help > The example of trace generator mode $ ./HMC-MAC -c 100000 -t random -u 0.1 -r 60 > The example of trace file mode $ ./HMC-MAC -c 100000 -t file -f ./trace/SPEC_CPU2006_example/mase_trace_bzip2_base.alpha.v0.trc > The example of CasHMCWrapper object instantiating In a source file #include "CasHMCWrapper.h“ #include "Transaction.h" ... CasHMCWrapper *casHMCWrapper = new CasHMCWrapper(); ... TransactionType tranType = DATA_READ; uint64_t physicalAddress = 0x0123456789abcdef; unsigned dataSize = 32; Transaction *newTran = new Transaction(tranType, addr, dataSize, casHMCWrapper); casHMCWrapper->ReceiveTran(newTran); ...
About
Processing-in Memory Architecture for Multiply-Accumulate Operations with Hybrid Memory Cube
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published