第一个cuda例子

首先安装CUDA Driver,CUDA Toolkit 以及SDK,大家可以在Nvidia的官方网站上面下载。

我用的编译环境是windows, vs 2005

文本编辑

  由于CUDA使用的源文件是.cu文件,因此默认情况下VS不会识别它里面的语法,会把它当成普通的txt文件。

  Tools->options,左侧树形图展开Text Editor,在File Extension子项中:

  Extension:cu      Editor:Microsoft Visual C++

  点击Add,这样cu文件就会被当做cpp文件显示了。由于VS不会立即更新,需要重新启动VS。

这样我们在vs中打开cu后缀的文件,c语言的语法就会高亮显示了。

 

这里以 Visual Studio 2005 为例:

  1. 首先,建立一个 Win32 Console 模式的 project(在 Application Settings 中记得勾选 Empty project),并新增一个档案,例如 main.cu。
  2. 在 main.cu 上右键单击,并选择 Properties。点选 General,确定 Tool 的部份是选择 Custom Build Tool
  3. 选择 Custom Build Step,在 Command Line 使用以下设定:
    • 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)
  4. 如果想要使用软件仿真的模式,可以新增两个额外的设定:
    • 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)
  5. 对所有的配置文件,在 Custom Build StepOutputs 中加入 $(ConfigurationName)/$(InputName).obj。
  6. 选择 project,右键单击选择 Properties,再点选 Linker。对所有的配置文件修改以下设定:
    • General/Enable Incremental Linking:No
    • General/Additional Library Directories:$(CUDA_LIB_PATH)
    • Input/Additional Dependencies:cudart.lib

这里是每个cu的文件的配置。

 

简单的例子,vs 2005那例

 

1.创建一个空的Win32 Console 模式的 project(在 Application Settings 中记得勾选 Empty project).

2.创建一个文本文档命名为main.cu,不会插图,就不截图了

3.按上面的方式配置cu文件

4.#include #include #include bool InitCUDA() { int count; cudaGetDeviceCount(&count); if(count == 0) { fprintf(stderr, "There is no device./n"); return false; } int i; for(i = 0; i < count; i++) { cudaDeviceProp prop; if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) { if(prop.major >= 1) { break; } } } if(i == count) { fprintf(stderr, "There is no device supporting CUDA 1.x./n"); return false; } cudaSetDevice(i); return true; } int main() { if(!InitCUDA()) { return 0; } printf("CUDA initialized./n"); system("pause"); return 0; } 在cu文件中编写如下代码

5.编译运行。

你可能感兴趣的:(cuda)