Code Monkey home page Code Monkey logo

hmctherm's Introduction

HMCTherm

HMCTherm: A Cycle-accurate Simulator for Hybrid Memory Cube with thermal analysis version HMCTherm v1.0 - 2018.04.25

1. Developer

Zhiyuan Yang
Ankur Srivastava
University of Maryland
zyyang [at] umd [dot] edu

2. About HMCTherm

HMCTherm is a comprehensive simulation framework for Stacked-Memory-on-CPU architecture. Given the architectural description of multi-core CPUs and HMCs, HMCTherm can simulate the 3D thermal profile (both transient and static) of the HMC when a certain program is running. The HMCTherm is built based on CasHMC v1.2 (https://github.com/estwings57/CasHMC) which takes memory traces as inputs and performs cycle-accurate simulation of HMC to get the delay, power and thermal information.

A grid-based thermal solver is integrated to HMCTherm which is based on SuperLU_MT (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). SuperLU is a general purpose library for the direct solution of large, sparse, nonsysmmetric systems of linear equations; and SuperLU_MT is a version that enables multi-threaded computation.

3. Folder Directory

  • sources : source files for the HMC simulator
  • Example : containing memory traces for the simulation
  • script : containing python scripts for ploting final power and thermal profiles

4. Usage

Dependency

The integrated grid-based thermal solver is based on SuperLU_MT. SuperLU_MT should be installed before installing HMCTemp. SuperLU_MT can be downloaded from http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ and following the instruction to install the library.

Installation

  • (1) install the architectural simulator
$ cd multi2sim_memtrace
$ make
  • (2) install McPAT
$ cd McPAT
$ make
  • (3) in the Makefile for the HMC simulator (under the root directory of HMCTherm), modify the SuperLUroot to where the SuperLU is installed in your local system

  • (4) install the HMC simulator

$ make 

Run your Simulation

  • (1) run the HMC simulator
$ cd $(HMCThermROOT)/
$ ./HMCTherm -c 400000 -t file -f ./Example/SPEC_CPU2006_example/mase_trace_bwaves_base.alpha.v0.trc -x 1024 -y 1024 -e 20000 -d ./ 

In this command:
-c indicates the number of CPU cycles to be simulated
-t indicates whether the input memory trace is from a file (file) or generated randomly (random)
-f if the memory trace is from a file, the trace file name is specified here
-x and -y specifies the size (in byte) of a "mat" which is the smallest unit of memory [Default 512]
-e is the time step to print out the transient temperature and power profile
-d specifies the directory saving the output files
-h will print out the help of the HMC simulator

The HMC simulation will generate five output files:
- /result/file.out : summary of the HMC latency
- temperature_trace.csv : the temperature traces for each time step
- power_trace.csv : the power traces for each time step
- Average_power.csv : the average power profile within the time of simulation
- static_temperature.csv : the static thermal profile given the average power

  • (2) Plot the power and temperature profile using the python scripts in $(HMCThermROOT)/script/
    • plot_trans.py : plot the transient power or temperature profile
    • plot_staticT.py : plot the static temperature profile
    • plot_staticP.py : plot the average power profile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.