Workload Characterization & Priority & Scheduler to CPU/GPU/PIM
问题的逻辑对象的特征提取
workload的计算范式的原子性和通用性
- 调度单元的划分:一个实际的程序,肯定由许多特征不同的,互不相关(但有执行依赖关系)的Kernel组成
- e.g, 矩阵乘,for循环kernel。(但是这需要对程序的算法十分了解)
- Kernel特征:
- 计算密度,
- 访存空间局部性,时间局部性,(导致的cache miss率,但是这和cache硬件设计可能有关)
- 并行能力
代码的实现效率
- 代码编写质量,是不是最高效的算法的实现。
- 代码对于特定硬件(e.g, Tensor core, 独立的视频编解码单元)的使用和利用率。
硬件的参数
- 浮点计算性能
- 各级访存带宽和延迟
- 并行单元数量
问题的难点
方法的选择
整个系统需要考虑的因素过多,不经过抽象和筛选只有AI能做。
(畅想)另一种是简化的结构化分析模型(mechanistic analysis model, MAM)(包含上面提及的),采取生产者消费者+多角度利用率限制的思路
- 多角度限制:从计算、访存和通讯等多个角度衡量,应用对硬件的利用率。最终性能等于各角度等效性能取最小,这样还能知道那个角度是瓶颈。
- 生产者消费者:问题的关键在于怎么建模这里面的限制: 硬件支持的能力(生产),软件能使用的部分(消耗)。软件受到什么限制导致不能利用上该角度全部的性能。
- kernel per cycle的优势 指标考虑了应用在硬件上的效果
例子
例子,一个应用在分析访存角度时,上限是想消费完全部,但是有来自其他角度的限制,比如计算单元吃不消这么多数据,网络通讯或者下一级存储提供不了这么多数据
例子补充,并行度的限制Restrictline,GPU计算能力强,但是分散在各自单元,对应用的并行度和通讯角度都有要求
可视化
可视化 三维的利用率作为坐标轴。 只有三个指标都为1。意味着是平衡的设计。
画图补充,三维的绝对值的图,可以看出限制维度,不同硬件间的直观对比和应用在硬件上的绝对性能
实验的难点
- Naive idea of evaluation: 在三者的模拟器里跑同一个应用,ISA的不同如何处理
- MAM 里硬件的参数和软件的特定参数都需要 实现自动化测量。否则就需要对细节了解,硬件有哪些特殊单元,软件算法的计算密度的理论值是多少。
literature review : Workload Characterization
AI
- 线性回归[^1]
GPTs Consensus:
当然可以,以下是针对如何确定一个应用是否适合在CPU、GPU、FPGA或PIM上运行的研究概述,而不依赖于AI和机器学习方法:
FPGA用于实时应用和功能安全:在功能安全至关重要的航空航天和国防应用中,FPGA是首选。与CPU和GPU相比,FPGA提供更高的性能、更低的功耗、更低的延迟和更低的实施成本。FPGA能够实时进行面部识别,准确率和精度都很高 (Selvi, Bharanidharan, Qadir, & R., 2021)。
混合GPU-FPGA平台用于机器学习:在混合平台上,机器学习应用的训练部分在GPU上,推理部分在FPGA上,这种设置非常有效。这样的配置提供了相对于基于CPU的解决方案的显著速度优势,FPGA提供了最快的推理速度 (Liu, Ounifi, Gherbi, Lemieux, & Li, 2018)。
FPGA在低功耗和高性能方面的优势:随着FPGA技术越来越多地被认可,其在性能和功耗平衡方面具有优势,特别是在边缘设备中。它们适合作为CPU加速器,并在功耗和发热量方面提供了相对于GPU的优势 (Shibata, Ohtsuka, Takahashi, & Okamoto, 2018)。
FPGA与GPU和ASIC的能效对比:虽然GPU提供快速的计算速度,但FPGA在较低速度下显示出更好的能源效率。另一方面,ASIC由于针对性设计,在性能和能源消耗方面处于领先地位,但灵活性较低,适合于特定类型的机器学习算法 (Du & Du, 2017)。
FPGA用于边缘AI计算:由于FPGA的功耗比GPU和CPU低,因此它们更适合用于边缘AI计算。它们还适用于实时AI应用,这些应用同时需要高吞吐量和低延迟 (Al-Ali, Doremure Gamage, Nanayakkara, Mehdipour, & Ray, 2020)。
总结来说,选择CPU、GPU、FPGA或PIM来运行应用程序取决于实时处理需求、能源效率、计算强度和功能安全要求等因素。在需要平衡性能和功效,特别是在实时和边缘计算场景中,FPGA作为一个
强有力的候选者脱颖而出。
参考文献
[^1]: Scheduling Techniques for GPU Architectures with Processing-In-Memory Capabilities
[^2]: PIE
[^3]: PACT 17
Workload Characterization & Priority & Scheduler to CPU/GPU/PIM
http://icarus.shaojiemike.top/2024/01/13/Work/Architecture/workloadPriority/