Tackling Parallelism With Symbolic Computation

Size: px
Start display at page:

Download "Tackling Parallelism With Symbolic Computation"

Transcription

1 Tackling Parallelism With Symbolic Computation Markus Püschel and the Spiral team (only part shown) With: Franz Franchetti Yevgen Voronenko Electrical and Computer Engineering Carnegie Mellon University This work was supported by DARPA, NSF-NGS/ITR,ACR,CPA, Intel, Mercury, National Instruments

2 The Problem: Example DFT Discrete Fourier Transform (DFT) on 2xCore2Duo 3 GHz (single precision) Performance [Gflop/s] Best code x x Numerical recipes ,024 2,048 4,096 8,192 16,384 32,768 65, , ,144 input size Standard desktop computer, vendor compiler, using optimization flags All implementations have roughly the same operations count 4nlog 2 (n) Maybe the DFT is just difficult?

3 Evolution of Processors (Intel) Era of parallelism High performance library development becomes increasingly difficult

4 DFT Plot: Analysis Multiple threads: 2x Memory hierarchy: 5x Vector instructions: 3x High performance library development has become a nightmare

5 Organization Spiral: Brief overview Parallelization using symbolic computation Conclusion

6 Spiral Library generator for linear transforms (DFT, DCT, DWT, filters,.) and recently more Wide range of platforms supported: scalar, fixed point, vector, parallel, Verilog Research Goal: Teach computers to write fast libraries Complete automation of implementation and optimization Conquer the high algorithm level for automation When a new platform comes out: Regenerate a retuned library When a new platform paradigm comes out (e.g., multicore): Update the tool and then regenerate library

7 Search How Spiral Works Spiral: Complete automation of the implementation and optimization task Basic ideas: Declarative representation of algorithms Rewriting systems to generate and optimize algorithms at a high level of abstraction Problem specification (transform) Algorithm Generation Algorithm Optimization algorithm Implementation Code Optimization C code Compilation Compiler Optimizations Fast executable controls controls performance Spiral

8 Linear Transforms Mathematically: Matrix-vector multiplication Output vector Transform = matrix Input vector Example: Discrete Fourier transform (DFT)

9 Transform Algorithms: Example 4-point FFT Cooley/Tukey fast Fourier transform (FFT): j 1 j j 1 j 1 1 j Fourier transform Diagonal matrix (twiddles) Kronecker product Identity Permutation Algorithms are divide-and-conquer: Breakdown rules Mathematical, declarative representation: SPL (signal processing language) SPL describes the structure of the dataflow

10 Breakdown Rules (>200 for >50 Transforms) Combining these rules yields many algorithms for every given transform

11 SPL to Sequential Code Example: tensor product Correct code: easy fast code: very difficult

12 Program Generation in Spiral (Sketched) Transform user specified Fast algorithm in SPL many choices -SPL: Optimization at all abstraction levels parallelization vectorization loop optimizations C Code: Iteration of this process constant folding to search for the fastest scheduling But that s not all

13 SPL to Shared Memory Code: Basic Idea Key construct: Tensor product p-way embarrassingly parallel, load-balanced x A A A A y Processor 0 Processor 1 Processor 2 Processor 3 Problematic construct: Permutations produce false sharing x y cacheline boundaries Task: Rewrite formulas to extract tensor product + avoid false sharing

14 Step 1: Shared Memory Tags Identify crucial hardware parameters Number of processors: p Cache line size: μ Introduce them as tags in SPL This means: SPL formula (algorithm) A is to be optimized for p processors and cache line size μ

15 Step 2: Identify Good Formulas Load balanced, avoiding false sharing Tagged operators (no further rewriting necessary) Definition: A formula is fully optimized for (p, μ) if it is one of the above or of the form where A and B are fully optimized

16 Step 3: Identify Rewriting Rules Goal: Transform formulas into fully optimized formulas Formulas rewritten, tags propagated There may be choices

17 Parallelization by Rewriting Fully optimized (load-balanced, no false sharing) in the sense of our definition

18 Same Approach for Different Paradigms Threading: Vectorization: GPUs: Verilog for FPGAs: Rigorous, correct by construction Overcomes compiler limitations

19 Example Result: DFT on Intel Multicore Computer generated code: Up to 4 threads, 2-way vectorized, optimized for the memory hierarchy Faster than any hand-written code Similar results for other transforms and computing platforms

20 Same Approach Beyond Transforms Matrix-Matrix Multiplication Viterbi Decoder = convolutional encoder Viterbi decoder JPEG 2000 (Wavelet, EBCOT) Synthetic Aperture Radar (SAR) DWT quantization entropy coding (EBCOT + MQ) preprocessing matched filtering interpolation 2D ifft

21 Conclusion Spiral: Successful approach to automate the development of performance libraries Commercially used by Intel void dft64(float *Y, float *X) { m512 U912, U913, U914, U915,... m512 *a2153, *a2155; a2153 = (( m512 *) X); s1107 = *(a2153); s1108 = *((a )); t1323 = _mm512_add_ps(s1107,s1108); t1324 = _mm512_sub_ps(s1107,s1108); <many more lines> U926 = _mm512_swizupconv_r32( ); s1121 = _mm512_madd231_ps(_mm512_mul_ps(_mm512_mask_or_pi( _mm512_set_1to16_ps( ),0xaaaa,a2154,u926),t1341), _mm512_mask_sub_ps(_mm512_set_1to16_ps( ), ), _mm512_swizupconv_r32(t1341,_mm_swiz_reg_cdab)); U927 = _mm512_swizupconv_r32 <many more lines> } Key idea: Symbolic computation Domain specific declarative mathematical language Difficult optimizations through rewriting

Parallelism in Spiral

Parallelism in Spiral Parallelism in Spiral Franz Franchetti and the Spiral team (only part shown) Electrical and Computer Engineering Carnegie Mellon University Joint work with Yevgen Voronenko Markus Püschel This work was

More information

SPIRAL Generated Modular FFTs *

SPIRAL Generated Modular FFTs * SPIRAL Generated Modular FFTs * Jeremy Johnson Lingchuan Meng Drexel University * The work is supported by DARPA DESA, NSF, and Intel. Material for SPIRAL overview provided by Franz Francheti, Yevgen Voronenko,,

More information

Generating Parallel Transforms Using Spiral

Generating Parallel Transforms Using Spiral Generating Parallel Transforms Using Spiral Franz Franchetti Yevgen Voronenko Markus Püschel Part of the Spiral Team Electrical and Computer Engineering Carnegie Mellon University Sponsors: DARPA DESA

More information

How to Write Fast Code , spring rd Lecture, Apr. 9 th

How to Write Fast Code , spring rd Lecture, Apr. 9 th How to Write Fast Code 18-645, spring 2008 23 rd Lecture, Apr. 9 th Instructor: Markus Püschel TAs: Srinivas Chellappa (Vas) and Frédéric de Mesmay (Fred) Research Project Current status Today Papers due

More information

Spiral. Computer Generation of Performance Libraries. José M. F. Moura Markus Püschel Franz Franchetti & the Spiral Team. Performance.

Spiral. Computer Generation of Performance Libraries. José M. F. Moura Markus Püschel Franz Franchetti & the Spiral Team. Performance. Spiral Computer Generation of Performance Libraries José M. F. Moura Markus Püschel Franz Franchetti & the Spiral Team Platforms Performance Applications What is Spiral? Traditionally Spiral Approach Spiral

More information

SPIRAL Overview: Automatic Generation of DSP Algorithms & More *

SPIRAL Overview: Automatic Generation of DSP Algorithms & More * SPIRAL Overview: Automatic Generation of DSP Algorithms & More * Jeremy Johnson (& SPIRAL Team) Drexel University * The work is supported by DARPA DESA, NSF, and Intel. Material for presentation provided

More information

System Demonstration of Spiral: Generator for High-Performance Linear Transform Libraries

System Demonstration of Spiral: Generator for High-Performance Linear Transform Libraries System Demonstration of Spiral: Generator for High-Performance Linear Transform Libraries Yevgen Voronenko, Franz Franchetti, Frédéric de Mesmay, and Markus Püschel Department of Electrical and Computer

More information

Spiral: Program Generation for Linear Transforms and Beyond

Spiral: Program Generation for Linear Transforms and Beyond Spiral: Program Generation for Linear Transforms and Beyond Franz Franchetti and the Spiral team (only part shown) ECE, Carnegie Mellon University www.spiral.net Co-Founder, SpiralGen www.spiralgen.com

More information

Joint Runtime / Energy Optimization and Hardware / Software Partitioning of Linear Transforms

Joint Runtime / Energy Optimization and Hardware / Software Partitioning of Linear Transforms Joint Runtime / Energy Optimization and Hardware / Software Partitioning of Linear Transforms Paolo D Alberto, Franz Franchetti, Peter A. Milder, Aliaksei Sandryhaila, James C. Hoe, José M. F. Moura, Markus

More information

Formal Loop Merging for Signal Transforms

Formal Loop Merging for Signal Transforms Formal Loop Merging for Signal Transforms Franz Franchetti Yevgen S. Voronenko Markus Püschel Department of Electrical & Computer Engineering Carnegie Mellon University This work was supported by NSF through

More information

How to Write Fast Code , spring st Lecture, Jan. 14 th

How to Write Fast Code , spring st Lecture, Jan. 14 th How to Write Fast Code 18-645, spring 2008 1 st Lecture, Jan. 14 th Instructor: Markus Püschel TAs: Srinivas Chellappa (Vas) and Frédéric de Mesmay (Fred) Today Motivation and idea behind this course Technicalities

More information

Automatic Performance Tuning and Machine Learning

Automatic Performance Tuning and Machine Learning Automatic Performance Tuning and Machine Learning Markus Püschel Computer Science, ETH Zürich with: Frédéric de Mesmay PhD, Electrical and Computer Engineering, Carnegie Mellon PhD and Postdoc openings:

More information

Computer Generation of IP Cores

Computer Generation of IP Cores A I n Computer Generation of IP Cores Peter Milder (ECE, Carnegie Mellon) James Hoe (ECE, Carnegie Mellon) Markus Püschel (CS, ETH Zürich) addfxp #(16, 1) add15282(.a(a69),.b(a70),.clk(clk),.q(t45)); addfxp

More information

SPIRAL: A Generator for Platform-Adapted Libraries of Signal Processing Algorithms

SPIRAL: A Generator for Platform-Adapted Libraries of Signal Processing Algorithms SPIRAL: A Generator for Platform-Adapted Libraries of Signal Processing Algorithms Markus Püschel Faculty José Moura (CMU) Jeremy Johnson (Drexel) Robert Johnson (MathStar Inc.) David Padua (UIUC) Viktor

More information

FFT Program Generation for the Cell BE

FFT Program Generation for the Cell BE FFT Program Generation for the Cell BE Srinivas Chellappa, Franz Franchetti, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University Pittsburgh PA 15213, USA {schellap, franzf,

More information

Automatic Performance Tuning. Jeremy Johnson Dept. of Computer Science Drexel University

Automatic Performance Tuning. Jeremy Johnson Dept. of Computer Science Drexel University Automatic Performance Tuning Jeremy Johnson Dept. of Computer Science Drexel University Outline Scientific Computation Kernels Matrix Multiplication Fast Fourier Transform (FFT) Automated Performance Tuning

More information

Algorithms and Computation in Signal Processing

Algorithms and Computation in Signal Processing Algorithms and Computation in Signal Processing special topic course 8-799B spring 25 24 th and 25 th Lecture Apr. 7 and 2, 25 Instructor: Markus Pueschel TA: Srinivas Chellappa Research Projects Presentations

More information

Computer Generation of Hardware for Linear Digital Signal Processing Transforms

Computer Generation of Hardware for Linear Digital Signal Processing Transforms Computer Generation of Hardware for Linear Digital Signal Processing Transforms PETER MILDER, FRANZ FRANCHETTI, and JAMES C. HOE, Carnegie Mellon University MARKUS PÜSCHEL, ETH Zurich Linear signal transforms

More information

A SIMD Vectorizing Compiler for Digital Signal Processing Algorithms Λ

A SIMD Vectorizing Compiler for Digital Signal Processing Algorithms Λ A SIMD Vectorizing Compiler for Digital Signal Processing Algorithms Λ Franz Franchetti Applied and Numerical Mathematics Technical University of Vienna, Austria franz.franchetti@tuwien.ac.at Markus Püschel

More information

Automatic Generation of the HPC Challenge's Global FFT Benchmark for BlueGene/P

Automatic Generation of the HPC Challenge's Global FFT Benchmark for BlueGene/P Automatic Generation of the HPC Challenge's Global FFT Benchmark for BlueGene/P Franz Franchetti 1, Yevgen Voronenko 2, Gheorghe Almasi 3 1 University and SpiralGen, Inc. 2 AccuRay, Inc., 3 IBM Research

More information

Statistical Evaluation of a Self-Tuning Vectorized Library for the Walsh Hadamard Transform

Statistical Evaluation of a Self-Tuning Vectorized Library for the Walsh Hadamard Transform Statistical Evaluation of a Self-Tuning Vectorized Library for the Walsh Hadamard Transform Michael Andrews and Jeremy Johnson Department of Computer Science, Drexel University, Philadelphia, PA USA Abstract.

More information

How to Write Fast Numerical Code

How to Write Fast Numerical Code How to Write Fast Numerical Code Lecture: Autotuning and Machine Learning Instructor: Markus Püschel TA: Gagandeep Singh, Daniele Spampinato, Alen Stojanov Overview Rough classification of autotuning efforts

More information

Automatic Performance Programming?

Automatic Performance Programming? A I n Automatic Performance Programming? Markus Püschel Computer Science m128i t3 = _mm_unpacklo_epi16(x[0], X[1]); m128i t4 = _mm_unpackhi_epi16(x[0], X[1]); m128i t7 = _mm_unpacklo_epi16(x[2], X[3]);

More information

Library Generation For Linear Transforms

Library Generation For Linear Transforms Library Generation For Linear Transforms Yevgen Voronenko May RS RS 3 RS RS RS RS 7 RS 5 Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Electrical

More information

SPIRAL, FFTX, and the Path to SpectralPACK

SPIRAL, FFTX, and the Path to SpectralPACK SPIRAL, FFTX, and the Path to SpectralPACK Franz Franchetti Carnegie Mellon University www.spiral.net In collaboration with the SPIRAL and FFTX team @ CMU and LBL This work was supported by DOE ECP and

More information

Operator Language: A Program Generation Framework for Fast Kernels

Operator Language: A Program Generation Framework for Fast Kernels Operator Language: A Program Generation Framework for Fast Kernels Franz Franchetti, Frédéric de Mesmay, Daniel McFarlin, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University

More information

FFT Program Generation for Shared Memory: SMP and Multicore

FFT Program Generation for Shared Memory: SMP and Multicore FFT Program Generation for Shared Memory: SMP and Multicore Franz Franchetti, Yevgen Voronenko, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University Abstract The chip maker

More information

How to Write Fast Numerical Code

How to Write Fast Numerical Code How to Write Fast Numerical Code Lecture: Cost analysis and performance Instructor: Markus Püschel TA: Alen Stojanov, Georg Ofenbeck, Gagandeep Singh Technicalities Research project: Let us know (fastcode@lists.inf.ethz.ch)

More information

SPIRAL: Code Generation for DSP Transforms

SPIRAL: Code Generation for DSP Transforms PROCEEDINGS OF THE IEEE SPECIAL ISSUE ON PROGRAM GENERATION, OPTIMIZATION, AND ADAPTATION 1 SPIRAL: Code Generation for DSP Transforms Markus Püschel, José M. F. Moura, Jeremy Johnson, David Padua, Manuela

More information

How to Write Fast Numerical Code

How to Write Fast Numerical Code How to Write Fast Numerical Code Lecture: Cost analysis and performance Instructor: Markus Püschel TA: Gagandeep Singh, Daniele Spampinato & Alen Stojanov Technicalities Research project: Let us know (fastcode@lists.inf.ethz.ch)

More information

FFT Program Generation for Shared Memory: SMP and Multicore

FFT Program Generation for Shared Memory: SMP and Multicore FFT Program Generation for Shared Memory: SMP and Multicore Franz Franchetti, Yevgen Voronenko, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University {franzf, yvoronen, pueschel@ece.cmu.edu

More information

Scheduling FFT Computation on SMP and Multicore Systems Ayaz Ali, Lennart Johnsson & Jaspal Subhlok

Scheduling FFT Computation on SMP and Multicore Systems Ayaz Ali, Lennart Johnsson & Jaspal Subhlok Scheduling FFT Computation on SMP and Multicore Systems Ayaz Ali, Lennart Johnsson & Jaspal Subhlok Texas Learning and Computation Center Department of Computer Science University of Houston Outline Motivation

More information

Mixed Data Layout Kernels for Vectorized Complex Arithmetic

Mixed Data Layout Kernels for Vectorized Complex Arithmetic Mixed Data Layout Kernels for Vectorized Complex Arithmetic Doru T. Popovici, Franz Franchetti, Tze Meng Low Department of Electrical and Computer Engineering Carnegie Mellon University Email: {dpopovic,

More information

Computer Generation of Fast Fourier Transforms for the Cell Broadband Engine

Computer Generation of Fast Fourier Transforms for the Cell Broadband Engine Computer Generation of Fast Fourier Transforms for the Cell Broadband Engine Srinivas Chellappa schellap@ece.cmu.edu Franz Franchetti franzf@ece.cmu.edu Department of Electrical and Computer Engineering

More information

Optimal Performance Numerical Code Challenges and Solutions

Optimal Performance Numerical Code Challenges and Solutions Optimal Performance Numerical Code Challenges and Solutions Markus Püschel Picture: www.tapety-na-pulpit.org Scientific Computing Physics/biology simulations Consumer Computing Audio/image/video processing

More information

Computer Generation of Efficient Software Viterbi Decoders

Computer Generation of Efficient Software Viterbi Decoders Computer Generation of Efficient Software Viterbi Decoders Frédéric de Mesmay, Srinivas Chellappa, Franz Franchetti, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University Pittsburgh

More information

How to Write Fast Numerical Code

How to Write Fast Numerical Code How to Write Fast Numerical Code Lecture: Memory hierarchy, locality, caches Instructor: Markus Püschel TA: Alen Stojanov, Georg Ofenbeck, Gagandeep Singh Organization Temporal and spatial locality Memory

More information

How to Write Fast Code , spring th Lecture, Mar. 31 st

How to Write Fast Code , spring th Lecture, Mar. 31 st How to Write Fast Code 18-645, spring 2008 20 th Lecture, Mar. 31 st Instructor: Markus Püschel TAs: Srinivas Chellappa (Vas) and Frédéric de Mesmay (Fred) Introduction Parallelism: definition Carrying

More information

Stochastic Search for Signal Processing Algorithm Optimization

Stochastic Search for Signal Processing Algorithm Optimization Stochastic Search for Signal Processing Algorithm Optimization Bryan Singer Manuela Veloso May, 01 CMU-CS-01-137 School of Computer Science Carnegie Mellon University Pittsburgh, PA 1213 Abstract Many

More information

Automated Code Generation for High-Performance, Future-Compatible Graph Libraries

Automated Code Generation for High-Performance, Future-Compatible Graph Libraries Research Review 2017 Automated Code Generation for High-Performance, Future-Compatible Graph Libraries Dr. Scott McMillan, Senior Research Scientist CMU PI: Prof. Franz Franchetti, ECE 2017 Carnegie Mellon

More information

Formal Loop Merging for Signal Transforms

Formal Loop Merging for Signal Transforms Formal Loop Merging for Signal Transforms Franz Franchetti Yevgen Voronenko Markus Püschel Department of Electrical and Computer Engineering Carnegie Mellon University {franzf, yvoronen, pueschel}@ece.cmu.edu

More information

Program Generation, Optimization, and Adaptation: SPIRAL and other efforts

Program Generation, Optimization, and Adaptation: SPIRAL and other efforts Program Generation, Optimization, and Adaptation: SPIRAL and other efforts Markus Püschel Electrical and Computer Engineering University SPIRAL Team: José M. F. Moura (ECE, CMU) James C. Hoe (ECE, CMU)

More information

A Multi-core High Performance Computing Framework for Distribution Power Flow

A Multi-core High Performance Computing Framework for Distribution Power Flow Carnegie Mellon University Research Showcase @ CMU Department of Electrical and Computer Engineering Carnegie Institute of Technology 8-2011 A Multi-core High Performance Computing Framework for Distribution

More information

Generating SIMD Vectorized Permutations

Generating SIMD Vectorized Permutations Generating SIMD Vectorized Permutations Franz Franchetti and Markus Püschel Electrical and Computer Engineering, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213 {franzf, pueschel}@ece.cmu.edu

More information

Automating the Modeling and Optimization of the Performance of Signal Transforms

Automating the Modeling and Optimization of the Performance of Signal Transforms IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL. 50, NO. 8, AUGUST 2002 2003 Automating the Modeling and Optimization of the Performance of Signal Transforms Bryan Singer and Manuela M. Veloso Abstract Fast

More information

Advanced Computing Research Laboratory. Adaptive Scientific Software Libraries

Advanced Computing Research Laboratory. Adaptive Scientific Software Libraries Adaptive Scientific Software Libraries and Texas Learning and Computation Center and Department of Computer Science University of Houston Challenges Diversity of execution environments Growing complexity

More information

How to Write Fast Numerical Code

How to Write Fast Numerical Code How to Write Fast Numerical Code Lecture: Memory hierarchy, locality, caches Instructor: Markus Püschel TA: Daniele Spampinato & Alen Stojanov Left alignment Attractive font (sans serif, avoid Arial) Calibri,

More information

DFT Compiler for Custom and Adaptable Systems

DFT Compiler for Custom and Adaptable Systems DFT Compiler for Custom and Adaptable Systems Paolo D Alberto Electrical and Computer Engineering Carnegie Mellon University Personal Research Background Embedded and High Performance Computing Compiler:

More information

Introduction to GPU computing

Introduction to GPU computing Introduction to GPU computing Nagasaki Advanced Computing Center Nagasaki, Japan The GPU evolution The Graphic Processing Unit (GPU) is a processor that was specialized for processing graphics. The GPU

More information

Generating Optimized Fourier Interpolation Routines for Density Functional Theory using SPIRAL

Generating Optimized Fourier Interpolation Routines for Density Functional Theory using SPIRAL Generating Optimized Fourier Interpolation Routines for Density Functional Theory using SPIRAL Doru Thom Popovici, Francis P. Russell, Karl Wilkinson, Chris-Kriton Skylaris Paul H. J. Kelly and Franz Franchetti

More information

Compression of RADARSAT Data with Block Adaptive Wavelets Abstract: 1. Introduction

Compression of RADARSAT Data with Block Adaptive Wavelets Abstract: 1. Introduction Compression of RADARSAT Data with Block Adaptive Wavelets Ian Cumming and Jing Wang Department of Electrical and Computer Engineering The University of British Columbia 2356 Main Mall, Vancouver, BC, Canada

More information

Index. 1. Motivation 2. Background 3. JPEG Compression The Discrete Cosine Transformation Quantization Coding 4. MPEG 5.

Index. 1. Motivation 2. Background 3. JPEG Compression The Discrete Cosine Transformation Quantization Coding 4. MPEG 5. Index 1. Motivation 2. Background 3. JPEG Compression The Discrete Cosine Transformation Quantization Coding 4. MPEG 5. Literature Lossy Compression Motivation To meet a given target bit-rate for storage

More information

Bandit-Based Optimization on Graphs with Application to Library Performance Tuning

Bandit-Based Optimization on Graphs with Application to Library Performance Tuning Bandit-Based Optimization on Graphs with Application to Library Performance Tuning Frédéric de Mesmay fdemesma@ece.cmu.edu Arpad Rimmel rimmel@lri.fr Yevgen Voronenko yvoronen@ece.cmu.edu Markus Püschel

More information

Learning to Construct Fast Signal Processing Implementations

Learning to Construct Fast Signal Processing Implementations Journal of Machine Learning Research 3 (2002) 887-919 Submitted 12/01; Published 12/02 Learning to Construct Fast Signal Processing Implementations Bryan Singer Manuela Veloso Department of Computer Science

More information

SPIRAL: Extreme Performance Portability

SPIRAL: Extreme Performance Portability SPIRAL: Extreme Performance Portability This paper provides an end-to-end discussion of the SPIRAL system, its domain-specific languages, and code generation techniques. By FRANZ FRANCHETTI, Senior Member

More information

IMAGE COMPRESSION. October 7, ICSY Lab, University of Kaiserslautern, Germany

IMAGE COMPRESSION. October 7, ICSY Lab, University of Kaiserslautern, Germany Lossless Compression Multimedia File Formats Lossy Compression IMAGE COMPRESSION 69 Basic Encoding Steps 70 JPEG (Overview) Image preparation and coding (baseline system) 71 JPEG (Enoding) 1) select color

More information

How to Write Fast Numerical Code Spring 2011 Lecture 7. Instructor: Markus Püschel TA: Georg Ofenbeck

How to Write Fast Numerical Code Spring 2011 Lecture 7. Instructor: Markus Püschel TA: Georg Ofenbeck How to Write Fast Numerical Code Spring 2011 Lecture 7 Instructor: Markus Püschel TA: Georg Ofenbeck Last Time: Locality Temporal and Spatial memory memory Last Time: Reuse FFT: O(log(n)) reuse MMM: O(n)

More information

Generating FPGA-Accelerated DFT Libraries

Generating FPGA-Accelerated DFT Libraries Generating FPGA-Accelerated DFT Libraries Paolo D Alberto Yahoo! {pdalbert@yahoo-inc.com} Peter A. Milder, Aliaksei Sandryhaila, Franz Franchetti James C. Hoe, José M. F. Moura, and Markus Püschel Department

More information

Intel Performance Libraries

Intel Performance Libraries Intel Performance Libraries Powerful Mathematical Library Intel Math Kernel Library (Intel MKL) Energy Science & Research Engineering Design Financial Analytics Signal Processing Digital Content Creation

More information

On the Computer Generation of Adaptive Numerical Libraries

On the Computer Generation of Adaptive Numerical Libraries On the Computer Generation of Adaptive Numerical Libraries A Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy FRÉDÉRIC DE MESMAY Supervised by Markus

More information

Stochastic Search for Signal Processing Algorithm Optimization

Stochastic Search for Signal Processing Algorithm Optimization Stochastic Search for Signal Processing Algorithm Optimization Bryan Singer and Manuela Veloso Computer Science Department Carnegie Mellon University Pittsburgh, PA 1213 Email: {bsinger+, mmv+}@cs.cmu.edu

More information

Computer Generation of Platform-Adapted Physical Layer Software

Computer Generation of Platform-Adapted Physical Layer Software Computer Generation of Platform-Adapted Physical Layer Software Yevgen Voronenko (SpiralGen, Pittsburgh, PA, USA; yevgen@spiralgen.com); Volodymyr Arbatov (Carnegie Mellon University, Pittsburgh, PA, USA;

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 2

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 2 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 2 Anurag Dwivedi Recap Verilog- Hardware Description Language Modules Combinational circuits assign statement Control statements Sequential

More information

Automatic Derivation and Implementation of Signal Processing Algorithms

Automatic Derivation and Implementation of Signal Processing Algorithms Automatic Derivation and Implementation of Signal Processing Algorithms Sebastian Egner Philips Research Laboratories Prof. Hostlaan 4, WY21 5656 AA Eindhoven, The Netherlands sebastian.egner@philips.com

More information

How To Write Fast Numerical Code: A Small Introduction

How To Write Fast Numerical Code: A Small Introduction How To Write Fast Numerical Code: A Small Introduction Srinivas Chellappa, Franz Franchetti, and Markus Püschel Electrical and Computer Engineering Carnegie Mellon University {schellap, franzf, pueschel}@ece.cmu.edu

More information

Algorithm/Hardware Co-optimized SAR Image Reconstruction with 3D-stacked Logic in Memory

Algorithm/Hardware Co-optimized SAR Image Reconstruction with 3D-stacked Logic in Memory Algorithm/Hardware Co-optimized SAR Image Reconstruction with 3D-stacked Logic in Fazle Sadi, Berkin Akin, Doru T. Popovici, James C. Hoe, Larry Pileggi and Franz Franchetti Department of Electrical and

More information

Design, Implementation and Evaluation of a Task-parallel JPEG Decoder for the Libjpeg-turbo Library

Design, Implementation and Evaluation of a Task-parallel JPEG Decoder for the Libjpeg-turbo Library Design, Implementation and Evaluation of a Task-parallel JPEG Decoder for the Libjpeg-turbo Library Jingun Hong 1, Wasuwee Sodsong 1, Seongwook Chung 1, Cheong Ghil Kim 2, Yeongkyu Lim 3, Shin-Dug Kim

More information

Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop

Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop http://cscads.rice.edu/ Discussion and Feedback CScADS Autotuning 07 Top Priority Questions for Discussion

More information

REAL-TIME DIGITAL SIGNAL PROCESSING

REAL-TIME DIGITAL SIGNAL PROCESSING REAL-TIME DIGITAL SIGNAL PROCESSING FUNDAMENTALS, IMPLEMENTATIONS AND APPLICATIONS Third Edition Sen M. Kuo Northern Illinois University, USA Bob H. Lee Ittiam Systems, Inc., USA Wenshun Tian Sonus Networks,

More information

Towards a Performance- Portable FFT Library for Heterogeneous Computing

Towards a Performance- Portable FFT Library for Heterogeneous Computing Towards a Performance- Portable FFT Library for Heterogeneous Computing Carlo C. del Mundo*, Wu- chun Feng* *Dept. of ECE, Dept. of CS Virginia Tech Slides Updated: 5/19/2014 Forecast (Problem) AMD Radeon

More information

Automatically Tuned FFTs for BlueGene/L s Double FPU

Automatically Tuned FFTs for BlueGene/L s Double FPU Automatically Tuned FFTs for BlueGene/L s Double FPU Franz Franchetti, Stefan Kral, Juergen Lorenz, Markus Püschel, and Christoph W. Ueberhuber Institute for Analysis and Scientific Computing, Vienna University

More information

CONTACT: ,

CONTACT: , S.N0 Project Title Year of publication of IEEE base paper 1 Design of a high security Sha-3 keccak algorithm 2012 2 Error correcting unordered codes for asynchronous communication 2012 3 Low power multipliers

More information

Performance Analysis of a Family of WHT Algorithms

Performance Analysis of a Family of WHT Algorithms Performance Analysis of a Family of WHT Algorithms Michael Andrews and Jeremy Johnson Department of Computer Science Drexel University Philadelphia, PA USA January, 7 Abstract This paper explores the correlation

More information

All MSEE students are required to take the following two core courses: Linear systems Probability and Random Processes

All MSEE students are required to take the following two core courses: Linear systems Probability and Random Processes MSEE Curriculum All MSEE students are required to take the following two core courses: 3531-571 Linear systems 3531-507 Probability and Random Processes The course requirements for students majoring in

More information

COMPUTER architects are experimenting with ever. SPIRAL: Extreme Performance Portability

COMPUTER architects are experimenting with ever. SPIRAL: Extreme Performance Portability PROCEEDINGS OF THE IEEE, SPECIAL ISSUE ON FROM HIGH LEVEL SPECIFICATION TO HIGH PERFORMANCE CODE 1 SPIRAL: Extreme Performance Portability Franz Franchetti, Senior Member, IEEE, Tze Meng Low, Member, IEEE,

More information

In-depth algorithmic evaluation at the fixed-point level helps avoid expensive surprises in the final implementation.

In-depth algorithmic evaluation at the fixed-point level helps avoid expensive surprises in the final implementation. In-depth algorithmic evaluation at the fixed-point level helps avoid expensive surprises in the final implementation. Evaluating Fixed-Point Algorithms in the MATLAB Domain By Marc Barberis Exploring and

More information

International Journal of Innovative and Emerging Research in Engineering. e-issn: p-issn:

International Journal of Innovative and Emerging Research in Engineering. e-issn: p-issn: Available online at www.ijiere.com International Journal of Innovative and Emerging Research in Engineering e-issn: 2394-3343 p-issn: 2394-5494 Design and Implementation of FFT Processor using CORDIC Algorithm

More information

Using a Scalable Parallel 2D FFT for Image Enhancement

Using a Scalable Parallel 2D FFT for Image Enhancement Introduction Using a Scalable Parallel 2D FFT for Image Enhancement Yaniv Sapir Adapteva, Inc. Email: yaniv@adapteva.com Frequency domain operations on spatial or time data are often used as a means for

More information

Justify all your answers and write down all important steps. Unsupported answers will be disregarded.

Justify all your answers and write down all important steps. Unsupported answers will be disregarded. Numerical Analysis FMN011 2017/05/30 The exam lasts 5 hours and has 15 questions. A minimum of 35 points out of the total 70 are required to get a passing grade. These points will be added to those you

More information

Parallel FFT Program Optimizations on Heterogeneous Computers

Parallel FFT Program Optimizations on Heterogeneous Computers Parallel FFT Program Optimizations on Heterogeneous Computers Shuo Chen, Xiaoming Li Department of Electrical and Computer Engineering University of Delaware, Newark, DE 19716 Outline Part I: A Hybrid

More information

Using CUDA to Accelerate Radar Image Processing

Using CUDA to Accelerate Radar Image Processing Using CUDA to Accelerate Radar Image Processing Aaron Rogan Richard Carande 9/23/2010 Approved for Public Release by the Air Force on 14 Sep 2010, Document Number 88 ABW-10-5006 Company Overview Neva Ridge

More information

Near Memory Computing Spectral and Sparse Accelerators

Near Memory Computing Spectral and Sparse Accelerators Near Memory Computing Spectral and Sparse Accelerators Franz Franchetti ECE, Carnegie Mellon University www.ece.cmu.edu/~franzf Co-Founder, SpiralGen www.spiralgen.com The work was sponsored by Defense

More information

FFT ALGORITHMS FOR MULTIPLY-ADD ARCHITECTURES

FFT ALGORITHMS FOR MULTIPLY-ADD ARCHITECTURES FFT ALGORITHMS FOR MULTIPLY-ADD ARCHITECTURES FRANCHETTI Franz, (AUT), KALTENBERGER Florian, (AUT), UEBERHUBER Christoph W. (AUT) Abstract. FFTs are the single most important algorithms in science and

More information

NumbaPro CUDA Python. Square matrix multiplication

NumbaPro CUDA Python. Square matrix multiplication NumbaPro Enables parallel programming in Python Support various entry points: Low-level (CUDA-C like) programming language High-level array oriented interface CUDA library bindings Also support multicore

More information

White Paper Assessing FPGA DSP Benchmarks at 40 nm

White Paper Assessing FPGA DSP Benchmarks at 40 nm White Paper Assessing FPGA DSP Benchmarks at 40 nm Introduction Benchmarking the performance of algorithms, devices, and programming methodologies is a well-worn topic among developers and research of

More information

Review and Implementation of DWT based Scalable Video Coding with Scalable Motion Coding.

Review and Implementation of DWT based Scalable Video Coding with Scalable Motion Coding. Project Title: Review and Implementation of DWT based Scalable Video Coding with Scalable Motion Coding. Midterm Report CS 584 Multimedia Communications Submitted by: Syed Jawwad Bukhari 2004-03-0028 About

More information

TOOLS FOR IMPROVING CROSS-PLATFORM SOFTWARE DEVELOPMENT

TOOLS FOR IMPROVING CROSS-PLATFORM SOFTWARE DEVELOPMENT TOOLS FOR IMPROVING CROSS-PLATFORM SOFTWARE DEVELOPMENT Eric Kelmelis 28 March 2018 OVERVIEW BACKGROUND Evolution of processing hardware CROSS-PLATFORM KERNEL DEVELOPMENT Write once, target multiple hardware

More information

Introduction to Parallel and Distributed Computing. Linh B. Ngo CPSC 3620

Introduction to Parallel and Distributed Computing. Linh B. Ngo CPSC 3620 Introduction to Parallel and Distributed Computing Linh B. Ngo CPSC 3620 Overview: What is Parallel Computing To be run using multiple processors A problem is broken into discrete parts that can be solved

More information

Gedae cwcembedded.com. The CHAMP-AV6 VPX-REDI. Digital Signal Processing Card. Maximizing Performance with Minimal Porting Effort

Gedae cwcembedded.com. The CHAMP-AV6 VPX-REDI. Digital Signal Processing Card. Maximizing Performance with Minimal Porting Effort Technology White Paper The CHAMP-AV6 VPX-REDI Digital Signal Processing Card Maximizing Performance with Minimal Porting Effort Introduction The Curtiss-Wright Controls Embedded Computing CHAMP-AV6 is

More information

2D and 3D Far-Field Radiation Patterns Reconstruction Based on Compressive Sensing

2D and 3D Far-Field Radiation Patterns Reconstruction Based on Compressive Sensing Progress In Electromagnetics Research M, Vol. 46, 47 56, 206 2D and 3D Far-Field Radiation Patterns Reconstruction Based on Compressive Sensing Berenice Verdin * and Patrick Debroux Abstract The measurement

More information

An Adaptive Framework for Scientific Software Libraries. Ayaz Ali Lennart Johnsson Dept of Computer Science University of Houston

An Adaptive Framework for Scientific Software Libraries. Ayaz Ali Lennart Johnsson Dept of Computer Science University of Houston An Adaptive Framework for Scientific Software Libraries Ayaz Ali Lennart Johnsson Dept of Computer Science University of Houston Diversity of execution environments Growing complexity of modern microprocessors.

More information

JPEG decoding using end of block markers to concurrently partition channels on a GPU. Patrick Chieppe (u ) Supervisor: Dr.

JPEG decoding using end of block markers to concurrently partition channels on a GPU. Patrick Chieppe (u ) Supervisor: Dr. JPEG decoding using end of block markers to concurrently partition channels on a GPU Patrick Chieppe (u5333226) Supervisor: Dr. Eric McCreath JPEG Lossy compression Widespread image format Introduction

More information

MSST 08 Tutorial: Data-Intensive Scalable Computing for Science

MSST 08 Tutorial: Data-Intensive Scalable Computing for Science MSST 08 Tutorial: Data-Intensive Scalable Computing for Science Julio López Parallel Data Lab -- Carnegie Mellon University Acknowledgements: CMU: Randy Bryant, Garth Gibson, Bianca Schroeder (University

More information

Porting a parallel rotor wake simulation to GPGPU accelerators using OpenACC

Porting a parallel rotor wake simulation to GPGPU accelerators using OpenACC DLR.de Chart 1 Porting a parallel rotor wake simulation to GPGPU accelerators using OpenACC Melven Röhrig-Zöllner DLR, Simulations- und Softwaretechnik DLR.de Chart 2 Outline Hardware-Architecture (CPU+GPU)

More information

Experts in Application Acceleration Synective Labs AB

Experts in Application Acceleration Synective Labs AB Experts in Application Acceleration 1 2009 Synective Labs AB Magnus Peterson Synective Labs Synective Labs quick facts Expert company within software acceleration Based in Sweden with offices in Gothenburg

More information

Automated Space/Time Scaling of Streaming Task Graphs. Hossein Omidian Supervisor: Guy Lemieux

Automated Space/Time Scaling of Streaming Task Graphs. Hossein Omidian Supervisor: Guy Lemieux Automated Space/Time Scaling of Streaming Task Graphs Hossein Omidian Supervisor: Guy Lemieux 1 Contents Introduction KPN-based HLS Tool for MPPA overlay Experimental Results Future Work Conclusion 2 Introduction

More information

The Trainable Alternating Gradient Shrinkage method

The Trainable Alternating Gradient Shrinkage method The Trainable Alternating Gradient Shrinkage method Carlos Malanche, supervised by Ha Nguyen April 24, 2018 LIB (prof. Michael Unser), EPFL Quick example 1 The reconstruction problem Challenges in image

More information

Evaluating the Potential of Graphics Processors for High Performance Embedded Computing

Evaluating the Potential of Graphics Processors for High Performance Embedded Computing Evaluating the Potential of Graphics Processors for High Performance Embedded Computing Shuai Mu, Chenxi Wang, Ming Liu, Yangdong Deng Department of Micro-/Nano-electronics Tsinghua University Outline

More information

Introduction to Runtime Systems

Introduction to Runtime Systems Introduction to Runtime Systems Towards Portability of Performance ST RM Static Optimizations Runtime Methods Team Storm Olivier Aumage Inria LaBRI, in cooperation with La Maison de la Simulation Contents

More information

An Improved Technique for Complex SAR Image Compression Based on FFT and Discrete Wavelet Transform

An Improved Technique for Complex SAR Image Compression Based on FFT and Discrete Wavelet Transform An Improved Technique for Complex SAR Image Compression Based on FFT and Discrete Wavelet Transform Gopal K. Patidar 1, Krishna Patidar 2, Swapna Pillai 3, Tarwar S. Savner 4, M. Chiranjeevi 5 M. Tech.

More information