电脑配置:windows7 sp1 64bit  + CUDA6.5 + GeForce GTX780 Ti

显卡中的GPU因为多核可以处理很多相同的操作,相比较来说cpu就像个健全的手,什么活都能干,而gpu就是个非健全的手,只能干特定的事情,但是架不住手多,随便几百上千的。

关于从cpu过渡到GPU推荐先看《大规模并行处理器编程实战》中前两章,其中有详细地 讲解人们从cpu关注到gpu的历史,开始是用来图形处理的gpu,而且当时如果想使用gpu也需要通过opengl转换自己的思想成为图形处理,然后才能交予gpu处理。自从nvidia公司发现了这一潜力,他们开发了cuda,使得不需要经过opengl的api也能使用gpu这种多核处理的优势。这本书第二章中也详细说明了关于gpu上的结构包括寄存器,局部共享内存,全局共享内存,只读内存等;本书的缺点就是没有从开头介绍如何架构一个项目,也就是没有介绍hello
world。

《GPU高性能编程CUDA实战》中说明了如何进行从cpu编程转移到gpu编程上的过程,不过还不是完全详细。本文参考这本书加上官方文档完。

首先: 1、登陆https://developer.nvidia.com/cuda-gpus 查看自己的显卡是否支持CUDA。

2、进入https://developer.nvidia.com/cuda-toolkit 下载cuda6.5,点进去之后记得注意系统、位数和是笔记本还是桌面版,我按照系统字节64位选择的是64位版本。

3、首先安装Visual studio(推荐10 12 13 三个版本),就像往常一样,装好就行。

4、卸载本计算机上的NVIDIA的驱动和任何文件,因为你下载的cuda 6.5中包含了这些,而且你之前通过例如驱动精灵安装的驱动有可能高于内部的版本。为了少麻烦,推荐先卸载驱动,然后安装cuda6.5.

5、在安装cuda6.5的时候会有三个路径选择,第一个默认就行,第二个因为默认的是programdata,是隐藏的 推荐修改成自己其他定义的路径,第三个默认就行。

6、经过5的安装和重启,它会自动进行环境设置和vs的配置,无需手动操作。如果步骤5中第一项是默认的,那么就能够在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\doc下面找到html和pdf两个文件夹,没错这个pdf文件夹中就是包含的所有资料。

7、(可选)编译cuda6.5自带的例子,在上面步骤5中的第二个路径中(C:\Program Files\NVIDIA GPU Samples)有三个.sln,分别是vs10,vs12和vs13.这是全局部分,如果想单独编译,那就点击如各自的文件夹中选择.sln。

双击打开然后进行重新生成项目,接下来等着132个生成完成就行(我只成功了122个)。

按照步骤6中提示的pdf文件夹中的《CUDA_Getting_Started_Windows.pdf》中所述“A few of the example projects require some additional setup. The simpleD3D9 example requires the system to have a Direct3D SDK (June 2010 or later) installed and the Visual Compiling CUDA Programs www.nvidia.com NVIDIA
CUDA Getting Started Guide for Microsoft Windows C++ directory paths (located in Tools > Options...) properly configured” 也就解释了为什么之前只成功了122个。

因为编译器是在win32位下运行,所以生成的所有可执行文件在C:\Program Files\NVIDIA GPU Samples\bin\win32\Debug里面,也就是上图中的bin文件夹中。common文件夹暂时不管。

测试是否安装完成:cmd命令行进入\bin\win32\Debug文件夹下,运行deviceQuery.exe,显示计算机上的显卡设备等信息

结果是pass。然后运行bandwidthTest.exe

结果显示的是主机(tip:对于cuda来说,host就是cpu和电脑的内存,而device指的是gpu和显卡的显存)到设备和设备到主机以及设备到设备之间的通信带宽速度。

hello world

正常的新建新项目:

然后:,写项目名称,接着确定就行。

这时候会在解决方案资源管理器中有kernel.cu。对于cpp语言来说,扩展名就是.cpp,而对于cuda的来说,他的源文件就是.cu。

这个kernel.cu,暂时不需要,可以移除就行。

如上图所示,进行添加新建项。

扩展名为.cu。

成功。接下来就可以进行其他的代码编写了。因为cuda是为了最大程度的迎合c/cpp语言,使得对cuda的编程的不适应程度降到最小,从而很多语法上,你几乎都不知道这是个cuda编程。这方面在书籍《大规模并行处理器编程实战》有所提及,不过那书有些年头了,对于cuda这种快速发展的东西来说,只能看看,因为后来的cuda新的特性多了很多。

CUDA1-hello world的更多相关文章

  1. CUDA1.1-函数类型限定符与变量类型限定符

    这部分来自于<CUDA_C_Programming_Guide.pdf>,看完<GPU高性能变成CUDA实战>的第四章,觉得这本书还是很好的,是一种循序渐进式的书,值得看,而不 ...

  2. 我的第一个CUDA程序

    最近在学习CUDA框架,折腾了一个多月终于把CUDA安装完毕,现在终于跑通了自己的一个CUDA的Hello world程序,值得欣喜~ 首先,关于CUDA的初始化,代码和解释如下,这部分主要参考GXW ...

  3. CUDA 安装完成以后如何判断安装是否成功

    最近在家里过寒假,可能这是还在学校里带着最大的福利了,无意之中翻出了多年前买的几本关于CUDA编程的书,于是随便在自己电脑上配置了一下环境,试试能不能把当年没有看完的书给看完了,于是有了今天这个判断C ...

  4. FFmpeg新版本(2016年10月份以后) 支持硬件解码

    FFmpeg provides a subsystem for hardware acceleration. Hardware acceleration allows to use specific ...

  5. 离线配置Anaconda3+tensorflow-gpu1.4.0+cuda8.0+cudnn6.0

    1.首先下载anaconda3 ----从官网上下载Anaconda3-5.1.0-Linux-x86_64.sh 直接通过命令 bash Anaconda3-5.1.0-Linux-x86_64.s ...

  6. CUDA编程(二) CUDA初始化与核函数

    CUDA编程(二) CUDA初始化与核函数 CUDA初始化 在上一次中已经说过了,CUDA成功安装之后,新建一个project还是十分简单的,直接在新建项目的时候选择NVIDIA CUDA项目就能够了 ...

  7. VS2015 dlib编译 x64 Debug .lib生成

    VS2015 dlib编译 x64 Debug >------ 已启动生成: 项目: ZERO_CHECK, 配置: Debug x64 ------ > Checking Build S ...

随机推荐

  1. bootstrap的编辑标记 angularjs input 弹出框

    .html <div> {{instance.description}} <span class="glyphicon glyphicon-pencil btn-link& ...

  2. [20140928]创建连接到MySQL的连接服务器

    首先要安装 mysql odbc 然后 odbc下创建DSN,并且要在系统DSN下. 最后执行 exec sp_addlinkedserver  @server= 'XY',        --这是链 ...

  3. 数据库模型设计——历史与版本设计

    在企业数据库设计中,经常会遇到一个需求,就是希望把操作之前的数据保留下来,能够看到操作之前是什么数据,操作之后是什么数据.对于这种需求,我们可以使用保留历史数据或者使用版本来实现. 为了能够保留历史数 ...

  4. js 求时间差

    var date1=new Date();  //开始时间 var date2=new Date();    //结束时间 var date3=date2.getTime()-date1.getTim ...

  5. 【故障处理】一次RAC故障处理过程

    [故障处理]一次RAC故障处理过程 1.1  故障环境介绍 项目 source db db 类型 2节点RAC db version 11.2.0.1.0 db 存储 ASM OS版本及kernel版 ...

  6. 【密码】Oracle用户密码系列

    [密码]Oracle用户密码系列 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  7. MySQL 调优基础(五) Linux网络

    1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但 ...

  8. 数据库 SQL Server 到 MySQL 迁移方法总结

    最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...

  9. hadoop2.6分布式部署时 livenodes等于1的原因

    1.问题描述 在进行hadoop2.x版本的hdfs分布式部署时,遇到了一个奇怪的问题: 使用start-dfs.sh命令启动dfs之后,所有的datanode节点上均能看到datanode进程,然而 ...

  10. TCL校园招聘——软件开发工程师(java) 只招5个。。。

    简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技 ...