异构计算硬件环境
- 异构计算分类
- 异构处理器
- GPU处理器
- APU
- 众核协处理器
- FGPA
- ASIC处理器
- AI处理器
异构计算分类
可以分为系统异构计算和网络异构计算两类。
系统异构计算(SHC)
分为单机多计算方式和单机混合计算方式两大类,以单机多处理器形式提供多种计算类型。
单机多计算方式:同一时刻允许以多种计算方式执行任务
单机混合计算方式:在同一时刻只允许以一种计算方式执行任务,但在不同时刻计算可以从一种方式自动切换到另一种方式,如simd和mimd方式间的切换。
SHC的多处理器:
- 高性能计算(GPU等)
- 半定制计算芯片(FPGA)
- 专用计算芯片(ASIC)
- 神经网络计算(NPU)
网络异构计算(NHC)
分为同类异型多机方式和异类混合多机方式两类。
同类异型多机方式中使用的多机,他们的结构属于同一类,即支持同一种并行性类型(如smid、mimd、向量等类型之一),但型号可能不同,因此性能可以各有差异。通常的now(工作站网络)或cow(工作站集群)为同类同型多机方式,因此可以看成是同类异型多机方式中的特例。
异类混合多机方式中使用的多机,他们的结构则属于不同类型。
NHC:
- 分布式计算
- 集群计算
- 网格计算
- 云计算
分布式计算
主要研究分布式系统如何进行计算,分布式系统是一组电子计算机,透过计算机网络相互连结与通讯后形成的系统。
把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。
集群计算
它通过一组松散集成的计算机软件和/或硬件连结起来高度紧密地协作完成计算工作
集群计算机按功能和结构可以分为以下几类:
高可用性集群
负载均衡集群
高性能计算集群
网格计算
通过利用大量异构计算机,通常为台式机的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。
网格计算或网格集群是一种与集群计算非常相关的技术。网格与传统集群的主要差别就是网格是连接一组相关并不信任的计算机,他的运作更像是一个计算公共设施而不是一个独立的计算机。网格通常比集群支持更多不同类型的计算机集合。
云计算
云计算是最新开始的新概念,它不只是计算等计算机概念,还有运营服务等概念。它是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。
云计算不但包括分布式计算还包括分布式存储和分布式缓存。
分布式存储又包括分布式文件存储和分布式数据存储。
异构处理器
GPU
将更多元件用于数据处理,而非控制和存储
SMIT(单指令多线程)并行
适于可大规模并行的向量计算
专注于计算
以SIMD/SIMT的方式支持大规模并行计算
并非任何计算过程都可迁移到GPU
不支持复杂的逻辑,不单独使用
仅作为辅助CPU的加速计算设备
GPU/CPU延迟与吞吐量对比
CPU:通过大的缓存保证线程访问内存的低延迟,但内存带宽小,执行单元太少,数据吞吐量小。
需要硬件机制保证缓存命中率和数据一致性
GPU:高显存带宽和很强的处理能力提供了很大的数据吞吐量
缓存不检查数据一致性
直接访问显存延迟时可达数百乃至上千时钟周期
GPU适用场景:
GPU只有在计算高度数据并行任务时才能发挥作用。在这类任务中,需要处理大量的数据,数据的储存形式类似于规则的网格,而对这写数据的进行的处理则基本相同。这类数据并行问题的经典例子有:图像处理,物理模型模拟(如计算流体力学),工程和金融模拟与分析,搜索,排序。
在很多应用中取得了1-2个数量级的加速
GPU不适用场景
需要复杂的数据结构的计算如树,相关矩阵,链表,空间细分结构等,则不适用于适用GPU进行计算。
串行和事务性处理较多的程序
并行规模很小的应用,如只有数个并行线程
需要ms量级实时性的程序
APU
APU(加速处理器)集成了高性能串行和并行处理内核,在视觉运算、安全性、每瓦性能以及设备外形方面取得了重大的突破。
众核协处理器
FPGA
半定制电路
FPGA的优点如下
由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路。
可通过使用框图或者Verilog HDL来设计,从简单的门电路到FIP或者FFT电路。
可无限地重新编辑,加载一个新的设计方案只需要几百毫秒,利用重配置可以减少硬件的开销。
工作频率由FGPA芯片以及设计决定,可以通过修改设计或者更换更快的芯片来达到某些苛刻的要求(当然,工作频率也不是无限制的可以提高,受当前的IC工艺等因素制约)。
FPGA的缺点如下:
所有功能均依靠硬件实现,无法实现分支条件跳转等操作。
不能直接实现浮点运算。
FPGA并行计算
流水线
B = A * 2 + 1
能用的计算单元为两输入加法器和两输入乘法器
为了保证时序,一个时钟周期内加法器只能执行一次加法
为了保证时序,一个时钟周期内乘法器只能执行一次乘法