有没有办法在一个 C++ 程序中同时使用 FFTW 和 cuFFTW?
Is there a way to use both FFTW and cuFFTW in one C++ program?
我正在编写一段使用 FFTW3 库的代码,并希望使用 CUDA 将其移植到 GPU。最简单的方法是使用 cuFFTW 兼容库,但是,正如文档所述,它意味着用其 GPU 等效项完全替换 CPU 版本的 FFTW。添加 cufftw.h
header 后,它替换了所有 CPU 函数,代码在 GPU 上运行。
但是有没有办法在我的代码中同时包含 CPU 和 FFTW 的 GPU 版本,这样我就可以在运行时在它们之间切换,例如通过用户界面中的复选框?或者唯一的方法是使用原生 cuFFT API?
即使不看图书馆headers:是的。
一个简单的解决方案是让不同的编译单元每个只包含一个库,并且只公开您自己的自定义 functions/classes/etc。到应用程序的其余部分。这样两个库的headers就不会互相干扰了
但是,很可能有更好的解决方案。我会查看 cufftw.h
以了解 nVIDIA 到底在做什么以及它 "replaces" CPU 的功能。
我正在编写一段使用 FFTW3 库的代码,并希望使用 CUDA 将其移植到 GPU。最简单的方法是使用 cuFFTW 兼容库,但是,正如文档所述,它意味着用其 GPU 等效项完全替换 CPU 版本的 FFTW。添加 cufftw.h
header 后,它替换了所有 CPU 函数,代码在 GPU 上运行。
但是有没有办法在我的代码中同时包含 CPU 和 FFTW 的 GPU 版本,这样我就可以在运行时在它们之间切换,例如通过用户界面中的复选框?或者唯一的方法是使用原生 cuFFT API?
即使不看图书馆headers:是的。
一个简单的解决方案是让不同的编译单元每个只包含一个库,并且只公开您自己的自定义 functions/classes/etc。到应用程序的其余部分。这样两个库的headers就不会互相干扰了
但是,很可能有更好的解决方案。我会查看 cufftw.h
以了解 nVIDIA 到底在做什么以及它 "replaces" CPU 的功能。