CUDA编程(一):背景与安装
来源:互联网 发布:阿里云是基于openstack 编辑:程序博客网 时间:2024/06/05 05:08
一:背景
1.GPU在高性能计算领域达到了很高的地位
2.超级计算机和桌面计算正在向着异构计算发展-人们试图通过将CPU和GPU技术混合在一起来实现更高的性能.
3.无论是在HPC行业还是在桌面电脑领域,GPU编程已经成为主流.
4.内存速度和时钟速度的比率是限制CPU和GPU吞吐量的一个重要的因素.大多数应用程序属于”内存受限型”.
5.尽管设置了缓存,但是并不是所有的数据都刚刚好能够在缓存上面能够找的到,所以,最终还是要在内存上面来找,因此并不能够发挥CPU全部的水平.(当处理器从缓存中而不是主存中取来一条指令或者一个数据时,称为缓存命中.)
6.我们要关注一个问题,那就是程序中能够并行运行的代码占有多大的比例呢?可能达到的最大加速比受限于程序中串行代码的数量.即使你有无限的计算能力,要是并行任务运行的时间趋向于0,那么还是要付出运行串行代码的时间.所以,一开始考虑是不是能够把大量的任务并行化是很重要的.
7.每个图形卡由若干个流处理簇(SM)组成,每个SM配备8个或者更多的流处理器(SP).
8.GPU卡大致可以看成是一种加速卡或者是一种协处理器卡.目前,一个GPU卡必须与基于CPU的主机相连才能够工作.
9.GPU的总体性能主要是由其具有的SP的数量,全局内存的带宽和程序员利用并行架构的充分程度等因素决定.
10.CUDA架构
CUDA架构包含一个统一的着色器流水线,使得执行通用计算的程序能够对芯片上的每个数学逻辑单元(ALU)进行排.这些ALU能够进行浮点数的运算,还能够任意的读写内存,同时还能够访问共享内存.都是为了GPU不仅仅能够执行传统的图形计算,还能够高效地执行通用计算.
一个GPU内有许多的流处理器簇(Streamling Multiprocessors:SM),他们就类似于CPU的核.
这些SM与共享存储(一级缓存)连接在一起,然后又与相当于SM之间互联开关的二级缓存相连接.
数据先是存储在全局存储中,然后被主机取出并且使用.
流出一部分自己处理外,主机将剩余的数据通过PCI-E互联开关直接送到另外一个GPU的存储空间.
二:安装
首先得知道自己的显卡是英伟达的而且支持cuda。
1.Windows
1.进入官网:https://developer.nvidia.com/cuda-downloads2.到页面下方看到下图所示的下载选项
根据你的系统的环境下载相应的安装包。
3.安装,直接鼠标点击就行,很简单.
- CUDA编程(一):背景与安装
- cuda与openCV结合编程(一)
- CUDA编程模型一
- CUDA编程学习一
- CUDA编程->CUDA入门了解(一)
- Matlab+CUDA混合编程(一)
- Matlab+CUDA混合编程(一)
- CUDA笔记一编程模型
- cuda矩阵编程(一)
- CUDA编程实践(一)
- bash: 一键安装Cuda
- C++与CUDA混合编程
- Gtk与Cuda混合编程
- Java与Cuda混合编程
- CUDA学习笔记(一) CUDA编程模型1
- (CUDA 编程3).CUDA硬件实现分析(一)------安营扎寨
- CUDA C 编程指导(一):CUDA介绍
- CUDA编程(一)第一个CUDA程序
- 表连接例子
- MyBatis XML 映射配置文件
- Tensorflow: recurrent neural network char-level 0
- JZ2440 启动NFS网络文件系统_初试led驱动
- iTextSharp 绘制字体中特殊符号到PDF
- CUDA编程(一):背景与安装
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- AsyncTask异步任务类使用
- TableViewController中的搜索框和mj刷新配合使用
- picasso-强大的Android图片下载缓存库
- 善用iOS App中Web View控件的好处
- Android Studio 中api>9 之后无法找到 org.apache.http 包的问题
- android设计模式之装饰模式(一)
- 安卓蓝牙BLE设备开发