C语言使用CUDA中cufft函数做GPU加速FFT运算,与调用fftw函数的FFT做运算速度对比

目录

  • 任务介绍
    • 环境所需相关软件下载与安装
    • C语言:不调用库的GPU加速FFT代码
    • C语言:调用fftw库的未使用GPU的FFT代码
    • C语言:调用cufft库的GPU加速FFT
    • gnuplot安装画图,maltab编写的FFT运算结果对比
      • matlab测试信 和测试时的坑

任务介绍

时隔多年仍然逃不掉写C的命运……因为这个任务周期不短还踩了好多坑,必须记录一下了。
任务简单要求就是使用C语言编写一个GPU加速的快速傅里叶变换(FFT)
分为GPU加速的FFT代码改写、未使用GPU的FFT编写、运算速度对比、运算结果测试(与matlab结果对比),只要按照我文章写的顺序做就行

环境所需相关软件下载与安装

CUDA7.5
然后需要下载CUDA 来调用GPU。首先保证自己的电脑是有显卡GPU的(GPU和CUDA版本对应关系 上可以找到,这里插一个写挺好的文章链接CUDA和GPU版本对应),我的笔记本是双显卡,独立显卡是NVIDIA GeForce GTX 1660Ti,最高能用CUDA11.7版本的

集成显卡:为电脑基本显卡,在正常情况下电脑会一直使用集成显卡,以降低电脑运行负担,减少散热,提高笔记本使用寿命。
独立显卡:为电脑的高级显卡,多用来运行大型游戏以及部分软件。
要改为优先使用独立显卡的话,就打开NIVDIA控制面板,在左面管理3D设置中全局设置->首选图形处理器->下拉选择高性能NIVDIA处理器,就设置成功了

CUDA和Visual Studio 2010是有版本兼容关系的,在安装好Visual Studio 2010后安装CUDA需要选择对应版本, 上找到Visual Studio 2013是安装的CUDA7.5,但我想装一个能兼容的最高级版,就从9.0试到7.5 (CUDA历史版本下载链接),要是版本不兼容在安装CUDA的时候会出现不兼容的提示,就没办法继续安装,那个图我没保存,但安装的时候看到就能明白(安装教程简单,最好安装在默认路径, 上可找到教程),最终确定兼容版本是CUDA7.5+Visual Studio 2010

环境配置
软件安装完后配置环境,这里我基本是按照这篇文章教程配置的
windows+VS2013+CUDA7.5配置
只有在这篇文章中的第3步我创建项目的方式不太一样
我是打开VS2010创建一个空项目,在源文件中添加一个新建项,选择C++文件,这里注意:不加后缀名生成的源文件是.cpp后缀名的,这是C++代码文件后缀名,使用CUDA的C代码要命名为.cu的格式,不使用CUDA的C代码命名为.c格式

最后最好拿他给的测试代码试跑一下,能成功就算环境配置成功

C语言:不调用库的GPU加速FFT代码

开始 上找到这篇文章CUDA实现FFT并行计算
在我简单调试更改后可以正常运行,很开心,我对代码加了些注释,这里把这个能正常运行的代码贴上,分为两个部分代码。
先是需要调用的函数Complex.cu文件,我跟主文件放在一起

然后是主文件

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月11日
下一篇 2022年9月11日

相关推荐