GithubHelp home page GithubHelp logo

alanyuchenhou / artificial-architect Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 756 KB

an artificial architect for on-chip network design automation

C++ 87.62% Python 4.42% TeX 7.89% Makefile 0.07%

artificial-architect's Introduction

artificial-architect

Artificial-architect is a Python program for autonomous on-chip network design optimization for a 64-core processor. It uses artificial intelligence techniques including local search and machine learning, as well as a on-chip network simulator. The optimization currently only focuses on the topology of the network, and the optimization goal is to reduce communication latency between network nodes and the power consumption of the network.

Here are a few things artificial-architect can do well:

  • Network features extraction: extract features including shortest path lengths, clustering coefficient, degree distribution, etc
  • Network metrics prediction: predict metrics including communication latency and power consumption based on design knowledge and design features
  • Design generation: generate new designs based on existing designs
  • User defined optimization objective: the user can trade high performance for low power and vise versa
  • Experiments capability: use a network simulator to carry out experiments to evaluate design metrics, extract and record experiments results
  • Learning: improve design knowledge based on experiment results using machine learning technique
  • Multiple benchmarks for quality evaluation: the quality of designs are evaluated on 8 different parallel computing benchmarks from many different areas such as computer vision, video encoding, financial analytics, animation physics and image processing
  • Data analysis and visualization: extract metrics and quality data from simulation record and plot the data
  • Parallel optimization: take advantage of multi-core and multi thread processing power of the workstation to boost design speed

The following packages are required

To install required packages, use the following command:

sudo pip install matplotlib simpleai scikit-learn networkx numpy scipy pandas

To get a copy of the source code, clone the git repository using the the following command:

git clone https://github.com/yuchenhou/artificial-architect.git

Edit file architect.py to specify what you want the architect to do. Then activate the architect:

./architect.py

On-chip network is an advanced communication system in modern chip designs. High design quality of on-chip network is always achieved through good trade-offs between many conflicting design features. However, design feature trade-off and design quality analysis become more difficult with the exponential growth of design complexity. Therefore, performing a large number simulations has become the primary method for many design optimization tasks. Also, simulation based design processes are time consuming because simulations are getting more expensive.

artificial-architect's People

Contributors

alanyuchenhou avatar yuchenhou avatar

Stargazers

 avatar

Watchers

 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.