sse is overrated |
[Jan. 23rd, 2016|10:08 am] |
йобнул цикл ресамплера (fir-фильтр) на see. получил ~2x speedup. подумал — и сделал unrolled loop (четырёхкратный). получил примерно то же самое по скорости (совсем чуть-чуть медленней).
нет, компилятор не умеет векторизовать операции, умеет только срать кодом для FPU. |
|
|
Comments: |
Ты небось на 32-х битах? Там да, немного. Вот 8-битное сложэние хорошо бустит.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | January 23rd, 2016 - 07:12 pm |
---|
| | | (Link) |
|
ну так флоаты же, звук же «в процессе обработки». делать fir на восьми битах — это даже я до такого извращения никак…
Ещё и флоты. Ну-ну. Не хочешь срулить хотя бы на 32-bit fixed point?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | January 24th, 2016 - 02:50 pm |
---|
| | | (Link) |
|
а какой смысл?
сейчас, например, ворбис‐декодер, плюс hq ресамплер, плюс микшеры и конвертер в s16 жрут скопом приблизительно 2.5% CPU (по версии htop).
c одной стороны — много, конечно. а с другой — да хуйня! реально, я же не dsp-процессор пишу. для звукового движка, который я планировал использовать вообще в двухмерных ретроплатформерах — вполне заебок.
к тому же тот же деворбис (да и sfxr) выплёвывают флоаты. вот я щаз всё бросил, и ради призрачного выигрыша в пол‐процента побежал всё это переписывать на fixed point. да ну.
прошли вермена, когда этим имело смысл заморачиваться.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | January 24th, 2016 - 02:52 pm |
---|
| | | (Link) |
|
p.s. а при реальном использовании — так ресамплер может вообще из картинки вылететь, потому что я могу предварительно прочитать те же ворбисы, разжать в мозг и сразу сделать ресампл до нужной частоты. делов‐то: зря, что ли, гигабайты памяти простаивают? | |