Giter VIP home page Giter VIP logo

mfkiwl / konata Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shioyadan/konata

0.0 1.0 0.0 651 KB

Konata is an instruction pipeline visualizer for Onikiri2-Kanata/Gem5-O3PipeView formats. You can download the pre-built binaries from https://github.com/shioyadan/Konata/releases

License: BSD 3-Clause "New" or "Revised" License

JavaScript 72.01% Makefile 0.33% HTML 24.14% CSS 3.00% Dockerfile 0.19% VBScript 0.08% Shell 0.15% Batchfile 0.10%

konata's Introduction

Konata

  • Konata is an instruction pipeline visualizer for Onikiri2-Kanata/Gem5-O3PipeView formats.
  • ASPLOS 2018 learning gem5 tutorial presentation is here

demo

Installation

There are two ways to launch Konata. If you fail to launch a pre-built binary, please try the second way.

  1. Extract an archive and launch an executable file (konata.exe or konata).
    • Pre-built binaries are available from here.
  2. Launch from this repository.
    1. Install node.js from https://nodejs.org
    2. Clone this repository.
    3. Launch install.bat (Windows) or install.sh (Linux/MacOS).
    4. Launch Konata from konata.vbs (Windows) or konata.sh (Linux/MacOS).

Usage

Basic

  1. Generate a trace log from gem5 with the O3 CPU model
    $ ./build/ARM/gem5.opt \
        --debug-flags=O3PipeView \
        --debug-start=<first tick of interest> \
        --debug-file=trace.out \
        configs/example/se.py \
        --cpu-type=detailed \
        --caches -c <path to binary> \
        -m <last cycle of interest>
    
  2. Load a generated "trace.out" to Konata
    • from a menu in a window or using drag&drop
  3. If you use O3CPUAll as well as O3PipeView as follows, Konata shows more detailed CPU log and visualizes dependency between instructions.
    --debug-flags=O3PipeView,O3CPUAll
    

Keyboard

  • mouse wheel up, key up: scroll up
  • mouse wheel down, key down: scroll down
  • ctrl + mouse wheel up, key "+", ctrl+key up: zoom in
  • ctrl + mouse wheel down, key "-", ctrl+key down: zoom out
  • ctrl + f, F3, shift+F3: find a string
  • F1, ctrl+shift+p: open a command palette

Tips

  • If you miss pipelines in a right pane, you can move to pipelines by click "Adjust position" in a right-click menu.
  • You can visually compare two traces as follows:
    1. Load two trace files
    2. Right-click and select "Synchronized school" & "Transparent mode"
    3. Right-click and select a color scheme
    4. Move to another tab and adjust a position with the transparent mode
  • If you cannot launch Konata, try to install the following runtimes (or try to install the latest Google Chrome, because it uses the same runtimes).
    sudo apt install \
        libgconf2-4
        libgtk-3-0 \
        libxss1 \
        libgconf2-4 \
        libnss3 \
        libasound2 \
        libX11-xcb1 \
        libcanberra-gtk3-module
    
  • In O3CPUAll mode, Konata associates each line in trace.out with each instruction by tracking [sn:<serial number>]. If you output custom log with the above serial information, Konata shows your custom log.

Development

  • Install dependent runtimes as follows or use Dockerfile included in a source tree
    # Install node.js/npm
    sudo apt install nodejs
    
    # Install electron/electron-packager
    # Since electron is huge, they are installed globally.
    npm -g install electron
    npm -g install electron-packager
    
    # Run and build
    make init   # Setup libraries
    make        # Run Konata
    make pack   # Build & pack Konata for Windows/Linux/Mac
    

License

Copyright (C) 2016-2020 Ryota Shioya [email protected]

This application is released under the 3-Clause BSD License, see LICENSE.md. This application bundles ELECTRON and many third-party packages in accordance with the licenses presented in THIRD-PARTY-LICENSES.md.

konata's People

Contributors

powerjg avatar shioyadan avatar

Watchers

 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.