mmalpha mmalpha: a tool box for silicon compilation patrice quinton, sanjay rajopadhye, tanguy...
Post on 01-Jan-2016
214 Views
Preview:
TRANSCRIPT
MMAlpha
MMAlpha: A tool box for silicon compilation
Patrice Quinton,Sanjay Rajopadhye,Tanguy RissetIRISA - Projet COSIhttp://www.irisa.fr/cosi/ALPHA
09/11/2000 Oxford: MMAlpha 2
presentation overview
Brief overview of MMAlpha
Running an example
Demonstrating the software
09/11/2000 Oxford: MMAlpha 3
What is MMAlpha?
A public domain silicon compiler for loop nests
FPGA
ASICVHDL
for i = 1 to n do
for k = 1 to m do
y[i,k] = y[i,k-1] + w[i,k]*x[i-k]
09/11/2000 Oxford: MMAlpha 4
Vhdl1
Alpha
UniformizationScheduling/Mapping
HDL derivation
MMAlpha
What is MMAlpha?
User controlled design process
Vhdl2Vhdl3
Design script easily reused
UniformizationScheduling/Mapping 2
HDL derivation
MMAlpha
09/11/2000 Oxford: MMAlpha 5
Target applications
Data intensive applications
Fir Adaptive LMS Kalman filtering
Signal processing Motion estimators
2D-filters
Multimedia
DNA sequencing
Bio-Informatics
09/11/2000 Oxford: MMAlpha 6
MMAlpha highlights
Compilation of loop nests to parallel circuits
for i = 1 to n do
for k = 1 to m do
y[i,k] = y[i,k-1] + w[i,k]*x[i-k]
by means of the polyhedral model
09/11/2000 Oxford: MMAlpha 7
UniformizationScheduling/Mapping
HDL derivation
MMAlpha
Alpha
MMAlpha highlights
Hierarchical design methodology
Alpha
09/11/2000 Oxford: MMAlpha 8
MMAlpha highlights
Multi-target output for co-design
VHDL
for i = 1 to n do
for k = 1 to m do
y[i,k] = y[i,k-1] + w[i,k]*x[i-k] C
09/11/2000 Oxford: MMAlpha 9
MMAlpha implementation
Open source software (GNU license)Mathematica + CEasily extensibleCurrent development:
Interface host/co-processor Prototyping real life applications (adaptive
filters, DNA sequence comparison) partitionning
09/11/2000 Oxford: MMAlpha 10
MMAlpha running exemple
SAMBA:
Hardware accelerator for DNA sequence comparison
09/11/2000 Oxford: MMAlpha 11
The algorithm
09/11/2000 Oxford: MMAlpha 12
The algorithm
Alignment matrix
09/11/2000 Oxford: MMAlpha 13
Samba: history
VLSI array built in 1995
128 systolic processor on 32 chips
09/11/2000 Oxford: MMAlpha 14
Equations
Recurrence
for one point of the matrix
M[i,j]
M[i-1,j]-8
M[i,j-1]-8
M[i-1,j-1]+MatchQ
09/11/2000 Oxford: MMAlpha 15
Alpha code (part 1)
system sequence: {X,Y| Y>X>2} (QS : {i| 1<= i <= X} of integer; DB : {j| 1<= j <= Y} of integer)returns (res : {j| 1<= j <= Y} of integer); varM: {i,j| 0<= i <= X; 0<= j <= Y} of integer;MatchQ: {i,j| 1<= i <= X; 1<= j <= Y} of integer;let ...
09/11/2000 Oxford: MMAlpha 16
Alpha code (part 2)
...letM[i,j]=case
{|i=0} | {|j=0}: 0[];{|i>0; j>0}: Max4(0[],
M[i,j-1]-8[], M[i-1,j]-8[],
M[i-1,j-1]+MatchQ[i,j]);MatchQ[i,j]=if (QS[i]=DB[j]) then 15[] else -12[];res[j]=M[X,j];tel;
09/11/2000 Oxford: MMAlpha 17
Iteration space
MatchQ[i,j]=if (QS[i]=DB[j]) then 15[] else -12[];
M[i,j]=case{|i=0} | {|j=0}: 0[];{|i>0; j>0}: Max4(0[], M[i,j-1]-8[],
M[i-1,j]-8[], M[i-1,j-1]+MatchQ[i,j]);esac;
09/11/2000 Oxford: MMAlpha 18
Uniformization (part 1)
09/11/2000 Oxford: MMAlpha 19
Uniformization (Part 2)
09/11/2000 Oxford: MMAlpha 20
Scheduling
09/11/2000 Oxford: MMAlpha 21
Mapping
09/11/2000 Oxford: MMAlpha 22
RTL derivation (control generation)
09/11/2000 Oxford: MMAlpha 23
RTL derivation (structuring)
09/11/2000 Oxford: MMAlpha 24
pipeline of the control
09/11/2000 Oxford: MMAlpha 25
Design flow summary
Matlab
Alpha
FPGA
ASIC
VHDL
Uniformization
RTL derivation
Scheduling
09/11/2000 Oxford: MMAlpha 26
What I did not talk about:in test
Z-polyhedral domain: {2i,3j+9i| 0<= i <= X; 0<= j <= Y}
Hardware-software interface Experiments on the Virtex XCV800
Starting from imperative code Use MatParser (Compaan project) to
translate Matlab into Alpha
09/11/2000 Oxford: MMAlpha 27
What I did not talk about:in development
Partitioning and memory …. Still not implemented
Bit width selection methodology in development for nested loop
programs.
Stronger semantic checks connection to PVS (theorem proover)
Hierarchical design
09/11/2000 Oxford: MMAlpha 28
Perspective for MMAlpha
Prototyping the tool for “real life” application
Provide support for use in Academic places
Industrial use? industrial development?
top related