ECE408 Lecture 1 Introduction to the Course
这次回顾ECE408 Lecture 1,这次的内容是课程介绍。
课程主页:
搬运视频:
课程目标
- 学习对大规模并行处理器进行编程并实现
- 高性能;
- 功能性和可维护性;
- 后续的可扩展性;
- 技术相关
- 并行编程基础;
- 并行算法的原理和模式;
- 编程API、工具和技术;
- 处理器架构特性和限制;
- 杀手级应用;
课本/笔记
课程的配套书有两本:
- D. Kirk and W. Hwu, “Programming Massively
Parallel Processors – A Hands-on Approach,”
Morgan Kaufman Publisher, 3rd edition, 2016,
ISBN 978-012381472 - NVIDIA, NVidia CUDA C Programming Guide,
version 7.5 or later (reference book)
范式转移
- 旧范式
- 我们能够理解、设计和制造我们可以测量的东西;
- 物理仪器让我们看得更远、捕获更多、更好地沟通、了解自然过程、控制人工过程;
- 新范式
- 我们能够理解、设计和创造我们可以计算的东西;
- 计算模型让我们看得更远,及时来回,更好地学习,测试无法以任何其他方式验证的假设,创建安全的人工过程;
范式转移的例子
- 常规半导体光刻->计算校正;
- 电子显微镜->计算显微镜;
- 胶片摄影->深度学习驱动的计算成像;
- X射线->CT和MRI重建扫描;
- 固定电话->Zoom视频会议;
- 汽车->自动驾驶电动出租车;
- 印刷和广播广告->人工智能辅助数字广告投放;
为什么现在会发生范式转移呢?是因为Dennard缩放比例定律。
MOS器件的Dennard缩放比例定律
Dennard缩放比例说的是(来自链接):
晶体管的尺寸在每一代技术中都缩小了30% (0.7倍) ,因此它们的面积减少了50% 。这意味着电路减少了30% (0.7倍)的延迟,因此增加了约40% (1.4倍)的工作频率。最后,为了保持电场恒定,电压降低了30% ,能量降低了65% ,功率降低了50% 。因此,在每一代技术中,晶体管密度增加一倍,电路速度提高40% ,功耗(晶体管数量增加一倍)保持不变。
大意就是随着工艺的进步,芯片的性能越来越强,这和我们熟知摩尔定律结论类似。通过两个图来理解这个定律。
1993-2003的芯片时钟频率变化:
处理器的总功耗:
但是上述定律无法一直有效,因为当时钟频太高时,散热就会成为瓶颈。
后Dennard计算机体系结构
- 具有更适中时钟频率的多核;
- 大量使用线程,向量执行;
- 具有面向延迟的内核、面向吞吐量的内核和专用内核的片上系统;
- 3D封装以获得更多内存带宽;
CPU和GPU
CPU:面向延迟的设计
- 高时钟频率
- 大缓存
- 将长延迟内存访问转换为短延迟缓存访问;
- 精密控制
- 减少分支延迟的分支预测;
- 减少数据延迟的数据转发;
- 强大的ALU
- 减少操作延迟;
图示:
GPU:面向吞吐量的设计
- 适中的时钟频率
- 小缓存
- 提高内存吞吐量;
- 简单的控制
- 无分支预测;
- 无数据转发;
- 节能的ALU
- 许多、长延迟但大量流水线以实现高吞吐量;
- 需要大量线程来容忍延迟;
图示:
实物比较
如今计算密集型应用程序的设计方法
- CPU用于延迟受到影响的顺序部分的
- 对于顺序代码,CPU比GPU快10倍;
- GPU用于吞吐量获胜的并行部分
- 对于并行代码,GPU比CPU快10倍;
所谓异构计算,就是指两种类型的处理器合作协同进行计算,最经典的就是CPU+GPU。
并行编程工作流程
- 识别应用程序的计算密集型部分;
- 采用/创建可扩展算法;
- 优化数据安排以最大化局部性;
- 性能调整;
- 注意代码的可移植性、可扩展性和可维护性;
并行编程的性能瓶颈
负载平衡
完成并行作业的总时间受完成时间最长的线程的限制:
全局内存带宽
冲突的数据访问导致序列化和延迟
- 大规模并行执行无法承受序列化;
- 访问关键数据的争用导致序列化;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere