这次回顾ECE408 Lecture 1,这次的内容是课程介绍。

课程主页:

搬运视频:

课程目标

  • 学习对大规模并行处理器进行编程并实现
    • 高性能;
    • 功能性和可维护性;
    • 后续的可扩展性;
  • 技术相关
    • 并行编程基础;
    • 并行算法的原理和模式;
    • 编程API、工具和技术;
    • 处理器架构特性和限制;
    • 杀手级应用;

课本/笔记

课程的配套书有两本:

范式转移

  • 旧范式
    • 我们能够理解、设计和制造我们可以测量的东西;
    • 物理仪器让我们看得更远、捕获更多、更好地沟通、了解自然过程、控制人工过程;
  • 新范式
    • 我们能够理解、设计和创造我们可以计算的东西;
    • 计算模型让我们看得更远,及时来回,更好地学习,测试无法以任何其他方式验证的假设,创建安全的人工过程;

范式转移的例子

  • 常规半导体光刻->计算校正;
  • 电子显微镜->计算显微镜;
  • 胶片摄影->深度学习驱动的计算成像;
  • 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。

并行编程工作流程

  • 识别应用程序的计算密集型部分;
  • 采用/创建可扩展算法;
  • 优化数据安排以最大化局部性;
  • 性能调整;
  • 注意代码的可移植性、可扩展性和可维护性;

并行编程的性能瓶颈

负载平衡

完成并行作业的总时间受完成时间最长的线程的限制:

全局内存带宽

冲突的数据访问导致序列化和延迟

  • 大规模并行执行无法承受序列化;
  • 访问关键数据的争用导致序列化;