如果电脑上没有gpu想用cpu模拟运行,安装cudatoolkit_2.3_win_32和cudasdk_2.3_win_32这两个东西就可以了。
一:
在vs中找到.cu文件右键在自定义生成步骤-常规命令行中输入
具体选择哪个模式看情况,无gpu要使用模拟环境则用EmuRelease或者EmuDebug模式。
Release 模式:
"$(CUDA_BIN_PATH)/nvcc.exe" -ccbin "$(VCInstallDir)bin" -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)/$(InputName).obj $(InputFileName)
Debug 模式:
"$(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)" -o $(ConfigurationName)/$(InputName).obj $(InputFileName)
EmuRelease 模式:
"$(CUDA_BIN_PATH)/nvcc.exe" -ccbin "$(VCInstallDir)bin" -deviceemu -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)/$(InputName).obj $(InputFileName)
EmuDebug 模式:
"$(CUDA_BIN_PATH)/nvcc.exe" -ccbin "$(VCInstallDir)bin" -deviceemu -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)/$(InputName).obj $(InputFileName)
输出:
$(ConfigurationName)\$(InputName).obj
二:工具-选项-vc++目录-包含文件,加入D:\Program Files\CUDA\include,D:\Program Files\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\inc,库文件,加入D:\Program Files\CUDA\lib,D:\Program Files\NVIDIA Corporation\NVIDIA GPU Computing DK\C\common\lib
三:语法高亮设置。
用4.2就可以,4.1未验证
四:D:\Program Files\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib;必须加入库文件中;有的文章说加入到系统变量path中也可以,验证发现不可以。
另外:有些路径千万别从word中复制,打开资源管理器到目录后复制可以,(我在台式机上配置时,从word里把包含的库文件复制过去,死活就找不到,后来代开资源管理器找到对应目录后搞定。
==================================================================================================
http://blog.csdn.net/fandebin/article/details/7043715
安装环境:
Win7 64位系统,Geforce GT 540M 2G显卡
安装前提:
安装步骤:
1、Nvidia显卡驱动,装275.33版,这是最新版本驱动,初次安装为了少出错,最好安装比较新版本的驱动。 ok
2、Cuda Toolkit 4.0安装,CUDA 4.0的新特性可以参见其Release Notes,其中包括了本文将要介绍的Thrust库。ok
3、CUDA Tools SDK 4.0
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0,记这个路径为SDK_PATH.
4、Parallel Nsight 2.0
现在可以用VS打开CUDA SDK的例子了,在这之前,两个工具库可以先生成一下。
a、使用VS2010打开SDK_PATH \ c\common\cutil vs2010.sln, VS2010 选“Build|Batch Build…”,“Select All”,生成所有配置需要的lib.如果遇到“Can not open source file …”的错误,把文件夹的只读属性去掉。
目的:生成各配置需要的cutilxx[D].lib XX:32 /64 [D]debug模式
lib存放的位置:SDK_PATH \ c\common\lib\(win32|X64)
b、同上方法,打开SDK_PATH\share\ shrUtils_vs2010.sln 选“Build|Batch Build…”
lib存放的位置:SDK_PATH\share\lib\(Win32|x64)
注:这个项目编译时会提示有两个.cpp找不到,直接把他们从项目里移去即可。因为同名的.h文件里已经有完整代码了。
测试例子:VS2010 打开SDK例子:deviceQuery, matrixMul各种配置均可编译执行成功, CUDA的基本配置就完了。
创建自己的CUDA项目
1、创建一个Win32 console application 程序 HelloWorldCuda,选择空项目,然后添加一个源文件HelloWorldCuda.cpp, 改名字为HelloWorldCuda.cu。
2、选择Project | Build Customizations…菜单,在对话框中选择CUDA 4.0,这会添加对CUDA C/C++文件(*.cu)的支持
3、选择HelloWorldCuda.cu文件,右击选择Property打开属性对话框,在General属性页下,将Item Type改为”CUDA C/C++”
4、选择HelloWorldCuda工程,右击选择Property打开属性对话框,选择“Linker|General” 属性页,在“Additional Libraries Directories”下添加“$(CUDA_PATH_V4_0)\lib\$(Platform);”
注意:CUDA C/C++已经在属性页中出现了
5、打开“Linker|Input”属性页,在“Additional Dependencies”中添加“cudart.lib;”
6, 向HelloWorldCuda.cu中添加一些代码。…………
测试程序:
#include< stdio.h>
bool InitCUDA()
{
}
int main()
{
}
用 Ctrl+F5 运行,通过nvcc编译成功,输出结果。
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe"-gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env--cl-version 2010 -ccbin
CUDA C/C++关键字和函数高亮显示:
在上面HelloWorldCuda.cu文件中发现CUDA C/C++的关键字__global__等没有高亮显示,而且还有下划曲线。下面进行CUDA C/C++关键字和函数的语法高亮显示,配置Visual AssistX 函数高亮,代码提示等功能。
下面是关于代码高亮的设置。共三个设置
1、cu文件中C/C++关键字高亮
这个设置是让VS2010编辑.cu文件时,把.cu文件里的C/C++语法高亮。
设置方法: 在VS2010的菜单 依次点击:“Tools|Options…|Text Editor|File Extension”,在这个界面里: “Editor”下拉框选“Microsoft Visual C++”,在“Extension”文本框输入.cu 点击“Add”按钮 ,重复工作把.cuh 添加为vc++类型,点击确定按钮。 把全部.cu文件关闭,再打开,.cu文件C++关键字就高亮了。如果不行就重启VS2010。但是CUDA的关键字还是黑色的,下一步把CUDA关键自高亮显示。
2、CUDA关键字高亮
为了让CUDA的关键字,如__device__、dim3之类的文字高亮,需要如下步骤:
把SDK_PATH\C\doc\syntax_highlighting\usertype.dat复制到X:\Program Files (X86)\Microsoft Visual Studio 10.0\Common7\IDE\ 目录下
这里 X:是安装VS2010盘符,这是win7 64位下的路径。
注意:win7 64系统不要复制到这个目录里,复制到这里是不会CUDA关键字高亮的:
X:\Program Files \Microsoft Visual Studio 10.0\Common7\IDE\
(如果你的win7是32位的,可能正好是上面这个目录,应该会高亮的,这是win7 64位和32位的差别)
再次强调:SDK_PATH要换成你安装SDK的实际路径,不要直接使用这个字符串。
VS2010需要重启,重启后打开.cu文件,CUDA的关键字应该变成蓝色了。
3. CUDA 函数高亮,及CUDA函数输入代码提示
实现这个功能就要使用VAssistX了。 首先安装支持VS2010的Visual AssistX, 在CUDA 安装前、后安装都行。需要两步实现需要的功能:
a) 让Visual AssistX支持CUDA函数高亮和代码完成。在VS2010菜单里依次点击: “VAssistX->Visual assist X Options->Projects->C/C++Directories”在这个界面的 “Platform”下拉框选 Custom,在“Show Directories for..“下拉框选 Other include files, 然后在下面的输入框里,新建、添加三个路径,点击确定,三个路径分别如下:
SDK_PATH的\c\common\inc
这里SDK_PATH要用你安装的SDK路径代替,X:是你的CUDA toolkit安装盘符。
这样分别在这三个目录里面的.h文件定义的函数和类型VAssistX会帮我们在编辑文件时候实现高亮和完成代码。如果少包含一个路径,这个目录里的.h定义的函数和类型就不会高亮和提示了。
b)让Visual AssistX支持.cu文件,也就让Visual AssistX帮我们实现.cu文件高亮和代码完成功能,需要编辑注册表。首先关闭VS2010,点击开始菜单输入regedit打开注册表,找到如下位置:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet10。在右边找到ExtSource项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后
关闭注册表,重新打开vs2010,Visual AssistX开始支持.cu及.cuh文件的语法高亮及代码完成。此时.cu文件的CUDA函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息了。
经过上面的安装,开发程序应该没问题了,但会发现有如下的问题:
1. VS2010显示.cu文件时,有很多CUDA函数下有波浪线
2. 在.cu文件里使用VS2010的“Go to definition”功能查无法找到CUDA函数的定义。
这两个问题的原因是VS2010不认识这些函数,没有指定它们在那个头文件里包含的。解决方法其实是一样的,把CUDA tookit 和CUDA SDK的头文件路径加到VS2010的VC++目录里面。
对话框里面有VC++目录选项, 在右边的“包含目录”选项里,单击鼠标,选编辑,添加CUDA toolkit 的include目录,CUDA SDK目录下的
\C\common\inc 和 \share\inc 目录信息,这三个目录也就是添加到VAssistX里的头文件目录,目的是让VC2010知道这些头文件里定义的函
数,重启VS2010,打开CUDA工程
VS2010就不会在CUDA函数下显示红色波浪线了,而且可以使用“转到定义”,“转到声明”功能定位到CUDA函数和类型定义的文件。
NVIDIA针对VS开发环境开发了一个插件叫做NVIDIA®
===============================================================================
有问题找问题
问题一:这是编译可能出现“。。。.h”文件不能包含,在环境变量CUDA_INC_PATH中或在工程属->VC++ Directories->Include Directories中添加C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\inc;(注意配置完环境变量需要运行CMD—>set设置一下。并重启VS2010)。
问题二:这时编译可能出现下面类似错误提示error LNK2019: unresolved external symbol __imp_cutCheckCmdLineFlag referenced in function "void __cdecl __cutilExit(int,char * *)" (?__cutilExit@@YAXHPEAPEAD@Z)。
同上一步,在环境变量CUDA_INC_PATH中或在工程属->VC++ Directories->library Directories中添加C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\lib, (注意配置完环境变量需要运行CMD—>set设置一下。并重启VS2010)。
问题三:这时编译可能还是出现问题二的错误提示,不要着急,只要在工程属性-》Linker->Input->Additional Dependencies中添加cUtil64.lib。即可顺利通过编译。
问题四:编译成功后,运行时出现“未找到cutil64.dll,程序不能运行”之类的错误提示,这时只要把cutil64.dll文件拷贝到C盘systems32文件夹下即可。
================================================================================
- VS2010产生一个新的空项目
- 右键单击solution explorer中的该项目,选择custom build rule file。在弹出的窗口中,勾选相应的Rules文件
- 右键单击solution explorer中的该项目,选择properties。在Properties > Linker > General > Additional Library Directories项中,针对计算机的不同填$(CUDA_PATH_V3_2)\lib\Win32或 $(CUDA_PATH_V3_2)\lib\x64。由于我使用的是32位的windows操作系统,所以选择前者。
- 在Properties > Linker > Input > Additional Dependencies中,填上该工程所依赖的lib。
- 完成。
- 依次安装好diver,SDK和Toolkit
- 在Tool->options->project and solutions->VC++ directionaries中分别添加相关的头文件和库文件。头文件为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\include、C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\inc;库文件为:C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\lib、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32
- 此时可以运行SDK Browser中自带的程序,如果运行成功,配置完成。否则,需要将Toolkit中带的4个.rules文件拷贝到VS2010的安装目录下的对应位置,对于我的计算机,VS2010安装在E盘,所以该位置为E:\Microsoft Visual Studio 9.0\VC\VCProjectDefaults