GPU并行计算与CUDA编程01.pdf
文本预览下载声明
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
GPU并行计算与CUDA编程 第1课
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
本周介绍内容
? 0. 课程参考资料
? 1. GPU并行计算的原理与意义
? 2. CUDA硬件环境,体系结构,常见的显卡型号与性能,显卡的选择与显存需求估计
? 3. CUDA软件环境介绍,包括平台、架构、开发工具和热点技术
? 4. 租用AWS云服务的环境搭建步骤
? 5. 本地机器的环境搭建步骤
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
0.课程参考资料
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
1. GPU并行计算的原理与意义
? CPU和GPU的区别
? 图片来自NVIDIA CUDA文档。其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。
? GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache
占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
? CPU的发展:处理器越来越小,处理速度越来越快,处理核变多。
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
? 为什么CPU不可以一直沿着趋势发展下去?
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
? 性能(低延时性Latency)与吞吐量(Throughput)
? Cache, local memory: CPU GPU
? Threads(线程数): GPU CPU
? Registers: GPU CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须
得跟着很大才行。
? SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU CPU。
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
CPU:基于低延时性设计
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
? ALU:CPU有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。
? 当今的CPU可以达到64bit 双精度。执行双精度浮点源算的加法和乘法只需要1~3个时钟周期
。
? CPU的时钟周期的频率是非常高的,达到1.532~3gigahertz(千兆HZ, 10的9次方).
? Cache:大的缓存也可以降低延时。保存很多的数据放在缓存里面,当需要访问的这些数据,只要
在之前访问过的,如今直接在缓存里面取即可。
? Control:复杂的逻辑控制单元。
? 当程序含有多个分支的时候,它通过提供分支预测的能力来降低延时。
? 数据转发。 当一些指令依赖前面的指令结果时,数据转发的逻辑控制单元决定这些指令在
pipeline中的位置并且尽可能快的转发一个指令的结果给后续的指令。这些动作需要很多的对
比电路单元和转发电路单元。
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
GPU:基于吞吐量设计
第一版 讲师 罗韵 (WeChat:LaurenLuoYun)
DATAGURU专业数据分析社区
? ALU,Cache:GPU的特点是有很多的ALU和很少的cache. 缓存的目的不是保存后面需要访问的
数据的,这点和CPU不同,而是为thread提高服务的。如果有很多线程需要访问同一个相同的数据
,缓存会合并这些访问,然后再去访问dram(因为需要访问的数据保存在dram中而不是cache里
面),获取数据后cache会转发这个数据给对应的线程,这个时候是数据转发的角色。但是由于需
要访问dram,自然会带来延时的问题。
? Control:控制单元(左边黄色区域块)可以把多个的访问合并成少的访问。
? GPU的虽然有dram延时,却有非常多的ALU和非常多的thread. 为了平衡内存延时的问题,我们可
以
显示全部