CUDA与MFC联合编程推荐工程结构

CUDA与MFC联合编程推荐工程结构

ID:38280721

大小:437.02 KB

页数:6页

时间:2019-05-27

CUDA与MFC联合编程推荐工程结构_第1页
CUDA与MFC联合编程推荐工程结构_第2页
CUDA与MFC联合编程推荐工程结构_第3页
CUDA与MFC联合编程推荐工程结构_第4页
CUDA与MFC联合编程推荐工程结构_第5页
资源描述:

《CUDA与MFC联合编程推荐工程结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CUDA与MFC联合编程推荐工程结构sume@ustc.eduCUDA入门者提示及基本知识:1.常见的电脑都有图形图像显示功能,显卡就是负责这个工作的。显卡可以是独立的,也可以集成在主板上,还可以集成在CPU中,我们要使用CUDA技术,一般选择购买主流独立显卡即可。GPU是显卡的核心,可以理解为显卡上的CPU,它的主要工作就是计算屏幕上要显示什么、怎么显示,常见的电脑屏幕的分辨率有800×600、1024×768、1366×768、1920×1080等等,而且各个像素之间并没有直接关系或者关系很弱,因此这个计算工作天生就是并行的;

2、2.CUDA是nVidia公司的技术,AMDAPP(曾用名ATIStream,后来ATI被AMD收购了)是AMD公司的技术,他们都是GPGPU(前两个GP意思是GeneralPurpose)技术的一种,目的是利用显卡强大的并行计算能力加速运算,让显卡不只局限于打游戏和绘图。在金融、地质、航天、军事、生物等计算密集的行业,人们已经开始广泛研究基于GPGPU的加速计算技术;3.想要使用CUDA,首先你需要一张支持CUDA的显卡,支持CUDA技术的显卡名单及其对应的计算能力可以在nVidia公司网站上找到;4.因为本文讲的是MFC编程,

3、而且作者只会VC(这才是主要原因好吧),因此假设读者已经安装了VisualStudio2008并打上了最新的servicepack补丁;5.要建立CUDA编程环境,你还需要在nVidia网站下载安装以下三者:a)你的显卡所对应的最新驱动;b)CUDAToolkit;c)NVIDIAGPUComputingSDK(目前是4.2).好的,现在假设读者具备MFC程序调试经验,那么我们就开始吧。以下是CUDA和MFC联合编程的推荐结构:MFCCUDAGlobalHostFunctionsFunctions在Device上运行MFCKern

4、elProcessFunctions解释:1.对CUDA程序来说,显卡叫做device,安装了显卡的电脑叫做host;如果一台电脑上安装了多个显卡呢?放心,可以处理的,但是本文暂时不考虑这种情况;2.CUDA程序是C语言的一种变形,都以.cu为后缀,CUDA程序中的函数有的运行在CPU上,负责并行计算的初始化和计算结果的回收,有的运行在GPU上(称为kernel程序),负责执行真正的并行计算;3.建议专门用一个globalfunction和CUDA程序打交道,便于代码的阅读、理解和维护;4.MFC程序的其他部分调用这个global

5、function,其他就和一般的编程没有区别了。在本文附带的例程中,对应的工程文件如图所示:MFCCUDAGlobalapi.CppFirst.cuGlobalapi.hMFCFirst_kernel.cu工程SUMECOLLECTION其实CUDA程序中的hostfunction和kernelfunction也可以放在同一个.cu文件,但是此处同样为了便于阅读、理解和维护,把它们分别放在两个文件中。示例工程的创建过程如下:1.创建globalapi.cpp/.h及全局函数;2.在SolutionExplorer中创建一个filt

6、er(相当于一个目录,便于管理),命名为CUDA,在里面创建两个.cu文件;3.分别在两个cu文件中写上函数,其中first.cu中就是本例程CUDA程序的host部分,first_kernel.cu中就是本例程CUDA程序的kernel部分。本例程重在结构的解释,具体的编程方法此处就不讲了,更多的内容请好好看书以及阅读SDK中的文档吧;4.最重要的地方来了,修改first.cu的编译设置;第一步,打开该文件的属性;SUMECOLLECTION第二步,修改常规设置;第三步,修改自定义生成步骤;在”CommandLine”中拷贝进去

7、以下内容:"$(CUDA_BIN_PATH)vcc.exe"-ccbin"$(VCInstallDir)bin"–c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I"$(CUDA_INC_PATH)"-I./-I../../common/inc-o$(ConfigurationName)first.objfirst.cu并且填写”Outputs”和”AdditionalDependencies”:5.修

8、改工程的属性;第一步,修改连接器的常规属性为图中所示:第二部,修改链接器的输入为图中所示:第三步,修改工程的常规属性中为图中所示:SUMECOLLECTION好了,这个例程就可以编译运行了!sume@ustc.edu2012/11/27参考文献:曹

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。