Home > On-Demand Archives > Talks >

Performance Engineering for Modern DSP

Jatin Chowdhury - Watch Now - EOC 2025 - Duration: 43:44

Performance Engineering for Modern DSP
Jatin Chowdhury

There has been significant changes in computer hardware over the past two decades, however most publicly available advice on performance engineering and optimization for DSP software is unchanged from the late '90's or early 2000's.

This talk will discuss some of the features available in modern CPUs and DSPs including SIMD vectorization, execution pipelines, and hardware caching, as well as advice for how to optimize DSP code with those features in mind.

M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

BradVS
Score: 0 | 2 weeks ago | 1 reply

Great presentation, thank you! A question - can you recommend one or more books on learning SIMD and/or algorithms that use SIMD vectorization?

jatinSpeaker
Score: 0 | 2 weeks ago | no reply

I'm glad you enjoyed it!

For working with SIMD in general, I mostly learned from reading blogs and watching presentations... here's a few that I can recommend:

For working with SIMD at the assembly level, I can recommend Agner Fog's Assembly Optimization Manual (https://www.agner.org/optimize/#manuals), and the FFMPEG's projects assembly lessons (https://github.com/FFmpeg/asm-lessons).

Although I haven't read it, I've also heard good things about Aart Bik's "Software Vectorization Handbook".

A good algorithm to implement to learn/practice SIMD vectorization is a time-domain FIR filter, since it forces you to think about memory alignment and which "dimension" you want to vectorize along.

OUR SPONSORS & PARTNERS