0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

异构计算面临的挑战和未来发展趋势

颖脉Imgtec 2023-04-26 15:18 次阅读

导读

超异构和异构的本质区别在哪里?

这篇文章通过对异构计算的历史、发展、挑战、以及优化和演进等方面的分析,来进一步阐述从异构走向异构融合(即超异构)的必然发展趋势。

1、异构计算的历史发展


1.1 并行计算的兴起

81e2997a-e297-11ed-b21f-dac502259ad0.png

1971年Intel发明全球第一款商用的CPU处理器,在之后的上世纪70-90年代,CPU(核)经历了翻天覆地的变化:

  • 宏观架构有精简RISC和复杂CISC路线之争;
  • 各种各样的微架构创新技术,如处理器流水线、乘法/除法器等复杂执行单元、指令多发射、乱序执行、缓存等等;
  • 处理器数据位宽从4位到8位到16位到32位,再到目前仍是主流的64位;
  • 等等。

经过这些创新之后,逐步的触达了(架构/微架构层次的)CPU(核)性能的上限。不考虑工艺升级的影响,单个处理器核的性能几乎挖掘到极致持续增加性能的希望,不得不落在多个处理器核并行的路径上来。8207851e-e297-11ed-b21f-dac502259ad0.pngIBM公司于2001年推出IBM Power4双核处理器,是世界上第一款多核处理器。随后,AMD和Intel分别推出了各自的双核处理器。随着时间推移,更多的CPU核心被集成进了CPU芯片。目前,最新的AMD EPYC 9654 CPU具有96个核心192个硬件线程的超高并行能力。


1.2 通用GPU本质上是众核并行

823f2208-e297-11ed-b21f-dac502259ad0.png

GPGPU本质上是数以百/千计的高效能的小CPU组成的众核并行计算处理器。如NVIDIA的图灵架构GPGPU,总共72个SM,每个SM由64个CUDA核、8个Tensor核、1个RT核、4个纹理单元,总计有4608个CUDA核、576个Tensor核、72个RT核、288个纹理单元。

GPU众核(数千个)和CPU多核(数十个)的区别在于:CPU核是高性能的大核,足够高性能的同时也足够复杂,面积功耗成本等方面的代价也高,单位计算的成本较高;而GPU核是高效能的小核,每个核的性能较低,但数以千计的小核并行起来的性能足够高,单位计算的功耗面积等成本较低,但单核的性能不足以满足通用计算单个线程性能的要求。


1.3 异构计算的架构模式:CPU+xPU

828119b0-e297-11ed-b21f-dac502259ad0.pngCPU是图灵完备的(在这里,图灵完备可以通俗的理解成可以独立运行的处理器平台),因此CPU可以单独的作为软件系统的运行平台。而GPU等其他加速处理器则不同,这些平台是非图灵完备的,或者说无法独立运行,只能在CPU的协助下才可以运行。也因此,我们通常见到的异构计算系统都是“CPU+xPU加速处理器”的架构(xPU特指其他各类非CPU处理器)。
2、异构成为计算架构的主流


2.1 CPU性能瓶颈,但算力需求永无止境

上世纪80-90年代,每18个月,CPU性能提升一倍,这就是著名的摩尔定律。如今,CPU性能提升每年只有3%,要想性能翻倍,需要20年。CPU的性能提升已经达到瓶颈,难堪大任。

虽然CPU的性能提升几乎停滞,但对算力(性能是微观,算力是宏观)的需求,是永无止境的:

案例一:2012-2018年共6年时间里,人们对于AI算力的需求增长了超过30万倍。

案例二:目前L2级别的自动驾驶通常需要数百TOPS的算力,NVIDIA将于2024年底正式发布的Thor可以实现2000 TOPS的算力,但要想真正实现L4/L5级别的自动驾驶算力,则需要20000+ TOPS。

案例三:Intel SVP拉加·库德里表示,要想实现元宇宙级别的用户体验,需要当前的算力要再提升1000倍。随着元宇宙概念的兴起,对算力需求猛增,算力成为制约元宇宙发展的最大问题。

算力需求越来越大,异构成为了(架构层次)性能提升的主要手段。


2.2 强大的开发框架和生态,是异构计算成功的关键

实际上,硬件实现同构或异构并行的门槛相对不高。但受限于人类的思维习惯,驾驭并行硬件平台,也即并行编程,的难度较大;特别是异构并行,编程难度更大。异构并行编程不仅仅涉及众多并行线程的编程,还涉及到加速处理器和Host CPU的交互编程,还包括这两者的交叉同步。

在并行系统里,通过(手动)编程实现单个软件内部多个不同线程的并行,这种方式编程难度大,系统复杂,而且对并行资源的利用效率不高,这不是主流的方式。

在CPU同构并行的硬件平台上,更多的是通过操作系统的多线程调度能力以及虚拟化的多系统隔离的方式,实现宏观意义上的多个系统或多个软件的并行,而不是通过(手动)编程实现单个软件内部的线程级并行。

GPU众核编程则要更加复杂。为了降低编程门槛,GPU上运行的程序并不是完全“自由”的,而且强加了一些约束或底层细节屏蔽,以此来降低编程难度。比如SIMD方式的单线程多处理器并行执行(多个处理器执行的是相同的程序),再比如通过底层的软件或硬件机制实现统一内存,还比如通过框架和开发库等方式进一步降低开发难度,等等。通过这些方式,可以显著的提高异构并行的性能利用效率、提高编程效率、降低编程难度等。

82950466-e297-11ed-b21f-dac502259ad0.png

2006 年 11 月,NVIDIA推出了CUDA框架,这是一种通用并行计算平台和编程模型,它利用NVIDIA GPU中的并行计算引擎以比CPU更有效的方式解决许多复杂的计算问题。经过十多年的发展,NVIDIA建立了基于其GPGPU的非常强大的CUDA异构编程框架和生态。

随着AI大潮的到来,对算力的需求不断快速增长,传统CPU的算力平台越来越难以满足业务算力的需要。这进一步推动NVIDIA GPGPU和CUDA成为了炙手可热的行业“明星”,使得NVIDIA成为全球市值最高的芯片公司

对大算力芯片来说,生态是成功的第一关键。


2.3 DSA,体系结构的黄金年代

DSA是在定制ASIC的基础上回调,使其具有一定的软件可编程灵活性。DSA出现的原因主要有:

  • CPU单核性能瓶颈,摩尔定律逐渐失效;
  • 随着集成电路工艺逐渐逼近理论极限,晶体管电流和电压已经不能继续下降了,丹纳德缩放定律也逐渐失效;
  • 阿姆达尔定律表明:并行性的理论性能提升受任务顺序部分的限制。也因此,通过多核并行来提升综合性能的收益也在逐渐递减。

图灵奖获得者John Hennessy和David Patterson在其2017年说,未来十年是体系机构的黄金年代,在CPU性能达到瓶颈的情况下,要大幅提高性能并且优化成本和能耗的唯一途径是DSA,即针对特定领域的特殊需求定制处理器。

2016年发布的谷歌TPU是第一款DSA架构的处理器,从此之后,各种类型的符合DSA概念的加速处理器如雨后春笋般涌现。
3、异构计算存在的主要问题


3.1 DSA的问题

DSA无法包治百病。

所谓“成也萧何败也萧何”,DSA的优势是领域定制,劣势也是领域定制:

  • 优势在于:领域定制具有一定的灵活可编程性,能够覆盖比ASIC大得多的场景范围;并且性能跟ASIC相当,性能效率甚至高于ASIC。
  • 劣势在于:架构完全碎片化。不同领域是完全不同的硬件平台和软件生态;即使同一领域,不同厂家的架构依然不同;甚至,同一厂家不同代产品的架构都会不同。

DSA还有一个劣势的地方在于:定制的架构,其灵活性不太适合一些应用类型的性能加速,比如AI加速。受限于AI算法多种多样并且许多AI算法仍在快速迭代,DSA性质的AI加速器都跟不上软件的差异性和迭代速度,从而导致AI-DSA芯片的落地困难。


3.2 异构xPU无法兼顾性能和灵活性

我们依据指令复杂度从简单到复杂,可以把典型的处理器引擎划分为CPU、协处理器、GPU、FPGA、DSA和ASIC。CPU可以理解成纯软件,协处理器是附属于CPU,在硬件上跟CPU是一体的。因此,可以作为加速处理器xPU的处理器引擎类型只有后面四个。异构计算的核心矛盾在于:系统越复杂,越需要选择灵活的处理器;性能挑战越大,越需要选择定制的处理器。本质原因在于,单一处理器无法兼顾性能和灵活性:

GPGPU,通用众核并行计算平台,GPU灵活性较好,适用于性能敏感的业务应用加速;但性能效率不够极致。

DSA,接近于ASIC性能,但灵活性差一些。比较适合基础设施层的任务加速,难以适应复杂业务计算场景对灵活性的要求。

FPGA不仅功耗和成本高,而且需要经过硬件编程之后才能确定其真正的架构类型。FPGA的灵活性来源于硬件可编程性,也意味着架构是变化的,不利于软件生态的形成。FPGA实际落地案例不多。

  • ASIC,受限于其完全固化的业务逻辑,在灵活多变的复杂计算场景几乎难以应用。

3.3 异构计算的孤岛问题

82aa332c-e297-11ed-b21f-dac502259ad0.png随着异构计算成为计算的主流架构,也随着异构的处理器越来越多,最终的系统一定不是Host+某个唯一的xPU加速处理器,而是Host+很多个xPU加速处理器的模式。这样,多个异构协同计算的问题就出现了:

最核心的是,每个加速处理器都只考虑特定的场景或领域;反过来说,就是较少考虑与其他加速处理器的协同。如同瞎子摸象,每个人看到扇子、绳子、柱子、墙壁的时候,最终,能组织成“大象”吗?

加速处理器之间的交互困难。所有加速器的交互需要经过CPU,而CPU已经性能瓶颈,还要给它压更重的“担子”,那就是“颈上加颈”。

服务器等计算机设备的物理空间和扩展总线/卡槽有限,很难支持太多的物理加速卡,异构加速处理器需要整合。

4、异构计算的架构优化


4.1 异构计算的优化权衡

维度一:处理器引擎的类型。灵活性和性能是系统架构的核心矛盾,更多的灵活性,也意味着更加易于编程,系统更好驾驭,与此同时却意味着更低的性能。许多设计权衡其实都在根据业务场景的特点,在灵活性和性能的天平上左右摇摆:到底是应该偏向灵活性的CPU多一些,还是偏向极致性能的ASIC多一些。维度二,处理器引擎类型的数量。系统的驾驭难度,也跟处理器类型的数量有关:

同构并行只有一种类型的处理器引擎(CPU),编程要相对简单。

异构的CPU+xPU加速处理器是两种类型的处理器引擎,编程要更复杂一些。

既然异构有两个类型,未来是否还可以有三个、四个,甚至更多的处理器类型组成更复杂的多异构系统?

更多类型的处理器引擎,又是一个艰难的抉择:一方面意味着性能的进一步提升,另一方面意味着更高的编程难度。


4.2 各类型处理器都在拓展自己的能力边界

越来越“卷”,随着处理器引擎越来越多,每个处理器引擎其实都突破了我们通常意义上的各自边界,侵入到其他处理器引擎的领地。例如:

  • CPU集成协处理器。CPU不断扩展硬件加速指令集,这些加速指令集的执行单元就是协处理器。例如Intel Xeon支持AVX和AMX。
  • GPU集成CUDA核,还集成DSA性质的Tensor核,使得单个GPU引擎具有了DSA性质的能力。
  • FPGA集成CPU以及ASIC,例如AMD Xilinx Zynq。
  • ASIC不断回调,变成部分可编程的DSA,可以当作是ASIC+DSA。

处理器引擎不断扩展,在引擎内部形成了某种程度上的“异构”能力,这可以看做是异构计算优化权衡的第三个维度。


4.3 异构计算的未来,从单异构走向多异构融合

前面我们从三个维度介绍了异构计算的优(左)化(右)权(摇)衡(摆):要想获得灵活性,势必会降低性能(效率);而要想获得性能,势必会降低系统的灵活性,增加系统的复杂度,使得系统难以驾驭。但考虑到业务应用对算力的渴求,我们不得不“迎难而上”,不断的提升硬件平台的性能。这样势必会增加整个系统的复杂度,也进一步提高了编程的难度。82b8e8b8-e297-11ed-b21f-dac502259ad0.png受限于前面提到的异构计算孤岛问题,把多个异构计算系统合并到一起的时候,不能简单的拼凑,而是要重新构建一个新的超异构计算系统。

接下来,更重要的问题来了:如何驾驭比异构并行更复杂的超异构融合计算?


5、驾驭超异构


串行计算符合人类思维,编程相对最简单;同构并行的编程,就要复杂很多;异构并行,则更是难上加难;那么超异构并行呢?那就是难上加难再加难。要想驾驭超异构,核心的思路跟驾驭异构计算的思路一致,就是要降低软硬件系统的复杂度。接下来,我们详细介绍一些主要的降低复杂度的方法。

5.1 复杂大系统分解成简单小系统

82d0d16c-e297-11ed-b21f-dac502259ad0.png从系统的角度,多个小系统组成一个大系统,多个大系统组成一个宏系统。反过来,复杂大系统可以分解成若干个简单的小的系统,大系统由多个小系统和小系统间的交互组成。

相比大系统,小系统必然更加简单;针对分解后的小系统,则可以更加容易的驾驭。


5.2 依据系统的性能/灵活性特征进行分层

82f092cc-e297-11ed-b21f-dac502259ad0.png应用,是完全不可确定的,针对应用,只能采用CPU处理器。如果完全“躺平”(不加约束),并不考虑平台上面运行什么软件任务,那么极端保守的做法就是选用CPU平台。CPU平台什么任务都能支持,但劣势是性能是最差的,成本代价是最高的。一个系统并不都是应用类型的任务。系统可以看作是很多工作任务的组合,这些工作任务都各有特点,我们可以针对任务的特点,把任务进行分类:

一个极端。在系统中,有很多非常确定性的任务,比如虚拟化、网络、存储等,这些可以称为基础设施型任务。这类任务因为其确定性的特点,特别适合DSA和ASIC级别的加速处理器处理。

另一个极端,即不太好加速的应用部分。在硬件平台上到底会运行什么样的应用,通常是不可预知的,或者说应用是非常不确定的。因此,针对应用,最好是用CPU(+协处理器)平台。CPU平台还有另外一个价值,兜底,凡是无法加速或者不存在合适加速处理器的工作任务都可以放在CPU平台处理。

处于两个极端之间的部分任务,则通常是性能敏感的应用任务,比如AI训练、视频图形处理、语音处理等。这类任务具有一定的确定性,但通常还是需要平台的一些弹性的能力,其性能/灵活性特征处于前面两个极端的中间。因此比较适合GPU、FPGA这样的处理器平台。

针对不同任务的灵活性/性能特征,把任务划分到这三个层次,然后采取各自特征能力相符的处理器平台,可以做到满足整个系统最极致灵活性的同时,实现整个系统最极致的性能。


5.3 开放:让处理器架构和生态收敛,防止碎片化

830c0dae-e297-11ed-b21f-dac502259ad0.png架构(硬件的具体实现是微架构,而架构指的是软件看到的硬件架构),也可以称为软硬件接口,是系统架构中最核心的概念。

CPU目前有非常流行的RISC-v架构,RISC-v开放架构的价值大家都能够理解。从CPU到ASIC,越往右,处理器的子类型越多,架构的数量也越多。不同类型、不同领域、不同场景、不同厂家、不同架构的处理器,如果不加以约束的话,会导致处理器架构的完全碎片化。越是处理器类型众多,越需要全行业形成共识的开放架构。


5.4 软硬件深度融合,让硬件具有更多软件的能力

软件越来越复杂,业务逻辑变化越来越快,具体的表现就是软件开发者越来越崇尚敏捷开发,两个月一个小迭代,半年一个大迭代。同样由于系统的复杂度提升,硬件却与软件相反,其开发难度越来越大,开发周期1-3年,生命周期5-8年。硬件的迭代周期完全跟不上软件的更新节奏。因此,需要更进一步的系统架构创新,把传统的软件层次的能力融入到硬件中去。这些能力包括功能的扩展性、资源的弹性和近乎无限的资源扩展、完全的硬件虚拟化、硬件高可用等等,通过这些能力来整体的提升硬件的灵活性。

超异构计算,需要“软硬件融合”来驾驭。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206537
  • 异构计算
    +关注

    关注

    2

    文章

    93

    浏览量

    16159
收藏 人收藏

    评论

    相关推荐

    高通NPU和异构计算提升生成式AI性能 

    异构计算的重要性不可忽视。根据生成式AI的独特需求和计算负担,需要配备不同的处理器,如专注于AI工作负载的定制设计的NPU、CPU和GPU。
    的头像 发表于 03-06 14:15 216次阅读

    配网故障定位装置:未来发展趋势挑战

    在电力系统中,恒峰智慧科技设计的配网故障定位装置是一个至关重要的设备,它可以帮助我们快速准确地找到故障发生的位置,从而进行有效的维修。随着科技的发展,这种设备也在不断地进步和改进。本文将探讨配网故障定位装置的未来发展趋势
    的头像 发表于 01-18 10:24 110次阅读
    配网故障定位装置:<b class='flag-5'>未来</b><b class='flag-5'>发展趋势</b>与<b class='flag-5'>挑战</b>

    5G毫米波频段的特点、应用场景、技术挑战和发展趋势

    发展的重要方向。在这篇文章中,我们将详细介绍5G毫米波频段的相关特点、应用场景、技术挑战和未来发展趋势。 首先,5G毫米波频段具有丰富的频谱资源。由于工作频率较高,毫米波频段的每个频率
    的头像 发表于 12-27 13:45 465次阅读

    当芯片变身 3D系统,3D异构集成面临哪些挑战

    当芯片变身 3D 系统,3D 异构集成面临哪些挑战
    的头像 发表于 11-24 17:51 303次阅读
    当芯片变身 3D系统,3D<b class='flag-5'>异构</b>集成<b class='flag-5'>面临</b>哪些<b class='flag-5'>挑战</b>

    语音识别技术:进展、挑战和未来

    语音识别技术是一种人机交互的核心技术,它赋予机器“听懂”人类语言的能力。这项技术从早期的符号识别和模板匹配方法,发展到现在的深度学习模型,经历了一个漫长而又富有成果的过程。本文将详细探讨语音识别技术的最新进展、面临挑战以及
    的头像 发表于 09-24 09:48 548次阅读

    请问模型推理只用到了kpu吗?可以cpu,kpu,fft异构计算吗?

    请问模型推理只用到了kpu吗?可以cpu,kpu,fft异构计算吗?
    发表于 09-14 08:13

    新一代计算架构超异构计算技术是什么 异构走向超异构案例分析

    异构计算架构是一种将不同类型和规模的硬件资源,包括CPU、GPU、FPGA等,进行异构集成的方法。它通过独特的软件和硬件协同设计,实现了计算资源的灵活调度和优化利用,从而大大提高了计算
    发表于 08-23 09:57 452次阅读
    新一代<b class='flag-5'>计算</b>架构超<b class='flag-5'>异构计算</b>技术是什么 <b class='flag-5'>异构</b>走向超<b class='flag-5'>异构</b>案例分析

    异构计算场景下构建可信执行环境

    ”“独立”发展。在异构计算场景的迭代中,从以CPU为中心,到CPU只是普通的PU,到未来可能没有CPU。而机密计算却非常“忠诚”,始终围绕CPU,即使最新的ARM CCA技术仍是围绕C
    发表于 08-15 17:35

    人工智能的未来发展趋势

    人工智能的未来发展趋势  人工智能(Artificial Intelligence,AI)是一种模拟人类智能的计算机科学技术,它的发展已经改变了我们的生活方式。随着AI技术的不断升级和
    的头像 发表于 08-15 16:07 7594次阅读

    工业安全生产信息化平台面临挑战和发展趋势

    随着工业互联网的快速发展,工业安全生产信息化平台面临着一些挑战和发展趋势。首先,数据安全和隐私保护是一个重要的挑战。工业安全生产信息化平台需
    的头像 发表于 08-10 16:01 504次阅读

    面部表情识别的未来发展趋势

    面部表情识别作为一项复杂的技术,未来将会面临更多的挑战和机遇。本文将探讨面部表情识别的未来发展趋势,包括技术进步、应用拓展、标准化和开放性等
    的头像 发表于 08-09 16:16 357次阅读

    混合键合的发展趋势挑战

    在本文中,我们将讨论混合键合的趋势、混合键合面临挑战以及提供最佳解决方案的工具。
    的头像 发表于 07-15 16:28 1093次阅读
    混合键合的<b class='flag-5'>发展趋势</b>和<b class='flag-5'>挑战</b>

    一文解读AI未来发展趋势、影响和挑战

    人工智能(AI)是一项重要的技术领域,已经在许多领域中取得了显著的进展。AI的未来充满了无限的可能性和挑战,这篇文章将探讨AI的未来发展趋势、影响和
    的头像 发表于 06-28 17:21 3151次阅读

    什么是私有云?未来发展趋势如何?

    已成为政企构建云环境的核心组件。那么,什么是私有云?有哪些优势?市场竞争情况及未来发展趋势又是怎么样的? 什么是私有云? 私有云(Private Cloud)是为一个组织单独使用而构建的一种云计算服务形式。私有云可提供对数据
    的头像 发表于 06-08 11:07 879次阅读

    PrimeSimSPICE:异构计算模型实现数量级性能突破

    随着对更高计算性能的需求不断增加,HPC 行业正朝着异构计算模型发展,其中 GPU 和 CPU 协同工作以执行通用计算任务。在这种异构计算
    的头像 发表于 05-24 16:53 589次阅读
    PrimeSimSPICE:<b class='flag-5'>异构计算</b>模型实现数量级性能突破