技术开发 频道

CUDA在MFC中的联调方法实例

  【IT168 技术】本文我们为大家介绍CUDA与MFC联调的实现。

  SDK中程序的编译

  例如我们的SDK安装路径“C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects\deviceQuery”中可以找到deviceQuery的工程文件。

  当我们把这个文件夹拷贝到其他目录下时,会出现找不到头文件的错误,如“找不到cutil.h”。为什么会出现这种情况呢?我们注意到在deviceQuery中对其的引用#include ,是在系统目录下的。这个系统目录在C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\inc中可以找到cutil.h头文件。

  通过查看deviceQuery.cu的属性,通过观察“命令行”:

  "$(CUDA_BIN_PATH)\nvcc.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./ -Ihttp://www.cnblogs.com/common/inc -o $(ConfigurationName)\deviceQuery.obj deviceQuery.cu

  注意红色下划线部分,带便往上退两个文件夹,然后进入commom文件夹中的inc文件夹。再比较之前的两个路径,这正好是deciceQuery.sin文件到cutil.h的一个访问的过程。

SDK中程序的编译

SDK中程序的编译

  当我们将工程文件拷贝到新的目录下时,这样的一个访问方式必然会失效。于是我们需要做如下的一些设置。

SDK中程序的编译

  1. 首先我们需要将C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win32文件目录下的四个文件夹分别添加到环境变量里。

  具体的操作方法是:”我的电脑” ->属性->高级->环境变量PATH,注意路径都是全路径,每个变量间用“;”分隔。

SDK中程序的编译 

  2. 注意到这里面的系统变量NVSDKCUDA_ROOT为C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK。

SDK中程序的编译 

  我们在转移了工程文件目录后,只需要将命令行进行修改。即将之前的红线部分作如下修改:

  "$(CUDA_BIN_PATH)\nvcc.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"$(NVSDKCUDA_ROOT)/common/inc" -o $(ConfigurationName)\deviceQuery.obj deviceQuery.cu

  3. 此外我们还需要将“项目属性”的“链接器”做对应的修改。然后该程序即可正常编译运行。

SDK中程序的编译

0
相关文章