Zrýchlenie bikvadratického audio filtra pomocou SIMD

Študent: Rastislav Rabatin(rastislav.rabatin@ksp.sk)
Vedúci: RNDr. Jozef Šiška(siska@ii.fmph.uniba.sk)

Motivácia:

Bikvadratický filter je veľmi jednoduchý filter pomocou, ktorého sa dájú filtrovať rôzne frekvencie zvuku. Teda vieme napríklad kontrolovať basy a výšky. Procesorové architektúry ako Intel a ARM podporujú SIMD(Single instruction, multiple data) pomocou, ktorých by sa mal dať zrýchliť výpočet filtra. Tieto inštrukcie pracujú s dátami ako vektormi, teda vedia viac dát spracovať v jednej inštrukcii. Mojou úlohou je vyskúšať viacero spôsobov zrýchlenia tohto filtra a porovnať ich.

Plán:

Zdrojáky:

Zdrojaky

Nejaké výsledky testov:

1 2 3 4 5 Avg
2channelV1.cpp 106 024 µs 105 849 µs 106 227 µs 106 382 µs 105 859 µs 106 068.2 µs
2channelNoSSEV1.cpp 230 739 µs 230 673 µs 229 845 µs 230 742 µs 230 658 µs 230 531.4 µs
2channelV2.cpp 414 175 µs 432 576 µs 439 114 µs 449 072 µs 415 882 µs 430 163.8 µs
2channelNoSSEV2.cpp 831 213 µs 831 745 µs 830 163 µs 830 142 µs 832 130 µs 831 078.6 µs
Kompilovane s flagmy: -msse4.1 -std=c++11 -O3

Zdroje:

Zdroje

Linky: