硬件约束对编程模型设计的影响与未来趋势
们探讨了从软件到硬件的编程模型演变,介绍了两种不同的定义:广义上,它涵盖了从应用层到芯片层的所有中间环节;而狭义上,它主要关注应用层与微架构层之间的交互,以及上层行为在下一层的执行方式。这些中间层的存在,无疑会对芯片上的应用性能产生影响。因此,为了充分发挥芯片的性能潜力,我们需要深入思考每一层编程模型的设计初衷。本篇将继续这一探索,从演化论的角度,探讨硬件约束如何影响编程模型的设计。
01硬件三墙的影响
► 三堵高墙
吉恩·阿姆达尔(Gene Amdahl)在1967年提出了著名的“Amdahl定律”,揭示了并行计算性能随线程数增加而边际效用递减的规律。然而,同年他还提出了另一条原则,这条原则有时被称为“Amdahl的另一条定律”或“Amdahl Rule of Thumb”。 他指出,硬件架构设计必须平衡算力、内存带宽以及I/O带宽。理想情况下,处理器计算性能与内存带宽及I/O带宽的比例应为1:1:1,即每百万条指令数每秒(MIPS)的计算性能需配备1兆字节(MB)的内存和1兆比特每秒(Mbps)的I/O带宽。
然而,随着时间的推移,硬件性能之间的平衡被逐渐打破。当硬件性能的错位无法通过体系结构与编程模型的设计来调和时,计算系统便遭遇了所谓的“ 内存墙”、“ 功耗墙”和“ I/O墙”。这些高墙的形成,不仅限制了计算系统的性能提升,还对编程模型的设计提出了新的挑战。如图1所示,自1980年至2020年,CPU计算性能、内存带宽、磁盘带宽以及网络带宽的增长速度各不相同。 这种增速的错位,类似于地壳运动中板块间的错位所形成的悬崖峭壁,也导致了计算系统中不同模块性能之间的张力。随着集成电路工艺的发展,计算系统的内存带宽与I/O带宽的比例自1985年后便无法再维持理想状态。

► 内存墙
随着集成电路工艺的发展,计算系统的内存带宽与I/O带宽的比例自1985年后便无法再维持理想状态。这使得“Amdahl的另一条定律”所倡导的1:1:1比例逐渐成为过去。产业界和学术界普遍认为,自1995年后内存性能与CPU性能的错位形成了“内存墙”。
为了应对内存墙的问题,计算机体系结构研究领域提出了两大创新技术: 高速缓存(Cache)和内存级并行性(Memory-Level Parallelism, MLP)。高速缓存基于局部性原理,减少CPU对主存的访问次数来提升性能。具体而言,当处理器首次访问某块内存区域时,该区域的数据会被复制到芯片上的高速缓存中, 此后,若再次需要访问这些数据,处理器可以直接从高速缓存中获取,无需再访问外部存储器,从而显著提高了访问速度。
► 功耗墙
摩尔定律推动着单个晶体管的速度不断攀升,同时面积和成本却呈指数级下降。然而,随着芯片上晶体管数量的激增和密度的加大,散热问题逐渐凸显。 在2006年左右,由于阈值电压的限制,Dennard缩放不再适用。这意味着,当芯片尺寸继续缩小、性能持续提升时,单位面积的功耗将不可避免地上升。这就是所谓的“功耗墙”问题,它成为了新一代半导体工艺面临的主要挑战。
为了应对功耗墙的挑战,芯片设计在2005年之后逐渐采纳了“暗硅”(dark silicon)的理念。这一理念主要通过多核和异构架构等设计手段,来限制芯片上同时全速工作(即“点亮”)的区域,从而确保功耗在可控范围内。以Intel Skylake架构的处理器为例,其版图显示,单个芯片上集成了4个CPU核和一个GPU。在任何特定时刻,仅有部分电路处于活动状态,这样便满足了功耗约束。
► I/O墙
在冯·诺依曼架构中,系统通常被划分为存储、计算和外设三大核心模块。过去,由于存储速度与计算速度的不平衡,以及计算功耗的限制,这两大问题曾一度困扰着计算机领域。随着时间的推移, 2015年左右,这长期以来的行业共识逐渐受到了挑战。如今,外设与计算/存储模块之间的速度不匹配问题日益凸显,它已成为制约计算机性能提升的一道新的“ I/O墙”。
自2010年起,数据中心开始广泛采用光通信模块,光纤网络单卡的带宽从1Gbps迅速提升至数十Gbps。2015年后,SSD逐渐取代了HDD,其寻址过程类似DRAM,完全由电信号驱动,从而消除了寻址速度对带宽的限制。尽管提出了诸多研究和解决方案,但如何突破这一瓶颈仍是一个开放性问题。 正是在这样的背景下,GPU及GPGPU编程模型因其高单位算力能量效率而备受瞩目。

02软件定义与未来趋势
► 从冯·诺依曼架构的起源与发展
在计算机技术的早期,机器通常只装载为特定用途而设计的程序。1945年,冯·诺依曼提出了一个革命性的计算机设计理念——存储程序。 这一设计理念不仅开启了冯·诺依曼计算机体系的新篇章,还推动了软、硬件的分离,进而催生了程序员这一新兴职业。这一模型为我们后续探讨“程序”这一软件概念提供了重要基础。
► 软件定义网络与存储的融合
随着GPGPU等芯片面积的不断增大,外设与计算模块间的速度不匹配已成为制约计算机性能提升的一道新的“I/O墙”。将网络协议栈和数据访问API的处理任务移至DPU/IPU等网络专用芯片上;而软件定义存储则将存储器的部分功能移至靠近存储器的运算单元上处理。这种趋势在学术界被概括为软件定义网络。 这样的方法有望突破I/O墙的限制,促进异构计算的发展。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)