Thanks. That's 0.135 * 14 = 189% of one core, i.e. almost two full powerful amd64 cores at 4GHz just for upsampling 2ch audio, IIUC.
Just for comparison with CPU load of pure PCM processing: Resampling 16(!) channels PCM 48kHz -> 384kHz at float32 precision (using camillaDSP) takes 82% of one 1.3GHz core of Radxa Pi S (tiny passive 4-core ARM SBC powered by its USB input, running cold). Resampling at float32 precision puts noise floor at -150dB (the spectrogram captures just some of the channels, the chain is: generator on PC USB host 48kHz/32bit/16ch -> Pi S USB device -> resampling to 384kHz -> I2S out @384/32/16ch -> I2S in @384/32/10ch -> Pi S USB device -> spectrogram on PC USB host 384/32/only 5ch due to UAC2 bandwidth limit)
Resampling 16ch at float64 goes only up to 192kHz on that weak CPU (because the resampling of all channels runs in one thread only), noise floor below -180dB:
Just for comparison with CPU load of pure PCM processing: Resampling 16(!) channels PCM 48kHz -> 384kHz at float32 precision (using camillaDSP) takes 82% of one 1.3GHz core of Radxa Pi S (tiny passive 4-core ARM SBC powered by its USB input, running cold). Resampling at float32 precision puts noise floor at -150dB (the spectrogram captures just some of the channels, the chain is: generator on PC USB host 48kHz/32bit/16ch -> Pi S USB device -> resampling to 384kHz -> I2S out @384/32/16ch -> I2S in @384/32/10ch -> Pi S USB device -> spectrogram on PC USB host 384/32/only 5ch due to UAC2 bandwidth limit)
Resampling 16ch at float64 goes only up to 192kHz on that weak CPU (because the resampling of all channels runs in one thread only), noise floor below -180dB: