Spl 100107093247-phpapp01

14
読んだ人: みよしたけふみ CITED BY 24 201018日金曜日

Transcript of Spl 100107093247-phpapp01

Page 1: Spl 100107093247-phpapp01

読んだ人: みよしたけふみ

CITED BY 242010年1月8日金曜日

Page 2: Spl 100107093247-phpapp01

Introduction• Signal Processing Language[8]

• to automate the implementation and optimization of signal processing algorithms

• The SPL compiler is a component of the SPIRAL system[13]

• searches through algorithm and implementation choices

• a template mechanism

• SPL is a descendent of the TPL[1]

• SPL programs are essentially mathematical formulas describing matrix factorizations

• Translating SPL into a program to compute the matrix-vector product of the matrix given by the SPL expression

2010年1月8日金曜日

Page 3: Spl 100107093247-phpapp01

the SPIRAL System

2010年1月8日金曜日

Page 4: Spl 100107093247-phpapp01

Contents

• INTRODUCTION

• SPL, MATRIX FACTORIZATIONS, AND FAST SIGNAL TRANSFORMS

• THE COMPILER

• EXPERIMENTS

• RELATED WORK

• CONCLUSION

2010年1月8日金曜日

Page 5: Spl 100107093247-phpapp01

Fast Signal Transformsこれをとにかく高速に計算したい

ex. 4-point DFT

2010年1月8日金曜日

Page 6: Spl 100107093247-phpapp01

Fast Signal Transforms

Step (1) is a stride permutation that can be performed in n operations.Step (2) computes two FFTs of size ~.Step (3) is the product of a diagonal matrix with a vector and therefore requires n operations. Step (4) requires 2 operations per row.

Cooley-Tukey FFT Algorithm

2010年1月8日金曜日

Page 7: Spl 100107093247-phpapp01

The SPL Language

2010年1月8日金曜日

Page 8: Spl 100107093247-phpapp01

SPL Language

2010年1月8日金曜日

Page 9: Spl 100107093247-phpapp01

The SPL Compiler

• Parsing

• Intermediate Code Generation

• Intermediate Code Restructuring

• Loop Unrolling

• Intrinsic function evaluation

• Type Transformation

• Compiler Optimization

• Target Code Generation

2010年1月8日金曜日

Page 10: Spl 100107093247-phpapp01

ExperimentsSmall Size FFTs

For a given FFT size, the number of operations generatedby the compiler is fixed, and the performance dependsexclusively on factors such as register allocation, memoryaccess pattern, and instruction scheduling.

2010年1月8日金曜日

Page 11: Spl 100107093247-phpapp01

ExperimentsLarge Size FFTs

used the best program resulting from the previous searchunder the assumption that a good formula for small sizeFFTs also could be a good sub-formula for larger size FFTs.It is possible we could have missed the actual best formulabut following this approach significantly reduced the searchspace and made the search for large-size FFTs possible;

メソッドとして 'estimate' を設定した場合、FFTW ライブラリは、ランタイムチューニングを使用せずに、アルゴリズムを選択します。そのため、選択されたアルゴリズムが最適ではない可能性もあります。

2010年1月8日金曜日

Page 12: Spl 100107093247-phpapp01

Experments

2010年1月8日金曜日

Page 13: Spl 100107093247-phpapp01

Experiments

2010年1月8日金曜日

Page 14: Spl 100107093247-phpapp01

RELATED WORK

• FFTW[5, 6]

• Walsh-Hadmard transform(WHT)[11]

• EXTENT[3]

• BLAS @ATLAS proj.[18]

• PHiPAC[2]

• Kisuki & Knijnenberg[12] - “iterative compilation”

2010年1月8日金曜日