计算系统的演变一直致力于追求更高的性能、效率以及处理日益多样化的应用程序和工作负载的能力。几十年前,系统主要由同构架构主导,其中一种类型的处理器执行所有任务。然而,随着处理需求的增加,尤其是图形、多媒体和人工智能应用的兴起,人们意识到通用方法无法最佳地满足所有需求。这一认识促使人们开发和采用了异构架构,多种类型的处理单元协同工作以优化性能和能效。
异构架构在一个系统中集成了不同类型的处理器,如CPU(中央处理单元)、GPU(图形处理单元)、TPU(张量处理单元)和其他专用加速器。这种方法使每种类型的处理器能够处理其最擅长的任务。例如,GPU在大规模并行计算操作中极其高效,而CPU则更加通用,适用于具有中等并行度的控制任务。这些元素的组合使异构系统能够在广泛的应用中提供卓越的性能。
这一趋势的一个显著例子是苹果M架构的演变,始于2020年M1芯片的发布[1]。M1通过在一个系统芯片(SoC)中集成高性能和高效率的CPU、多核GPU、矩阵乘法协处理器、专用的机器学习任务神经引擎(ANE)以及其他各种专用组件,标志着一个重要的里程碑。这种集成使得配备该芯片的设备能够提供高性能,同时保持良好的能效,并优化从日常任务到密集图形处理和人工智能应用的多种工作负载的执行。
M1芯片的成功之后,M2、M3和M4(也有Pro和Max版本)相继发布[2]。这些芯片通过增加核心数量和显著提升的内存带宽进一步扩展了异构能力。这些芯片不仅在专业和高需求任务中提升了性能,还展示了如何在单个芯片中集成多种类型处理单元来有效应对现代应用的挑战。
苹果向其M芯片过渡到异构架构,是计算行业更广泛趋势的一个例子。随着应用的不断发展和处理需求的多样化,预计异构架构将在各种设备和平台上得到更广泛的应用。这一趋势不仅有望提高计算系统的性能和效率,还为计算机架构领域的研究和发展带来了新的挑战和机遇。
半导体行业的其他主要参与者也探索了异构计算架构。ARM的big.LITTLE架构结合了高性能和节能的CPU核心,这是一种在移动和嵌入式系统中平衡性能和功耗的类似方法[3]。同样,NVIDIA的Jetson系统芯片(SoC)平台[4]集成了ARM CPU、NVIDIA GPU和专用深度学习加速器(DLA),采用统一内存架构,在边缘端利用了异构设计。在服务器领域,AMD在加速处理单元(APU)中集成了CPU和GPU,并通过AMD MI300A系列实现了HPC和人工智能(AI)的融合[5]。英特尔在第12代Alder Lake处理器中引入的混合架构也集成了性能核心(P-core)和效率核心(E-core),以提高多线程性能,同时保持能效[6]。然而,苹果的M系列芯片因其统一的架构、CPU、GPU和AI加速器的无缝集成以及与macOS和iOS软件的紧密耦合而脱颖而出。
尽管异构SoC的采用率不断增长,但对于它们在不同计算单元在现实条件下执行常见计算内核时的表现仍了解有限。对于苹果的M系列芯片,尽管其架构因其性能和效率而受到广泛赞誉,但关于每个内部组件(CPU、GPU、AMX和ANE)如何贡献于整体计算效率的科学文献却很少。为了在苹果M系列系统的异构计算引擎之间进行有控制的、以架构为中心的比较,我们使用GEMM作为案例研究。GEMM是一个基本的、经过广泛优化的核心,在CPU、GPU和ML加速器中得到统一支持,使其成为跨引擎评估的可靠基准。其可调的维度、精度和并行性使我们能够隔离架构特性(例如计算吞吐量和效率),而不会引入框架或应用程序层面的变异性。此外,由于GEMM是许多科学计算和机器学习工作负载的基础,它提供的见解超越了单个内核的范围,同时足够精确以揭示异构单元之间的架构差异。
这提出了一个基本问题:对于像GEMM这样的代表性且广泛使用的计算任务,这些异构组件中哪一个在性能和能耗之间提供了最佳的平衡?解决这个问题不仅有助于描述苹果的硬件,也有助于我们更深入地理解现代异构架构中的设计权衡。为此,本研究对苹果M系列处理器的几代产品进行了系统的性能和能效评估,比较了其主要计算引擎的能力和局限性。
在这项工作中,第2节首先介绍了一些相关工作,第3节介绍了目标平台。第4节详细介绍了用于表征系统性能和能耗的软件。第5节展示了获得的结果。最后,第6节得出了某些结论。