文档详情

GPU并行计算与CUDA编程01.pdf

发布:2017-04-11约字共44页下载文档
文本预览下载声明
第一版 讲师 罗韵 (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. 为了平衡内存延时的问题,我们可 以
显示全部
相似文档