环境安装和例程运行

显卡主要有两家,ATI、NVIDIA,简称A卡和N卡。随着GPU计算能力的上升,采用GPU并行计算来加速的应用越来越多。

Nvidia创立人之一,黄仁勋(Jen-Hsun Huang),美籍,中国台湾人,现为公司主席兼行政总裁。NVIDIA采用cuda框架实现并行计算,cuda是c语言的拓展集。

ATI总部设在加拿大安大略省万锦。06年,被AMD收购。ATI有类似于cuda的框架,streaming,需要用汇编写。

本篇主要讲述

1、 Cuda编程环境准备。驱动更新、安装toolkit;

2、 运行cuda的例程。

官方文档http://docs.nvidia.com/cuda/#installation-guides

windows环境

在下载页面(https://developer.nvidia.com/cuda-downloads),选择相应版本的cuda toolkit,16年最新是8.0版本。Local类型的包含安装所需的全部内容,network类型在安装时,需要再次下载。

跟着官方教程一步步走(http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz4VKGVD1Gj)。

在thinkpad win7 vs2012和台式机 win10 vs2015上分别做了测试。

在安装之前,需要确认自己的N卡支持cuda。

https://developer.nvidia.com/cuda-gpus CUDA-Enabled GeForce Products

NVIDIA官方还对自己的GPU有Compute Capability计算能力的测试

GeForce GTX 1070  6.1

Quadro K2000  3.0

GeForce 610M  2.1

Thinkpad上运行安装程序,出现错误“请安装intel驱动程序”。

解决方案:更新系统更新、主板驱动、集显驱动和独显驱动。

安装程序会检测本机的编程环境,安装相应版本的内容。

Installed:

- Nsight for Visual Studio 2015

- Nsight Monitor and HUD Launcher

Not Installed:

- Nsight for Visual Studio 2013

Reason: VS2013 was not found

安装完成之后,选中运行samples和readme。

Samples的目录C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0

在该目录下,打开相应的sln文件就能打开所有例程。选择相应的cu文件就能运行。

注意win10可能会出现错误:“error MSB4062: 未能从程序集 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\Nvda.Build.CudaTasks.v8.0.dll 加载任务“Nvda.Build.CudaTasks.SanitizePaths”。未能加载文件或程序集“Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。”

解决方法:下载安装.net framework 3.5

运行例程bandwidth.cu。输出如下:

GPU Device 0: "GeForce GTX 1070" with compute capability 6.1

CUDA device [GeForce GTX 1070]

time spent executing by the GPU: 11.27

time spent by CPU in CUDA calls: 0.06

CPU executed 4404 iterations while waiting for GPU to finish

Linux环境

环境:ubuntu16.04。第一次装的时候,关闭x server之后,ubuntu出现了循环登录界面,愣是进不去图形界面,告诫大家,显卡驱动自己官网下,不要在toolkit中安装。

如何安装显卡驱动?

下载gnome桌面,在software中additional software中选择安装集显和独显的驱动。

不然,就是去http://www.nvidia.cn/Download/index.aspx?lang=cn 官网下载相应版本的驱动,然后需要字符界面安装。否则出错:

Installing the NVIDIA display driver...

It appears that an X server is running.

注:x server是ubuntu的图形界面系统。

sudo service lightdm stop关闭图形界面

Ctrl+alt+F1进入字符界面

Ctrl+alt+F7进入图形界面

另外Ubuntu的字符界面不支持中文显示和输入。需要将ubuntu设为英文,在system setting中设置语言。然后重启,更改桌面到Desktop文件夹。

修改桌面文件夹

Vim /home/maximus(我的用户名)/.config/user-dirs.dirs

主要还是参看官方文档(http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#axzz4VKMDC9Z8)

1、确认显卡类型是不是在支持cuda的显卡列表里

lspci | grep -i nvidia

01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [GeForce 610M] (rev a1)

lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具

2、确认linux版本

uname 是Linux命令,用于显示当前操作系统名称。

uname –m (x86_64)

cat /etc/*release

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=16.04

3、确认安装gcc

gcc --version

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609

Copyright (C) 2015 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

4、确认安装正确的内核头文件和package

uname -r

4.4.0-31-generic

apt-get install linux-headers-$(uname -r)

apt-get install linux-headers-4.4.0-31-generic

5、进入cuda的安装程序

这次下载的runfile文件,执行“sh filename”

安装文件夹/usr/local/cuda-8.0

选择不安装driver

cuda编程(一)的更多相关文章

  1. 不同版本CUDA编程的问题

    1 无法装上CUDA的toolkit 卸载所有的NVIDIA相关的app,包括NVIDIA的显卡驱动,然后重装. 2之前的文件打不开,one or more projects in the solut ...

  2. cuda编程基础

    转自: http://blog.csdn.net/augusdi/article/details/12529247 CUDA编程模型 CUDA编程模型将CPU作为主机,GPU作为协处理器(co-pro ...

  3. CUDA学习笔记(一)——CUDA编程模型

    转自:http://blog.sina.com.cn/s/blog_48b9e1f90100fm56.html CUDA的代码分成两部分,一部分在host(CPU)上运行,是普通的C代码:另一部分在d ...

  4. CUDA编程

    目录: 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. ...

  5. CUDA编程-(1)Tesla服务器Kepler架构和万年的HelloWorld

    结合CUDA范例精解以及CUDA并行编程.由于正在学习CUDA,CUDA用的比较多,因此翻译一些个人认为重点的章节和句子,作为学习,程序将通过NVIDIA K40服务器得出结果.如果想通过本书进行CU ...

  6. CUDA编程入门,Dim3变量

    dim3是NVIDIA的CUDA编程中一种自定义的整型向量类型,基于用于指定维度的uint3. 例如:dim3 grid(num1,num2,num3): dim3类型最终设置的是一个三维向量,三维参 ...

  7. CUDA编程(六)进一步并行

    CUDA编程(六) 进一步并行 在之前我们使用Thread完毕了简单的并行加速,尽管我们的程序运行速度有了50甚至上百倍的提升,可是依据内存带宽来评估的话我们的程序还远远不够.在上一篇博客中给大家介绍 ...

  8. CUDA编程模型之内存管理

    CUDA编程模型假设系统是由一个主机和一个设备组成的,而且各自拥有独立的内存. 主机:CPU及其内存(主机内存),主机内存中的变量名以h_为前缀,主机代码按照ANSI C标准进行编写 设备:GPU及其 ...

  9. CUDA编程模型

    1. 典型的CUDA编程包括五个步骤: 分配GPU内存 从CPU内存中拷贝数据到GPU内存中 调用CUDA内核函数来完成指定的任务 将数据从GPU内存中拷贝回CPU内存中 释放GPU内存 *2. 数据 ...

随机推荐

  1. C语言中指针变量如何向函数中传递

    指针变量存储的是地址,所以在函数调用的时候我们能否将指针变量传递给函数?如果不知道结果,那我们可以直接问电脑,输入如下一段代码. void GetMemory(char *p) { p = (char ...

  2. Day3:T1数论+高精 T2搜索

    T1:数论+高精(水~) 根据题意可知,从除的数越大越好(在0~9中) 所以我们只要用到高精除然后再模拟一下就可以了 //MARK:但是要注意0-9这个特殊值需要特判,因为题目要求输出的数至少是两位数 ...

  3. jQuery插件综合应用1

    jQuery插件综合应用(一)注册   一.介绍 注册和登录是每个稍微有点规模的网站就应该有的功能.登陆功能与注册功能类似,也比注册功能要简单些.所以本文就以注册来说明jQuery插件的应用. jQu ...

  4. DOS头分析

    DOS头分析 PE文件结构综览: 首先上图片: 看到上面的图片可以清晰的看到PE结构复杂结构式什么样子的.有DOS首部,PE头部,PE节表,很多的表块,最后就是一些调试信息. DOS头由DOS 'MZ ...

  5. JavaScript 跨域方法总结

    同源策略 在客户端编程语言中,如javascript和 ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚 ...

  6. Linux下搭建Nginx+MySQL+PHP

    在CentOS6.3下实践通过. 1.关闭防火墙 [root@CentOS ~]# chkconfig iptables off 2.关闭selinux vi /etc/sysconfig/selin ...

  7. iOS蓝牙调用的一般流程

    一.服务端(也叫周边设备吧..脑残的翻译) 1.实现类必须遵守协议 CBPeripheralManagerDelegate 2.需要的主要类有: @property(strong,nonatomic) ...

  8. Modern 阅读笔记 一 PSR标准

    一.标准 PSR php standards Recommendation PHP 推荐标准 PSR-1 基本代码风格 PSR-2 严格的代码风格  PSR-3 日志记录器接口 PSR-4 自动加载  ...

  9. ios搭建开发环境

    ios搭建开发环境 好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC O ...

  10. 在C#中模拟Javascript的setTimeout方法

    在C#中模拟Javascript的setTimeout方法 背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javasc ...