¿Por qué no hacemos transformada de Fourier y otros algoritmos clásicos en CPU o GPU directamente?

Me gustaría agregar algo a la discusión. Primero, las transformadas de Fourier se usan todo el tiempo. Las transformaciones estrechamente relacionadas con la Transformada discreta de Fourier (DFT: implementada con la FFT) forman la base de los CODEC como JPEG y MP3. Además, las transformaciones Wavelet (¿clásicas?) Proporcionan la base para JPEG2000 y, que yo sepa, para HDTV.

Admitiré que las transformaciones, como la transformación de Laplace, tienden a usarse en entornos estrictamente teóricos. Hay problemas con la implementación numérica en el caso de las transformaciones de Laplace.

En cuanto a las GPU, etc.: admito mi ignorancia. Sin embargo, agregaré que los paquetes de software, como MATLAB, proporcionan cajas de herramientas de computación paralelas que le permiten implementar la multiplicación de matriz-vector en una GPU (o una CPU de múltiples núcleos). Por ejemplo, el DFT es la multiplicación matriz-vector. Entonces, si tiene el software adecuado, es posible una implementación de GPU (lo suficientemente fácil pero quizás no directa). Si quieres desatar el verdadero poder de tu GPU, entonces quizás quieras aprender CUDA.

Supongo que los paquetes de software bien desarrollados hacen uso de CPU y / o GPU multinúcleo para algoritmos como el FFT por defecto.

Los FPGA se pueden usar para implementar transformaciones de Fourier en hardware. Consulte el siguiente enlace:

Transformada rápida de Fourier (FFT)

Esta tecnología puede ejecutar FFT a velocidades lo suficientemente altas para aplicaciones de radar.

Principalmente porque no se usan con tanta frecuencia.

Se centran en un tipo particular de problema y no se usan la mayor parte del tiempo.

El resto es que el espacio / electrónica utilizada por ellos podría ser más productivo para otros fines.