DRAM Simulator
In order to run DRAMA, you must have python 3 with the following packages:
- os
- subprocess
- math
- configparser
- tqdm
- absl-py
In this folder you can find the full implementation of DRAMA linked to Scale-Sim.
Link to SCALE-Sim: https://github.com/ARM-software/SCALE-Sim
- Create a .cfg file inside 'configs' to define a new architecture for the network and DRAM. Architecture presets are used to define SCALE-Sim parameters, while DRAM preset are used to define DRAMA parameters.
- Create a .csv file inside 'topologies' to define the topology of the network, as used by SCALE-Sim.
- From within the 'DRAMA+ScaleSim' folder, run the following line:
Python3 scale.py -arch_config=<path to config> -network=<path to topology>
DRAMA outputs can be found under the path 'outputs/<run name>/DRAMA_stats
- <run name>_DRAMA_dram_stats.csv - general DRAM statistics grouped by network layer and DRAM channel.
- <run name>_<layer name>_DRAMA_dram_requests_trace.csv - cycle accurate DRAM request traces per network layer.
In this folder you can find an implementation of a channel instance which can be incorporated in your code, using 3 simple methods:
- init - used to instantiate a single channel
- request - used to send a read/write request to the channel
- incrementClock - used to increment the channel's internal clock to a desired time
Further documentation for these methods can be found in Channel.py