背景:

无意间看到cuda解决FFT有一个cufft函数库,大体查看了有关cufft有关知识,写了一个解决一维情况的cuda代码,据调查知道cufft在解决1D,2D,3D的情况时间复杂度都为O(nlogn),附上解决一维情况的代码,准备后面找一些详细的资料去学习一下cuda的函数库。

#include "stdio.h"
#include "cuda_runtime.h"
#include "cufft.h"
#include "device_launch_parameters.h" #define LENGTH 4
int main()
{

float Data[LENGTH] = {,,,};
cufftComplex *CompData=(cufftComplex*)malloc(LENGTH*sizeof(cufftComplex));
int i;
for(i=;i<LENGTH;i++)
{
CompData[i].x=Data[i];
CompData[i].y=;
} cufftComplex *d_fftData;
cudaMalloc((void**)&d_fftData,LENGTH*sizeof(cufftComplex));
cudaMemcpy(d_fftData,CompData,LENGTH*sizeof(cufftComplex),cudaMemcpyHostToDevice); cufftHandle plan;
cufftPlan1d(&plan,LENGTH,CUFFT_C2C,);
cufftExecC2C(plan,(cufftComplex*)d_fftData,(cufftComplex*)d_fftData,CUFFT_FORWARD);
cudaDeviceSynchronize();
cudaMemcpy(CompData,d_fftData,LENGTH*sizeof(cufftComplex),cudaMemcpyDeviceToHost); for(i=;i<LENGTH;i++)
{
if(CompData[i].x != )
{
printf("%3.1f",CompData[i].x);
}
if(CompData[i].y != )
{
printf("+%3.1fi",CompData[i].y);
}
printf("\n");
}
cufftDestroy(plan);
free(CompData);
cudaFree(d_fftData); }

在Linux下运行的这段代码:

编译命令:nvcc -o fftcu FFT.cu -I /usr/local/cuda/include  -L /usr/local/cuda/lib64 -lcufft

运行命令:./fftcu

注:/usr/local/cuda/include中有cufft.h头文件,/usr/local/cuda/lib64中有libcufft.so库文件

最新文章

  1. 写了cookie阻止通过输入地址直接访问下一个html,但是直接输入地址访问时,会闪一下下一个页面,怎么回事啊????、
  2. JVM学习笔记:JVM的体系结构与JVM的生命周期
  3. 安装LNMP之后出现 Access denied.解决方法
  4. 《软件性能测试与LoadRunner实战教程》新书上市
  5. UrlConnection连接和Socket连接的区别
  6. 上国际网络——通过配置host
  7. Web API初印象
  8. Linux 安装挂载时注意事项
  9. adb shell am force-stop &lt;package&gt;
  10. 【转】自定义iOS的Back按钮(backBarButtonItem)和pop交互手势(interactivepopgesturerecognizer) --- 不错
  11. Java - 9个处理异常的最佳准则
  12. 基于.NET的APP开发和Windows开发,异步回调差别
  13. 移动端1px问题
  14. js-将一个对象转换成一个新的对象
  15. JDK8安装与配置
  16. cloneNode
  17. 基于server broker 的数据实时更新
  18. iredmail 设置
  19. WNDR4300v2 固件编译
  20. OFBiz:处理nextRequestResponse

热门文章

  1. C. Tokitsukaze and Duel 前缀维护
  2. java中的常量和变量
  3. 9 个必须知道的实用 PHP 函数和功能 [转]
  4. Python--day64--Bootstrap样式的使用
  5. CodeForces 1204E&quot;Natasha, Sasha and the Prefix Sums&quot;(动态规划 or 组合数学--卡特兰数的应用)
  6. React---钩子函数
  7. linux 短延时
  8. 关于vue-cli打包配置部署404
  9. &lt;数论相关&gt;欧几里得与拓展欧几里得证明及应用
  10. 【Repo】repo sync:error.GitError: cannot initialize work tree