Skip to content
zwabbit edited this page Sep 17, 2014 · 45 revisions

NOTE: SOURCE CODE IS IN THE PROCESS OF BEING ORGANIZED FOR RELEASE, THIS IS PRELIMINARY DOCUMENTATION

Background

MIAOW (pronounced me-ow) is an open source GPU created by the Vertical Research Group at the University of Wisconsin-Madison led by Professor Karu Sankaralingam. Based off of the publicly released Southern Islands ISA by AMD, MIAOW implements a compute unit suitable for performing architecture analysis and experimentation with GPGPU workloads. In addition to the Verilog HDL composing the compute unit, MIAOW also includes a suite of unit tests and benchmarks for regression testing.

A primary motivator for MIAOW's creation is the belief that software simulators of hardware such as CPUs and GPUs often miss many subtle aspects that can skew the performance, power, and other quantitative results that they produce. As an actual implementation of a GPU's logic, the Vertical Research Group believes that MIAOW can be a useful tool in producing not only more accurate quantitative results when benchmarking GPGPU workloads but also provide context for the architectural complexities of actually implementing newly proposed algorithms and designs that are intended to improve performance or other desired characteristics.

It must be emphasized that MIAOW represents a GPU's compute unit. It does not possess the auxiliary logic required to produce actual graphical output nor does it have logic to connect it to a specific memory interface or system bus. These extensions can be developed and we would welcome outside contributors for such efforts, but as MIAOW was created as a research tool their presence was not an absolute necessity in running benchmarks and experiments.

MIAOW is licensed under the 3-clause BSD license.

Release Content

MIAOW is being released in phases as we complete the necessary preparation and packaging. Be sure to check this section to see what has been made available and what we hope to make available in the near future.

Available

  • RTL implementation of MIAOW GPU
  • Testbench for verification
  • Benchmarks (instruction and data traces) that are known to run on MIAOW (derived from AMD APP SDK)
  • FPGA bootstrapping framework

Future

  • Synthesis scripts for area and power analysis
  • Patch for multi2sim simulator to generate instruction traces

Documentation

MIAOW can be used under a variety of situations, some straightforward and others not so. Documentation is split across both this wiki as well as third party links where relevant.

Basic

Usage

The below documentation is organized based on complexity of the use case.

  • Bringup and Verification - Setup of a MIAOW build and running of tests to verify that synthesis was successful.
  • Extension and Verification - Extending MIAOW to support additional instructions and how to generate unit tests for the new functionality.
  • Neko - FPGA bringup of MIAOW.

Design Documents

Research

Credits

  • Raghuraman Balasubramanian
  • Mario Paulo Drumond
  • Vinay Gangadhar
  • Ziliang Guo
  • Chen-Han Ho
  • Cherin Joseph
  • Jaikrishnan Menon
  • Robin Paul
  • Sharath Prasad
  • Pradip Vallathol

We would also like to thank Professor Sankaralingam for shepherding this project and showing the patience to see it to fruition.

Clone this wiki locally