如何释放异构计算的潜能?Imagination与Baya Systems的系统架构实践启示

作者:Ted Hazell

你是否正在设计多核或CPU/GPU混合系统,却依然未能达成性能目标?你并不孤单。如今,系统架构师们不断追求构建更强大的SoC,过于专注于计算能力的“堆砌”:更多核、更快引擎、更强AI加速。然而现实是:如果数据无法及时送达,再强的算力也无从发挥。

在2025年Andes RISC-V大会上,Imagination Technologies与Baya Systems联手深入剖析了这一挑战,结果令人震惊。两家公司利用Baya的CacheStudio工具,对CPU、GPU及混合计算系统中的缓存行为进行了建模分析。

目的就是要揭示:尽管硬件资源充足,现实中的异构计算性能为何仍频频“失速”。那么,让我们一起来看看他们的发现,以及这些见解如何帮助你打造更好、更快、更高效的系统。

Imagination与Baya Systems的系统架构实践启示

关注Imagination公众号(Imgtec),消息框发送【异构计算】,即可查看完整报告。

Imagination公众号


隐藏的瓶颈:不是算力不足,而是数据流动受限

现代SoC的性能瓶颈早已不再是纯粹的计算能力。相反,系统越来越受到数据在各处理单元与存储层级之间传输效率的限制。

即使将CPU、GPU及各种加速器集成到同一芯片上,也并不自动等同于性能提升。事实上,若架构缺乏精细协同,这种集成反而可能带来资源竞争、延迟增加以及缓存效率下降等问题。

本次研究将缓存行为作为一种潜在的诊断工具,旨在揭示系统中的关键性能限制点,同时更深入地理解异构计算单元在缓存大小配置、一致性管理及内存访问模式方面所面临的权衡取舍。

尽管这些发现提供了诸多有价值的洞见,但应结合本研究的具体范围与假设前提进行解读。以下是部分关键发现:


纯CPU负载:优先考虑时间局部性与分层缓存策略

一级缓存(L1): 性能提升随着缓存容量的增加呈线性趋势。将L1从16 KB提升至64 KB,命中率从约94.5%提升至约97.8%。这验证了CPU主导型任务具备显著的时间局部性——即最近访问的数据很可能会在短时间内再次被访问。

二级缓存(L2): 命中率与L1容量呈负相关关系。随着L1缓存吸收更多访问请求,L2的利用率下降,从16 KB L1配置下的约50–56%降至64 KB L1下的约14–28%。这表明L2应侧重于一致性管理与回退路径延迟优化,而非盲目扩展容量。

三级缓存(L3): 命中率维持在相对中等的水平(20–35%),其主要作用在于多核之间的一致性维护以及降低对DRAM的访问压力。

实际启示:对于以CPU为主的工作负载,最佳性能依赖于为每个核心配置合适容量的私有L1缓存,同时针对延迟与一致性需求精细调优L2。L3缓存主要在多核或共享内存环境中发挥作用,特别是在DRAM压力或一致性流量较高时更为关键。


纯GPU负载:单靠加大缓存容量无法弥补访问模式的不规则性

一级缓存(L1): 相较于CPU,GPU工作负载的L1命中率更低——随着缓存从16 KB扩展到64 KB,命中率仅从约54%提升至约73%。这一收益受限,主要归因于高并行计算中常见的发散式和分散式内存访问模式。

二级缓存(L2): 随着L1缓存增大,L2性能显著下降。在16 KB L1配置下,L2命中率可达约55%;但当L1提升至64 KB时,命中率骤降至6–7%。这表明,过度放大上层缓存可能会破坏下层缓存的重用机会。

三级缓存(L3): 在所有配置下,L3利用率始终偏低,最高命中率仅约为2.2%。这可能反映出GPU的流式数据访问模式以及线程间局部性较差的特点。

实际启示: GPU的内存层级性能高度依赖于软件层的访问优化,例如本地存储使用、数据分块(tiling)及显式同步,而不能仅依赖传统的缓存层次结构。硬件改进必须与面向负载的编程模型相结合,才能充分发挥性能。


混合负载:缓存层级的协同至关重要

一级缓存(L1): CPU和GPU线程的命中率均有提升,随着L1从16 KB扩展至64 KB,命中率从约94%提升至约97%。

二级缓存(L2): 行为对配置变化极为敏感。例如,在配置为256 KB L2和16 KB L1时,L2命中率达到61.7%;但当配置变为64 KB L1和64 KB L2时,命中率下降至23.2%。这表明在设计时必须同时考虑各级缓存的替换模式(eviction patterns)。

三级缓存(L3): 在L1和L2容量不足的情况下,L3展现出显著优势。配置为1024 KB的L3时,对于较小L1/L2配置,命中率最高可达57%。

DRAM访问流量: 随着缓存层级协调优化,内存访问量显著下降,从最小缓存配置下的约38.5万次访问减少至优化配置下的约32.8万次。

实际启示:在异构计算环境中,缓存设计不能孤立于某一处理引擎。必须精心架构各层缓存与计算单元之间的交互机制。经常被低估的L3,在降低DRAM压力和提升系统整体响应能力方面发挥着关键作用。


设计的重点应是数据流,而非仅仅追求FLOPS(浮点运算性能)

本研究再次强调系统架构设计中的核心原则:在异构计算环境中,性能扩展的决定因素并非计算引擎的数量,而是这些引擎与共享内存及互连架构的协同方式。

CacheStudio并非终点工具,而是一个分析代理,可用于揭示系统中不易察觉的性能下降,并在设计初期为更优架构决策提供指导依据。

以协同为核心进行架构设计,而非各自为战

针对CPU、GPU及混合负载,本研究得出以下关键结论:

  • 纯CPU负载需配备针对性配置的私有L1缓存及延迟优化的L2缓存。
  • 纯GPU负载需要架构层面支持发散式内存访问,并辅以软件层面的访问优化。
  • 混合负载在依赖L3一致性缓冲和多级缓存平衡配置方面获益最大。
  • 系统级性能剖析对于预判内存压力、指导缓存层级设计至关重要。

结论明确:聪明的架构优于一味堆砌算力。

通过聚焦数据流动与内存协调,工程师才能真正释放异构计算系统的全部潜力。

如何获取完整报告:

关注Imagination公众号(Imgtec),消息框发送【异构计算】,即可查看完整报告。

Imagination公众号

原文链接:https://blog.imaginationtech.com/why-your-heterogeneous-compute-system-isnt-performing

声明:本文为原创文章,转载需注明作者、出处及原文链接,否则,本网站将保留追究其法律责任的权利。

最新文章