CUDA Programming - (1) CUDA简介

1. GPU 简介

处理器一般包含以下几部分:Cache 缓存,ALU 计算单元,Control 控制中心,RAM 内存。

CPU(Central Processing Unit):中央处理器。适合进行逻辑,ALU计算核心较少。适合控制性密集任务。

GPU(Graphics Processing Unit):图形处理器。也称显卡(graphics card),适合进行密集数据运算,包含大量ALU计算核心。

1.2 CPU与GPU的主要区别:

一个典型的CPU拥有少数几个快速的计算核心,而一个典型的GPU拥有几百到几千个不那么快速的计算核心。

CPU中有更多的晶体管用于数据缓存(cache)和流程控制(control),但GPU中有更多的晶体管用于算术逻辑单元(ALU)。

GPU的浮点运算峰值比同时期的CPU高一个量级。而GPU的内存带宽峰值也比同时期CPU高一个量级。GPU是靠众多的计算核心来获得相对较高的计算性能的。

CPU与GPU都有一个动态随机存取存储器,通过PCle总线进行交互。

1.3 CPU+GPU异构架构

异构计算(heterogeneous computing): GPU本身并不能单独计算,CPU+GPU组成异构(heterogenerous)计算架构;

一块单独的GPU是无法独立完成所有计算任务的,它必须在CPU的调度下才能完成特定任务。

CPU起到控制作用,称为Host,主机。

GPU作为CPU的协处理器,一般称为Device,设备。

主机和设备之间都有自己的DRAM(Dynamic Random-Access Memory,动态随机存取内存),内存访问一般通过PCLe总线连接。

1.4 GPU性能指标

1.核心数  

2.GPU显存容量 ,可计算量越大

3.GPU计算峰值,最大计算能力

GPU并不是计算能力越高,性能就越高,两者之间没有简单的正比关系。表征计算性能的一个重要参数式浮点数的运算峰值,即每秒最多能执行的浮点数运算次数,英文维 Floating-point operations per second,缩写维 FLOPS。GPU的浮点数运算峰值在10^12 FLOPs,即teraFLOPS量级。

浮点数运算峰值有单精度和双精度之分。对于计算双精度还是Tesla好,GeForce双精度就差很多。

4.显存带宽:运算单元与显存的传输速率,带宽越大,交换速率越大

GPU中的内存常称为显存。显存容量是制约应用程序性能的一个因素。

2. 什么是CUDA?(异构编程语言)

CUDA(compute unified device architecture):统一计算设备架构。CUDA是建立在NVIDIA的CPU上的一个通用并行计算平台和编程模型,是一个软件平台,配合GPU使用。目前支持CUDA编程的只有英伟达Nvidia公司推出的GPU,如Quadro OpenGL渲染,专业绘图设计,GeForce游戏娱乐,科学计算,Jetson嵌入式设备。

其他异构编程语言,如OpenCL(open computing language),OpenACC(open accelerators),和CUDA Fortan。

OpenCL是一个更为通用的为各种异构平台编写并行程序的框架,是AMD(Ad vanced Micro Devices)公司的 GPU 的主要程序开发工具。

2.1 CUDA运行时API

CUDA提供两层API接口:CUDA 驱动(driver)API 和 CUDA 运行时(runtime)API。

CUDA驱动API:是更底层的API,为程序员提供了更为灵活的编程接口。

CUDA运行时API:是在CUDA驱动API的基础上构建的一个更为高级的API。

从程序的可读性来看,用CUDA运行时API是更好的选择。在其他编程语言中使用CUDA的时候,驱动API很多时候是必需的。两种API调用性能几乎无差异。

          

CUDA的版本是GPU软件开发平台的版本,在CUDA C++程序中,既有运行于主机的代码,也有运行于设备的代码。其中,运行于主机的代码需要由主机 的C++编译器编译和链接。

2.2 GPU模式

GPU处于WDDM(windowsdisplaydrivermodel)模式。另一个可能的模式是TCC (tesla compute cluster)

2.3 GPU计算模式

Default :在默认模 式中,同一个GPU中允许存在多个计算进程,但每个计算进程对应程序的运行速度 一般来说会降低。

E.Process,指的是独占进程模式(exclusiveprocess mode),但不适用于处于WDDM模式的GPU。在独占进程模式下,只能运行一个计算进程独占该GPU。

参考文章:

cuda编程(一)cuda简介-CSDN博客

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值