Un filtre traditionnel fonctionne comme une longue chaîne de personnes se passant un message en cercle : chacun attend que le précédent ait terminé. C'est lent. Les ingénieurs ont utilisé une astuce ingénieuse — la réduction cyclique. Les données sont réarrangées de sorte que les dépendances entre échantillons ne soient plus longues, mais regroupées en petites unités. Le processus ressemble alors au jeu du téléphone arabe, où après chaque tour le nombre de participants diminue de moitié : l'information est fusionnée et atteint rapidement tout le monde. Cette astuce permet aux processeurs modernes, comme les puces Meteor Lake, de traiter plusieurs signaux simultanément, un peu comme de nombreuses lignes téléphoniques courtes au lieu d'une seule longue. La technologie AVX2 accélère les calculs, comme la vitesse de la lumière dans la fibre optique par rapport au câble en cuivre. Les pionniers du calcul parallèle John von Neumann et John Bardeen ont posé les bases de telles architectures. En fin de compte, un filtre d'ordre 16 traite jusqu'à 618 millions d'échantillons par seconde sur un seul cœur — 8 fois plus vite que les solutions standard. C'est un pas vers le traitement instantané de l'audio et des signaux en science, par exemple lors de l'étude d'un pulsar ou de la spectroscopie de galaxies lointaines.
tel que rédigé par les auteurs, en anglais arXiv:2607.14054
Recursive (IIR) filters realized as cascaded second-order sections (biquads) offer both design generality and robustness against coefficient quantization. However, their inherent sample-to-sample feedback dependency poses a fundamental obstacle to parallel computation. This paper reformulates the biquad difference equation as a banded block-Toeplitz linear system and introduces a stride-$$N$$ permutation that maps a group of $$NL$$ samples into a block-tridiagonal structure whose entries are scalar multiples of identity and shift matrices. Within this framework, two parallel algorithms are developed for the recursive solution: a partial LU (PH) factorization that preserves the sparse block structure and a cyclic reduction that is applied to recursive filtering, to the best of our knowledge, for the first time. It reduces the sequential dependency depth from $$\mathcal{O}(N)$$ to $$\mathcal{O}(\log_2 N)$$. For a cascade of $$K$$ biquads, the intermediate permutations between successive sections cancel exactly, so that only a single permutation/de-permutation pair is required for the entire cascade, eliminating $$2(K{-}1)$$ redundant stages. Exact block-level operation counts are derived for every algorithmic stage and validated against cycle-accurate measurements on three Intel micro-architectures supporting AVX2 SIMD instructions. Experimental results for a 16th-order system show that the proposed multi-block algorithms reduce clock cycles per sample by up to $$10\times$$ compared to scalar filtering, with both algorithms scaling favorably on newer architectures. On a single Meteor Lake core, cyclic reduction achieves approximately 618 MS/s -- an $$8\times$$ throughput improvement over scipy.signal.sosfilt.
Un seul cœur de Meteor Lake filtre en une seconde autant de signaux que le nombre de battements de cœur de 60 éléphants pendant le même temps.