Code Monkey home page Code Monkey logo

cgra-systemc's Introduction

cgra-systemc

SystemC implementation of a parameterizable CGRA

Build Status

Build

The architecture is designed in SystemC. It is compiled with different Linux distributions like Debian, Ubuntu or OpenSuse. The CMakeLists.txt contains an automatic mechanism to find the SystemC dependencies. Therefore please provide SYSTEMC_ROOT environment variable to point to the root directory of your SystemC installation.

Architecture variants

  • VCGRA: A processing system acts directly with an accelerator (VCGRA). The virtual CGRA consists of processing elements and virtual channels. The processing system needs to control the calculation the whole runtime.
  • VCGRA & Pre-Fetchers: A processing systems is has access to configuration pre-fetchers for processing elements and virtual channels to prepare runtime configurations for the VCGRA before switching.
  • Full Architecture: The full architecture is an accelerator with a Central Control Unit, a Memory Management Unit, pre-fetchers for configurations, input and output data and a shared scratchpad memory between the accelerator and the processing system. The Central Control Unit is programmable with a special assembler and can work autark with data stored at the shared memory. The processing system does not need to perform any control during processing of data of the VCGRA accelerator architecture. The VCGRA assembler is available here.

Evaluation

Demo

Evaluation is performed processing an edge detection of an image of Lena. The configuration files for McPAT are stored in the repository in the mcpat directory. An adapted version of McPAT is necessary to overcome the limitations of McPAT that is meanly created to simulate big multicore systems. Because of this limitations this is a very rough estimation for area and power.

Evaluation Results

VCGRA VCGRA
&
Pre-Fetchers
Full
Architecture
Simulation
Time [ms]
784 446 532
Execution Cycles 3920881 2229665 2660805
Area Chip [mm^2] 0.634446 0.650449 0.722449
Area Processing Elements
[mm^2]
0.560303 0.560303 0.560303
Area Virtual Channels
[mm^2]
0.0391092 0.0391092 0.0391092
Area Synchronization Unit
[mm^2]
0.035034 0.035034 0.035034
Area Pre-Fetchers [mm^2] - 0.016003 0.015885
Area Central Control Unit
[mm^2]
- - 0.035019
Area Memory Management Unit
[mm^2]
- - 0.0370991
Peak Power Consumption Chip [mW] 342 345 371

cgra-systemc's People

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.