CUDA(Ⅰ):CUDA学习背景、开发环境安装

参考书目《GPU高性能编程CUDA实战》以下文章均为作者原创,转载请告知,并注明出处。

目标:

了解并行计算正在发挥越来越重要作用

了解GPU计算和CUDA发展历程

了解一些通过使用CUDA C而获得成功的应用程序

下载参考所需的各种软件

配置好编译CUDA C代码的环境

目录

一、学习背景

CPU性能提升历史:

GPU发展历史:

CUDA发展历史:

CUDA的应用:

二、开发环境安装

开发环境:

支持CUDA的图形处理器:

NVIDIA设备驱动程序:

CUDA开发工具箱:

标准的C编辑器:

三、小结


一、学习背景

CPU性能提升历史:

发展阶段一:CPU时钟频率

问题:CPU运行时钟频率作为提升计算机性能的方法已经不再相对稳定的提升。

发展:早期1MHz -> 近代1GHz ~ 4GHz

瓶颈:随着功耗与发热的急剧升高以及晶体管的大小接近极限等集成电路元器件中存在的各种严重限制,已经无法在现有的架构上通过提高处理器时钟频率来提升性能,研究人员和制造商们开始寻求其他方式。

发展阶段二:CPU核数量的提升,即多核革命(Multicore Revolution)

发展:3核、4核、6核以及8核的CPU。

 

GPU发展历史:

基本发展过程:

1980s:图形界面操作系统windows的普及

1990s:消费者应用程序中3D图形技术的需求快速增长,如游戏、制造商发布图形加速器卡。

设计初衷:加速应用程序中的图形绘制运算,程序员通过OpenGL或者DirectX等API来访问GPU。

缺陷:要将数据保存在图形纹理中并调用OpenGL.DirectX函数来执行计算,还要使用特殊的图形编程语言--着色语言(Shading Language)来编写这些计算。即:编程人员要学习计算机图形学和着色语言、并考虑严格的资源限制和编程限制。

 

CUDA发展历史:

发展:

早期GPU架构:计算资源分为顶点着色器和像素着色器

CUDA架构GPU:包含统一的着色流水线、使得执行通用计算的程序能够对芯片上的每个ALU(Arithmetic Logic Unit)进行排列,确保满足IEEE单精度浮点数学运算的徐企鹅,并且可以使用裁剪后的指令集来执行通用计算,而不是仅限于执行图形计算。

产品:GeForce 8800 GTX是第一个基于NVIDA的CUDA架构构件的GPU。随后,NVIDA GPU是基于CUDA架构而构建的,即将CUDA架构视为NVIDIA构建GPU的模式。

目的:用户不再需要了解OpenGL 或者 DirectX图形编程结构,减轻早期GPU计算中存在的限制,即不仅能完成传统的图形渲染任务,又能完成通用计算任务。

发展:NVIDIA采取工业标准的C语言,并且增加部分关键字来支持CUDA架构的特殊功能。并且公布编译器来编译CUDA C语言,CUDA C也就成为了第一款专门由GPU公司设计的编程语言,用于在GPU上编写通用计算。

 

CUDA的应用:

医学图像:将手机到的超声波数据转换为3D图像时需要执行非常耗时的计算,CUDA帮助快速获得高清三维成像。

计算流体力学:精确模拟设备周围的空气和流体的复杂运动。

环境科学:基于GPU加速的模拟软件,如HOOMD实现的表面活性剂交互模拟性能是之前平台的16倍。将复杂模拟的计算时间从数个星期减少为几个小时。

 

小结:

计算机业界处于并行计算的革命中,NVIDIA的CUDA C成为实现并行计算的最成功语言之一。

二、开发环境安装

开发环境:

支持CUDA的图形处理器、NVIDIA设备驱动程序、CUDA开发工具箱、标准C编辑器

支持CUDA的图形处理器:

2006发布的GeForce 8800 GTX以来,NVIDIA推出的每款GPU都能支持CUDA。

NVIDIA设备驱动程序:

NVIDIA提供系统软件来实现应用程序与支持CUDA的硬件之间的通信。安装NVIDIA GPU,就已经安装好了这些软件,要确保更新的驱动程序

CUDA开发工具箱:

CUDA C应用程序将在两个不同的处理器上执行计算,因此需要两个编辑器,其中一个编辑器为GPU编译代码,另一个为CPU编译代码。NVIDIA提供了编译GPU代码的编译器,“CUDA Toolkit”,与NVIDIA设备驱动程序一样。

后续有专门补充。

标准的C编辑器:

CPU编辑器。

具体安装步骤请参考其他博主的安装步骤,后续可能会出一个完整的环境配置哈。

笔者的Windows配置环境如下:

windows10 + cuda8.0 + Visual Studio 2015

注:笔者在Visual Studio 2017上报了一个错误,尝试各种方法无法得到解决,可能是VS不够支持的问题,故直接放弃2017。

另外,建议安装2015企业版或者专业版

__syncthreads(); is undefined need a help

笔者的Linux配置环境如下:

wlsh@wlsh-ThinkStation:/usr/local/cuda/lib64$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l

wlsh@wlsh-ThinkStation:/usr/local/cuda/lib64$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

wlsh@wlsh-ThinkStation:/usr/local/cuda/lib64$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:17_PST_2019
Cuda compilation tools, release 10.1, V10.1.105

三、小结

截至目前,已经安装好CUDA C的开发环境。此时我们已经可以编译/运行 NVIDIA GPU Computing SKD示例代码了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值