在当今的计算世界,异构计算正逐渐成为主流。这种技术利用多种不同类型的处理器或核心,旨在提高性能和能效。随着系统设计的演变,过去的挑战与机遇依然仰赖我们如何处理这些崭新的计算架构。
异构计算系统中的核心概念在于,通过不仅仅是增加相同类型的处理器,而是添加具有专门处理能力的异构协处理器来实现性能的提升。
异构计算系统通常涉及不同的指令集架构(ISA),而这种异构性不仅表现在微架构的差异上,更在于设计与计算模型的再造。现代的异构系统架构(HSA)消除了用户在使用多处理器类型时的繁琐,使得CPU与GPU可在同一晶片上高效运作。这允许一般的GPU进行数学计算,并使CPU能够负责操作系统和传统的串行任务。
最新的研究显示,利用多个ISA所带来的多样性,异构ISA的芯片多处理器比最佳的同ISA的均质架构性能高达21%,并节省23%的能源,并减少32%的能源延迟产品(EDP)。
在异构CPU拓扑中,虽然使用的是相同的ISA,但核心之间的速度和效能差异却可以显著影响整体系统的表现。在这里,通常会将核心分为高效能核心(通常称为「大核」)与更具能源效率的核心(称为「小核」)。这种拓扑通常用于提供更好的能源效率,特别是在移动系统上的应用。
尽管异构计算系统提供了潜在的性能增益,但它们也带来了许多挑战,这些挑战在传统的均质系统中并不常见。以下是一些主要的挑战:
异构计算硬体遍及各个计算领域,从高端伺服器到低功耗嵌入式设备,其中包括智慧型手机和平板电脑。例如,许多新处理器现在内建与其他设备接口的逻辑,包括SATA、PCI、以太网、USB等。此外,还有大量的硬体加速器,如GPU和加密协处理器,这使得异构系统的应用变得更加广泛。
例如,ARM的big.LITTLE技术将高效能的高功率核心与低功耗的慢速核心相结合,达到提升能源效率的效果。
随着技术的持续进步,异构计算系统的潜力看起来将持续扩大。但如果我们希望解决异构计算中的各种挑战,必须思考如何更有效地整合不同的计算元件,改进程式设计模型以及提升编程的透明度。在未来,我们该如何面对异构计算带来的机遇与挑战,从而让技术更好地服务于人类?