CUDA C 编程权威指南笔记(1)

数据划分方式:块划分、周期划分

块划分,一组连续的数据被分到一个块内。每个数据块以任意次序被安排给一个线程。线程通常在同一时间只处理一个数据块。

周期划分,更少的数据被分到一个块内。相邻的线程处理相邻的数据块,每个线程可以处理多个数据块。为一个待处理的线程选择一个新的块,就意味着要跳过和现有线程一样多的数据块。

计算机架构:单指令单数据(SISD)、单指令多数据(SIMD)、多指令单数据(MISD)、多指令多数据(MIMD)。

带宽:单位时间内可处理的数据量,通常表示为MB/s,GB/s。

吞吐量:单位时间内成功处理的运算数量,通常表示为gflops(即每秒十亿次的浮点运算数量)。

延迟:一个操作从开始到完成所需要的时间,常用微秒表示。

GPU:多线程,多指令多数据,单指令多数据以及指令级并行。英伟达称之为单指令多线程。

 CPU和GPU通过单个计算节点中的PCI-Express总线相连。

同构计算使用的是同一架构下的一个或多个处理器来执行一个应用,而异构计算则使用一个处理器来执行一个应用。

异构架构

一个典型的异构计算节点包括两个多核CPU插槽和两个或更多个众核GPU。GPU是CPU的协处理器。CPU主机端,GPU从机端。

描述GPU容量的两个重要特征:CUDA核心数量、内存大小

评估GPU性能的两个指标:峰值计算性能、内存带宽

峰值计算性能:定义为每秒能处理的单精度或双精度浮点运算的数量,通常用GFlops(每秒10亿次浮点运算)或TFlops(每秒万亿次浮点运算)来表示。

内存带宽:通常用GB/s表示。是从内存中读取或写入数据的比率。

一个CUDA程序包含了在CPU上运行的主机代码和在GPU上运行的设备代码。

主机代码使用C编译器编译,设备代码通过nvcc编译。 源程序文件后缀.cu。

CUDA编程结构:

1.分配GPU内存

2.从CPU内存中拷贝数据到GPU内存

3.调用CUDA内核函数来完成程序指定的运算

4.将数据从GPU拷回CPU内存

5.释放GPU内存空间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值