Efficient FIR Filter with SIMD and Loop Vectorization [DSP #16]

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 มิ.ย. 2024
  • ✅ Check out the full article on TheWolfSound.com: thewolfsound.com/fir-filter-w...
    ➡️ and the associated code: github.com/JanWilczek/fir-simd
    ➡️ Plain FIR filter in C++ video: • How to Implement an FI...
    ➡️ What are SIMD instructions?: • What Are SIMD Instruct...
    ✅ Sign up for WolfSound's newsletter: thewolfsound.com/newsletter/
    ✅ Please subscribe to WolfSound to let the little Wolf 🐺 grow:
    th-cam.com/users/WolfSoundAu...
    🎧 Listen to my music: thewolfofficial.com/
    Hi, my name is Jan Wilczek and I am an audio programmer and a researcher. Welcome to WolfSound!
    WolfSound's mission is to provide high-quality, informative, and entertaining videos, articles, and courses on how to process sound by exploring mathematics, applying algorithms, and creating code in various programming languages. Topics include sound synthesis, digital signal processing, programming languages for audio (C, C++, Python, Rust), and audio effects. I am also sharing tips on how to learn fast and effectively. Make sure to visit www.thewolfsound.com/.
    WolfSound enables everybody to learn about audio programming!
    ABOUT THE VIDEO
    In this video, I show you how to implement a FIR filter efficiently using single instruction, multiple data instructions and a powerful technique called loop vectorization. I am using C++ to explain this concept but for an actual implementation you have to check out the code on the WolfSound blog or my GitHub.
    Learn how to
    💡 Vectorize FIR filtering,
    💡 Speed up the inner product,
    💡 Compute a vector of samples on one outer loop iteration,
    In case of any doubt in understanding, please, refer to the article above or ask a question in the comments 🙂
    Video edited by Vadzim Vezhnavets.
    Background music composed and produced by Jan Wilczek.
    ABOUT ME
    My name is Jan Wilczek. I am an audio programmer, a researcher in the field of music technology, and a musician. Through articles and videos from WolfSound, you will easily understand the main concepts of sound processing using software. My full story: • How I Got Started With...
    FOLLOW WOLFSOUND ONLINE
    ✅ Blog: www.thewolfsound.com/
    ✅ LinkedIn: / jan-wilczek-audio-prog...
    ✅ Twitter: / wilczek_jan
    ✅ Facebook: / janwilczekwolfsound
    ✅ Instagram: / janwolfwilczek
    ✅ Pinterest: / jawitrle
    TIME CODES
    00:00 Introduction
    00:56 Agenda
    01:07 Baseline FIR filter implementation
    02:23 2 loops in FIR filtering
    03:07 Inner loop vectorization
    04:36 In-code explanation
    05:57 Outer loop vectorization
    06:30 In-code explanation
    08:00 Outer-inner loop vectorization
    08:55 In-code explanation
    09:22 Which technique is the fastest?
    10:09 Summary
    #simd #dsp
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 4

  • @WolfSoundAudio
    @WolfSoundAudio  2 ปีที่แล้ว

    Have I helped you with this video? If yes, please, consider buying me a ☕ coffee at www.buymeacoffee.com/janwilczek
    Thanks! 🙂

  • @farhatibrahim4034
    @farhatibrahim4034 2 ปีที่แล้ว +1

    You should also look at how to implement it for dedicated HW (VHDL) .... it's much faster

    • @WolfSoundAudio
      @WolfSoundAudio  ปีที่แล้ว +1

      Maybe someday I will, thanks for the tip!

  • @przekladanki
    @przekladanki 2 ปีที่แล้ว