异构计算
编辑异构计算是指使用不止一种处理器或内核的系统。 这些系统不仅通过添加相同类型的处理器来提高性能或能效,而且还通过添加不同的协处理器来提高性能或能效,这些协处理器通常结合专门的处理能力来处理特定任务。
异质性
编辑通常计算上下文中的异构性指的是不同的指令集架构 (ISA),其中主处理器有一个而其他处理器有另一个——通常是非常不同的——架构(可能不止一个),而不仅仅是不同的微架构(浮动 点数处理是这种情况的特例——通常不称为异构)。
在过去,异构计算意味着必须以不同方式处理不同的 ISA,而在现代示例中,异构系统架构 (HSA) 系统在使用多种处理器类型(通常是 CPU 和 GPU)时消除了差异(对于用户),通常在 相同的集成电路,以提供两全其美:通用 GPU 处理(除了 GPU 众所周知的 3D 图形渲染功能外,它还可以对非常大的数据集执行数学密集型计算),而 CPU 可以运行 操作系统并执行传统的串行任务。
随着制造技术的进一步扩展允许以前的分立组件成为片上系统或 SoC 的集成部分,现代计算系统中的异构性水平正在逐渐增加。 例如,许多新处理器现在包括用于与其他设备(SATA、PCI、以太网、USB、RFID、无线电、UART 和内存控制器)以及可编程功能单元和硬件加速器(GPU、密码学)接口的内置逻辑 协处理器、可编程网络处理器、A/V 编码器/解码器等)。
最近的研究结果表明,利用多个 ISA 提供的多样性的异构 ISA 芯片多处理器可以比最佳的相同 ISA 同构架构高出 21%,节能 23%,能量延迟积 (EDP) 减少 32% . AMD 2014 年发布了其引脚兼容的 ARM 和 x86 SoC,表明正在制作异构 ISA (ARM+x86) 芯片多处理器。
异构 CPU 拓扑结构
具有异构 CPU 拓扑结构的系统是使用相同 ISA,但内核本身速度不同的系统。 该设置更类似于对称多处理器。 (虽然这样的系统在技术上是不对称的多处理器,但核心在角色或设备访问方面没有区别。)通常有两种类型的核心:通常称为大核心或 P 核心的更高性能核心和通常称为更节能的核心 作为小型或E-核心。
这种拓扑的常见用途是在移动 SoC 中提供更好的电源效率。
- ARM big.LITTLE(由 DynamIQ 继承)是典型案例,其中更快的高功率内核与更慢的低功率内核相结合。
- Apple 已经通过类似的组织生产了 Apple 硅 ARM 内核。
- 英特尔还生产了代号为 Lakefield 的混合 x86-64 内核,尽管在指令集支持方面并非没有重大限制。 较新的 Alder Lake 通过向小型内核添加更多指令集支持来减少牺牲。
挑战
编辑异构计算系统提出了典型同构系统中没有的新挑战。 多个处理元素的存在引发了同构并行处理系统所涉及的所有问题,而系统中的异质性水平可能会在系统开发、编程实践和整体系统能力方面引入非一致性。 异质性领域可能包括:
ISA 或指令集架构计算元素可能具有不同的指令集架构,导致二进制不兼容。ABI 或应用程序二进制接口计算元素可能以不同的方式解释内存。 这可能包括字节顺序、调用约定和内存布局,并且取决于所使用的体系结构和编译器。
API 或应用程序编程接口库和操作系统服务可能无法统一用于所有计算元素。语言特性的低级实现语言特性 例如函数和线程通常使用函数指针实现,这是一种在异构环境中使用时需要额外转换或抽象的机制。内存接口和层次结构计算元素可能具有不同的缓存结构、缓存一致性协议,并且内存访问可能是统一的或非 统一内存访问 (NUMA)。 由于某些处理器/单元只能执行字节、字或突发访问,因此在读取任意数据长度的能力方面也存在差异。互连 除了基本内存/总线接口之外,Compute 元素可能具有不同类型的互连。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196005/