Skip to content
/ vnoc20 Public

This is a flexible trace-driven cycle-accurate simulator for homogeneous NoCs. It has integrated Orion 2 power model as well as a simple GUI, useful for debugging and displaying routers congestion. In addition, it has frequency throttle and frequency boost based DVFS (dynamic voltage and frequency scaling) implemented at router level. It is mean…

Notifications You must be signed in to change notification settings

eigenpi/vnoc20

Repository files navigation

[email protected]
February 2014, Milwaukee WI


Synopsis
========

This is the VNOC 2.0 tool. VNOC is a versatile NOC simulator developed
on top of VNOC 1.0, which in turn was developed starting from "popnet". 

Main features:
-- It's mainly C++ code; clean and with lots of comments for you to
   be able to read/understand it easily. It's pretty fast.
-- It has a simple GUI. This GUI is a port/adaptation of the GUI of VPR tool.
   Note that if you run it with the GUI enabled the runtime is longer.
-- It can simulate several types of traffic, including: 
   uniform random, transpose, hotspot, and selfsimilar. 
   The selfsimilar traffic generation is done using the generator developed
   by Glen Kramer.
-- It has integrated Orion 2 and Orion 3 power models (both under the
   folder orion3/ because Orion 3 inlcudes Orion 2). So, it reports
   power consumption estimates too at the end of the simulation.
   Note however, that I use only Orion 2 because it's designed so that
   we can use it with activities at the level of each router in the NOC.
   This basically captures the effect of the actual traffic on power.
   Orion 3 only estimates the power of a single router, in isolation,
   and with activities at the "inputs" of the router assumed random and 
   uniform. Therefore, we cannot really use it for a whole NOC simulation.
   Orion 3 needs to be extended to be possible to be integrated
   like how people could do it with Orion 1 and Orion 2...
-- It has integrated frequency throttle and frequency boost capability
   to implement DVFS (dynamic voltage and frequency scaling) techniques.
   These techniques are studied and reported in this paper:
   [1] C. Ababei and N. Mastronarde, "Benefits and costs of prediction 
   based DVFS for NoCs at router level," SOCC 2014, Las Vegas NV, Sep. 2014.
   This DVFS "infrastructure" is easy to understand and should
   allow you to implement and study your own DVFS ideas...


Installation
============

VNOC 2.0 was developed on Linux Ubuntu 12.04 LTS (64 bit)

Before you compile and link, you need to install a few prerequisites
(required mainly by the GUI/fonts and the selfsimilar traffic generator).
In a terminal, do:
> sudo apt-get install ia32-libs 
> sudo apt-get install libx11-dev:i386
> sudo apt-get install gcc-multilib g++-multilib libxxf86vm-dev libglu1-mesa-dev libxft-dev

Then, also do (or edit your .bashrc accordingly directly):
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib32:/usr/lib32:/usr/lib/i386-linux-gnu 

To compile and link VNOC 2.0, expand the downloaded archive and:
1) Edit Makefile to reflect the location where you want to compile and link
2) In a terminal, type "make" inside vnoc2/

If everything went fine, you should see the executable "vnoc" created.


How to use vnoc
===============

Type "vnoc" at the command prompt to see the command-line arguments.

For examples of how to run vnoc, see the scripts under run_scripts/ folder.

Here are a few examples:

vnoc traffic: UNIFORM injection_rate: 0.015 do_dvfs: 0
vnoc traffic: UNIFORM injection_rate: 0.015 do_dvfs: 0 use_gui
vnoc traffic: SELFSIMILAR ary_size: 8 injection_rate: 0.010 cycles: 100000 do_dvfs: 0
vnoc traffic: SELFSIMILAR ary_size: 8 injection_rate: 0.010 cycles: 100000 do_dvfs: 1 use_boost: 0 hist_window: 50
vnoc traffic: SELFSIMILAR ary_size: 8 injection_rate: 0.010 cycles: 100000 do_dvfs: 1 use_boost: 1 hist_window: 50


Additional notes
================

This is regarding the use of the Orion 2.0 power models.
Currently, the default values for the input and output buffer
sizes of the actual NOC simulator are set such that they match
those from the source code of Orion 2.0.
If you change - thru the available arguments of "vnoc" the buffer
sizes - then, the power estimations reported at the end will most
likely reflect values that are innacurate...

If you want to run the simulator "vnoc" for different buffer sizes,
you should first, MANUALLY, go and edit orion3/SIM_port.h to reflect
the new buffer sizes and then recompile the Orion 2 power model
as well as recompile "vnoc". You can do just by: change SIM_port.h,
then delete all object files .o from vnoc2/ and from vnoc2/orion3/,
then finally type make inside vnoc2/. This will compile everything
and recreate the power model as well as "vnoc" executable.

TODO:
This whole shebang of doing things with Orion power models should be 
automated, so that user does not go thru this pain of changing
source code and then recompiling... It's doable but takes time...


Even more notes
===============

If you use vnoc in your research and would like to provide a citation,
please use this reference:
[1] C. Ababei and N. Mastronarde, "Benefits and costs of prediction 
    based DVFS for NoCs at router level," SOCC 2014, Las Vegas NV, Sep. 2014.

If you find any bug or have any suggestions please let me know. Thank you!


Credits are due to
==================

-- Li Shang (while at Princeton) developed "popnet" from which I 
   developed VNOC 1.0. Original source code of popnet is not available
   online anymore...
-- Vaughn Betz (of Univ. of Toronto) developed much of the GUI
   as part of his famous VPR tool:
   https://www.eecg.toronto.edu/~vaughn/vpr/vpr.html
-- Glen Kramer for the Generator of Self-Similar Network Traffic (version 2);
   https://glenkramer.com/ucdavis/code/trf_gen2.html


Copyright
=========
Copyright 2014 by Cristinel (Cris) Ababei, [email protected]
This Copyright notice applies to all files, called hereafter 
"The Software".
Permission to use, copy, and modify this software and its 
documentation is hereby granted only under the following 
terms and conditions.  Both the above copyright notice and 
this permission notice must appear in all copies of the 
software, derivative works or modified versions, and any 
portions thereof, and both notices must appear in supporting 
documentation.  Permission is granted only for non-commercial 
use.  For commercial use, please contact the author.
This software may be distributed (but not offered for sale 
or transferred for compensation) to third parties, provided 
such third parties agree to abide by the terms and conditions
of this notice.
The Software is provided "as is", and the authors, 
Marquette University, as well as any and all previous 
authors (of portions or modified portions of the software) 
disclaim all warranties with regard to this software, 
including all implied warranties of merchantability
and fitness.  In no event shall the authors or Marquette University 
or any and all previous authors be liable for any special, direct, 
indirect, or consequential damages or any damages whatsoever
resulting from loss of use, data or profits, whether in an
action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance
of this software.

About

This is a flexible trace-driven cycle-accurate simulator for homogeneous NoCs. It has integrated Orion 2 power model as well as a simple GUI, useful for debugging and displaying routers congestion. In addition, it has frequency throttle and frequency boost based DVFS (dynamic voltage and frequency scaling) implemented at router level. It is mean…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published