CPU or GPU for BIAS FX 2?

  • Dear PG developers,

    Did you use the CPU or the GPU for DSP processing in BIAS FX 2 for MacOS and Windows?

    The press release says you re-designed the core code for digital signal processing. DSP typically involves a lot of fast Fourier transforms. You can run these FFT algorithms either on the CPU or on the GPU (using, for example, the OpenCL libraries). Running DSP on the GPU would be faster, but probably more work to code. If you decided to run DSP on the CPU, did you multi-thread your code?

    In other words, what trade-off did you decide to make between engineering cost vs. performance?

    I ask because I'd like to know, when buying a laptop, should I be looking at the single-core CPU benchmarks, the multi-core CPU benchmarks, or the GPU ("compute") benchmarks?

    For example, for MacOS, here are some CPU benchmarks and here are some GPU benchmarks.

    Which numbers should I care about for running BIAS FX 2 on a Mac or Windows laptop? Single core, multi-core, or GPU/"compute"?

    Same question for BIAS FX Mobile on iPads--did you use the GPU for DSP? If you used the CPU, did you multi-thread or single-thread?



  • A2

    Single core speed, almost always, almost anytime you are talking about running DSP at the lowest possible round trip latency

    CUDA does exist for attempting to run DSP on GPU, and it can be amazing, but barely any penetration (yet)

    People can attempt to use UAD as an example of GPU, but I think that has been proven to death to be not just snake oil, but worse than running the stuff native in the first place

  • Very interesting. Thank you, pipelineaudio.

    For iPads, using the ARM CPU, I see that there are vector instructions (i.e. single instruction, multiple data) which would he helpful for DSP, which the ARM folks call NEON. There is even an open-source project called Ne10 to provide a library of common algorithms, including FFT, using the NEON instructions, and supports iOS.

    PG developers, do you use the NEON CPU instructions on iOS?

    Apple's ARM processors (used in iPads) also have proprietary DSP instructions.

    PG developers, did you use Apple's DSP instructions in their A12 or A13 CPUs?

    Also, did you parallelize your code to run on multiple ARM CPU cores?

    The other option on iPads is to use Apple's GPU, which is embedded in the same chip as the CPU. You could use the OpenCL library to do this, which provides an implementation of FFT. You could also use Apple's Metal API.

    Did you use the GPU on the iPad?