Giter Site home page Giter Site logo

hoangt / marss Goto Github PK

View Code? Open in Web Editor NEW

This project forked from laproc/marss

0.0 2.0 0.0 28.22 MB

PTLsim and QEMU based Computer Architecture Research Simulator

Home Page: http://www.marss86.org

Python 1.81% Shell 0.10% C++ 20.25% C 76.09% Objective-C 0.18% Perl 0.38% Makefile 0.17% Haxe 0.66% Assembly 0.35% GDB 0.01%

marss's Introduction

MARSS-x86-i7: Micro-Architecture & System Simulator for x86-i7_920
==================================================================

Copyright 2010 Avadh Patel (apatel @ cs.binghamton.edu)
Copyright 2016 Mochamad Asri (asri @ utexas.edu)

Marss-x86 is a simulation tool for x86-64 based Computing Systems.  It is based
on two independent open-source projects QEMU (http://www.qemu.org/) and
PTLsim (http://www.ptlsim.org/).  Marss-x86 is developed at Computer
Architecture Group of SUNY Binghamton by Avadh Patel and other group Members.
You can find out more details about Marss go to (http://www.marss86.org/). 

This version of Marss-x86 has been calibrated to closely match an Intel
i7-920 micro-architecture targetting high-performance computing (HPC)
applications. Furthermore, The Linear Algebra Core/Processor (LAC/LAP) accelerator
[https://github.com/LAProc/LAP_SIM]
Copyright 2014 Ardavan Pedram ([email protected])
has been integrated into the system as a case study of heterogenous 
system architecture integration. These extensions were developed by 
Mochamad Asri at The University of Texas at Austin. 
For details, please refer to:

   Mochamad Asri, Ardavan Pedram, Lizy K. John, Andreas Gerstlauer,
   "Simulator Calibration for Accelerator-Rich Architecture Studies,"
   International Conference on Embedded Computer Systems: Architectures,
   Modeling and Simulation (SAMOS XVI), Samos, Greece, July 2016.

Future plans are aiming to add more functionality to LAC and develop  
integration of the accelerator in various levels of memory hierarchy.


System Requirements
-------------------
To compile Marss on your system, you will need following:
* 2.5GHz CPU with minimum 2GB RAM (4GB Preferred)
* Standard C++ compiler, like g++ or icc
* SCons tool for compiling Marss (Minimum version 1.2.0)
* SDL Development Libraries (Required for QEMU)


Compiling
---------
If you don't have SCons install, install it using your stanard application
installation program like apt-get or yum.

Once you have SCons install go to Marss directory and give following command:

    $ scons -Q 

Default compile disables debugging and logging functionalities, to compile with
logging functions enable give following command:

    $ scons -Q debug=1

Default compile process compile simulator for single-core configuration.  To
compile Marss for Multi-Core SMP configuration give following command:

    $ scons -Q c=[num_cores]

To clean your compilation:

    $ scons -Q -c

Running
-------
After successfull compilation, to run Marss you have to be in the root of Marss
source directory.  Then give the following command:

    $ qemu/qemu-system-x86_64 -m [memory_size] [path-to-qemu-disk-image]

You can use all the regular QEMU command here, like start VM window in VNC give
'vnc :10' etc.  Once the system is booted, you can switch to Monitor mode using
'Ctrl-Alt-2' key and give following command to switch to simulation mode:

    (qemu) simconfig -run -stopinsns 100m -stats [stats-file-name]

You can also save simulation configuration parameters into a config file and
pass that as argument when you start qemu with '-simconfig' option.

    $ qemu/qemu-system-x86_64 -m [memory_size] [path-to-qemu-disk-image] -simconfig [simulator-config-file]

To get the list of available simulation options give following command:

    (qemu) simconfig

It will print all the simulation options on STDOUT.


For more information on using and modifying Marss please visit our website :
    http://www.marss86.org/


*Additional info on calling accelerator from the user program : 
------------------
The LAC source code for Accelerator is in the /ptlsim/core/ directory

test_sample.cc gives an idea how The LAC/LAP (accelerator) is called from the user program.

In lines 118-139, the CPU offloads necessary data to LAP's space, 
triggers the matrix multiplication acceleration, then copies the results back to
the user program. 

If LAP is not needed, then the lines should be commented and 
the user should instead replace them with the call to matrix multiply function/library implementation. 
We will release the integrated library calls through libflame library in future versions.


Happy Hacking.

marss's People

Contributors

avadhpatel avatar dramninjasumd avatar fitzfitsahero avatar furatafram avatar perdavan avatar mocasr avatar stefanneumann avatar

Watchers

James Cloos avatar  avatar

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.