CUDA第一次编程

来源:互联网 发布:php程序员进阶书籍 编辑:程序博客网 时间:2024/06/13 18:10

硬件:CPU:英特尔 Core i3 M 380 @ 2.53GHz 双核

            GPU:NVIDIA GeForce 310M ( 512 MB)

软件:Windows 8.1 Enterprise 64位 ( DirectX 11 ) 

             cuda 6.5    Visual Studio 2013


1.      查看C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.5目录下各例程,

         打开deviceQuery_vs2013.sln,生成后执行,结果如下:

 

2.     打开并运行simpleGL例程,

        该程序顺利运行,说明VS和CUDA编程环境搭建基本成功,可进行之后一系列编程实验内容。



3.打开VS2013,新建CUDA6.5项目,命名后进入。

 

这是自动生成的一维数组并行加和的程序,但不能像例程那样直接顺利运行。以下是我遇到问题及找到的解决办法:

(A)

进行生成操作,对于多个.h文件,出现相同的warning

“warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”

 

搜索后找到唯一可行的解决办法:

首先用VS打开有该warning的文件,点击【文件】选【高级保存选项】,改变编码格式为Unicode-代码页 1200,点确定后保存,替换原文件。然后再打开项目生成或编译就不再有这种warning了。

 

(B)

生成操作可以完成,进行调试,出现:“……无法查找或打开 PDB 文件。程序已退出……”

 

谷歌后找到解决办法:

点 调试 - 选项和设置 然后右边勾上启用源服务器支持;然后在左边点 符号把微软符号服务器勾上。这样在调试时,就能自动在线去下载那些文件。

 

(C)

解决完上述问题,点 开始执行(不调试):



百般检查程序,单步调试等等,无果。

搜索 invaliddevice function后找到:

Cuda程序运行时出现:invalid device function错误信息时,编译选项 -arch 选择错误,与显卡支持的版本号不一致,具体显卡支持的版本号可到nVidia 官网查看。


之前在CUDA Wikipedia词条就看到:



我的渣渣显卡

仅是1.2版本的,故将下图中的默认的compute_20,sm_20改成compute_12,sm_12



然后,生成,执行,终于顺利执行!





0 0