Homework 0: Pick your Poison and your Medicine

Sanjay Rajopadhye

The main goal of this class is to understand the mathematical foundations of the polyhedral model, a formalism that is used for program optimization in the broadest sense. The techniques are agnostic about the target, which may range from distributed memory parallel processors, shared-memory, multicore processors, GPUs, or even application specific VLSI. However, in order to drive the points home, you need to choose one. This semester, your choies are:

Remember, our goal is not to teach you the target. Rather, it is a prerequisite. What we will do with HW0 is to re-introduce and review this background for you. Moreover, we will also drive home the main point of the exercise: performance optimization. You need to pick the target (your medicine).

Systolic Sorter

This is a combination of a paper-and-pencil, analytical assignment, and a programming problem. For the first, you should write up your solution using LaTeX (see the Sprin 2012 Assignemnts page
and the files cs560-template.tex, cs560.bib, and plot.pdf for HW0.

Problem Statement

Recall the architecture of a P-processor sorter, used to sort N inputs. First consider the case when P=N, and then extend your analysis to the case for N=kP, where k is some integer (this case will require k passes through the array). Some questions to think of:

Second Problem: BlueSpec Implementation

Implement your design as BlueSpec design. Your circuit should be able to take p and n as parameters, and should implement both the interface module (in the Bluespec testbench) and also a verifier that actually checks for the correctness of ht inouts. Please test the circuit thoroughly.

Submit a tar file of your complete implementation including all the Makefiles needed for testing your system via email to Sanjay



Sanjay Rajopadhye 2012-07-09