第一个cuda例子
2010-05-31 16:19
183 查看
首先安装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 为例:
首先,建立一个 Win32 Console 模式的 project(在 Application Settings 中记得勾选 Empty project),并新增一个档案,例如 main.cu。
在 main.cu 上右键单击,并选择 Properties。点选 General,确定 Tool 的部份是选择 Custom Build Tool。
选择 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)
如果想要使用软件仿真的模式,可以新增两个额外的设定:
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)
对所有的配置文件,在 Custom Build Step 的 Outputs 中加入 $(ConfigurationName)/$(InputName).obj。
选择 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.
5.编译运行。
我用的编译环境是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 为例:
首先,建立一个 Win32 Console 模式的 project(在 Application Settings 中记得勾选 Empty project),并新增一个档案,例如 main.cu。
在 main.cu 上右键单击,并选择 Properties。点选 General,确定 Tool 的部份是选择 Custom Build Tool。
选择 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)
如果想要使用软件仿真的模式,可以新增两个额外的设定:
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)
对所有的配置文件,在 Custom Build Step 的 Outputs 中加入 $(ConfigurationName)/$(InputName).obj。
选择 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 <stdio.h> #include <stdlib.h> #include <cuda_runtime.h> 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.编译运行。
相关文章推荐
- Qt之QCustomPlot绘图(一)配置和第一个例子
- CAD二次开发(C#)第一个例子
- jQuery 学笔记,jQuery的第一个例子
- 第一个Spring例子
- 记录自己的第一个Qt例子
- CUDA-GDB调试一般方法————矩阵乘的例子
- SpringMVC第一个例子
- Hibernate---->第一个例子
- Lucene第一个入门学习例子
- pdf转txt第一个小例子(PDFBOX)
- MyBatis的第一个HelloWorld小例子(不用接口)
- Fortran 90学习之旅(一)Visual Fortran 6.5 的安装与第一个例子
- AngularJS概念概述和第一个使用例子
- visual studio 2013 编译第一个cuda 6.5程序
- 第一个Ext.js例子
- Qt的第一个例子:Hello World
- Docker第一个例子
- 第一个mongoDB例子
- Ibatis学习01——环境搭建(第一个例子)
- 【深度学习】笔记2_caffe自带的第一个例子,Mnist手写数字识别代码,过程,网络详解