GithubHelp home page GithubHelp logo

audio_pipeline_llvm-tracer's Introduction

CS 598 JT Course Project

This is the project for CS 598 JT in Fall 2020. It aims to analyze the power-performance tradeoff of the audio component in ILLIXR. This project is based on ILLIXR, LLVM-Tracer, and Aladdin.

Source Code

The output files generated from LLVM-Tracer are those end with llvm and s. The files in ./audio_pipeline/llvm-tracer-label-1/ and ./audio_pipeline/llvm-tracer-no-label/ are the stale ones we generated when doing this project.
The binary executable is also an output from the LLVM-Tracer. It is ./audio_pipeline/main-single.

Experiment Steps

The binary executable requires inputs for the number of input blocks and the operating mode. The operating mode includes encode and decode. For example, if you want to run audio encoding with 500 blocks, you should run

./audio_pipeline/main-single 500 encode

If your third input argument is not encode, it will do audio decoding automatically. If you do not have a third argument, it will perform encoding and then decoding.
The output of the above command is dynamic_trace.gz. This trace file should be further fed into Aladdin with configuration parameters. Then you should be able to see the power and timing values.
Since the function performance for each block is the same from Aladdin, we recommend to use small block sizes (e.g. 1 ~ 20). The corresponding trace sizes will also be small. If the trace size is very large (e.g. 1GB), the computer memory may be filled when Aladdin is generating the dynamic data dependence graph (DDDG).

Configuration Setup

The configuration files for Aladdin can be found in ./audio_pipeline/loopLabels.md and ./audio_pipeline/arraySizes.md.
In ./audio_pipeline/loopLabels.md, we give the loop informations on which function the loop belongs to and whether the loop should be unrolled or pipelined.
In ./audio_pipeline/arraySizes.md, we give the total sizes and the wordsize of the arrays. These can be used to do partition in the Aladdin configuration.

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.