异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法

 

摘要

20年来,微处理器的性能有了1000倍的提高。最近,由于晶体管的速度和能耗的限制,整个半导体工业,逐渐通过多核并行来提高性能。广泛研究表明,未来需要更好的方法,如-超并行机制,接近门限电平调节技术(单线程性能的不给力),极端可变性的容错,等等,这些都需要提高能耗和计算密度。这些变化,给体系结构和软件的设计带来新的主要挑战。

所以呢,异质性架构在性能和功耗的优势越来越有吸引力。但是,计算机运行缺乏一种可以进行系统分析,评估,完成异质性计算的最优模型。我这有一个新模型:就是“10x10”,把应用程序集成到一个小概率(比如10%)的情况集合里,通过创造定制化的体系结构,工具,以及软件解决方案,以完成这些集成,这样就能显著改善性能和功耗。我们之所以称之为“10x10”,是因为这种方法优化1010%情况,这10%的情况已经脱离了Amdahl定律中的90/10局部性原理。我们描述10x10这种方法,解释了它是如何解决异质性体系结构在广泛采用时面临的主要障碍,并展示了一个10x10的初步集群,稻草人体系结构,和软件工具链方法。

 

关键字:计算机体系结构,并行计算,异质性,混合计算,性能,摩尔定律,编译器。

 

1,  简介

随着晶体管的集成度,速度,和能耗的不断改进,在近20年来,微处理器的性能有了1000倍的提高。最近,由于晶体管的速度和能耗的限制,整个半导体工业,逐渐转向多核并行来提高性能。广泛研究表明,未来需要更好的方法,如-超并行机制,接近门限电平调节技术(单线程性能的不给力),极端可变性的容错,等等,这些都需要提高能耗和计算密度。这些变化,给体系结构和软件的设计带来新的主要挑战。这些方法的影响会产生令人恐怖的并行要求(10e3-10e9, 非常糟糕的单线程性能(10倍或者更慢),极大的变化(5倍或者更多),参看【4】,你可以了解关于技术扩展挑战,开放的科研问题和一些可能方法等这些内容的一些概述。

通过这20年的快速的性能提高,这个占优势的优化模型已经符合90/10原理,这个原理就是通过集中解决工作量的90%,和优化占优势的那一部分的工作,来实现优化通用体系结构。但是,通用高性能核的技术扩展和体系结构的发展趋势不再是趋向于的硬件资源的投入。

         我们建议一种新的方法,10x10,这种方法致力于定制化设计(异质性),充分利用晶体管的翻转能量,来解决极限能耗面临的挑战。有一个共识,就是体系结构和工具的异质性(定制)有潜力能降低功耗并提高性能,然而这些技术并没有成为主流,是因为90/10的思想(通用核的核心思想)在作怪,不愿意引入异质性,害怕异质性伴随的投入费用(未来的功能和性能方面的费用)。我们需要尽力开发多种并行机制,异质性也是不再阻碍我们发展同质性并行机制的关键。我们专注于开发一种新型模型,10x10体系结构,能挖掘出定制化对能耗和性能的好处,起码在可编程性和并行扩展方面。

         下面,我们就概括一下10x10的框架和架构。10x10是一种系统的方法,能使异质性作为一个体系结构的一个元素被引入和管理。把应用程序集成到一个小概率(比如10%)的情况集合里,通过创造定制化的体系结构,工具,以及软件解决方案,以完成这些集成,这样就能显著改善性能和功耗。我们之所以称之为“10x10”,是因为这种方法优化1010%情况,这10%的情况已经脱离了Amdahl定律中的90/10局部性原理(在【3】中有通俗的介绍)。这个10呢,是一个随便的数,具体的数呢,跟很多因素有关系,还要根据经验来定,这些因素包括应用程序的结构,硬件的设计和制造费用,软件费用,等等。这个10x10的关键,是将通用计算机体系结构的优化问题合理的分割成互不相关的小的优化问题;通过定制化,来发掘能耗和性能的潜能。此外,10x10支持稳定的体系结构,怎么支持呢,通过为任务的分析和优化创建一个有规律的方法来支持。共享属性和作为一个大任务的小任务来做。4个要点:1》应用程序集群和能耗异质性的广泛组合。2》定制微引擎的深度集成,来简化软件方面的挑战。 3》开发低能耗技术扩展来降低异质性带来的费用。 4》设计和集成异质性来简化软件方面的挑战。

         此外,还有两个关键的技术挑战需要软件工具链应对。第一,微引擎需要软件工具链添加额外的后端代码targets。第二,多个微引擎,需要软件工具链将应用程序分离,并且在不同微引擎之间协调。很智能的完成这些工作。对于这些问题,我们会概述一些方法,并且讨论在10x10体系结构中由于微引擎的深度集成,这些问题比较容易解决。

         这篇论文的5个主要的贡献是:1》定义了10x10应用工作集群的概念,2》定义了10x10体系结构,3》一个基于著名基准测试程序的10x10的应用集合样本,4》一个包含7个专用微引擎的10x10体系结构的样本,5》一种改变现有软件工具链的方法,并证明了在现代软件环境中10x10的可行性。

         本文剩下的部分是这样组织的。第二章,我们以异质性为目的,解释了10x10是怎么应对历史遗留问题的。第三章,阐述10x10模型,它是怎样成为异质性架构管理的一种新方法的。第四章,怎样用现有的基准测试程序,组成10x10体系结构的框架基础,然后利用它们来开发一个包含7个微引擎的10x10体系结构。第五章,应对10x10的软件挑战,实现一个方案,用现有的软件工具链,可以变成为10x10体系结构编程的软件工具链。第六章,介绍最近的工作。第七章,概括,并介绍下一步的研究方向。

 

2,  问题:让异质性的益处得到广泛组合

硬件实现的定制化(加速器,定制计算,ASIC)带来的优势在计算机体系结构界有广泛的认可。在多媒体处理领域,图像与信号处理领域,相比于通用微处理器,定制系统可以使能量延迟积(energy-delay product)改进100倍。这样的代表性的案例很多,如:针对H.264MPEG的低电平加速器,视频和图像加速器,基带信号处理引擎,高端应用的定制体系结构,动态可配置系统。

         使体系结构有很大变化的异质性的方法能大幅度提升性能,同时呢也降低了体系结构的通用性,通过这种方式,在一些应用领域获得了一些好处,但是在其他领域并没有什么改善。由于加速器和CPU的很低的耦合,使费用不断增加(日益复杂的分割和调度)。几乎所有的这些加速器都是作为独立的芯片或者另外增加电路板的方式实现的,这样就会增加很大一部分费用。这种独立的解决方案也会产生一个软件方面的问题,就是缺乏部署,这就限制了软件工具链对这些方案的支持。最后,很多加速器的开发缺乏很好的可编程性,因为这需要底层库的开发者,并且这些加速器都有各自的特点。总之,异质性的能耗优势已经得到广泛的认可,但是这些定制技术没几个能得到大规模的部署,而且都没有成为主流,因为异质性有4个重要的障碍:1》通用性的限制:应用领域只有很小一部分的性能和能耗有提升。2》低耦合:在运行时,数据的在不同计算单元间的转移,同步,以及格式翻译需要代价。3》代价:对于硅片,晶体管,功率分配跟所得的好处几乎相当。4》软件(可编程性,管理和维护):工具链和编程的复杂性,局部性,同步性以及长期的投入费用。

3,10x10框架

         在今天的微处理器中也存在一些异质性(浮点单元,向量/多媒体单元等)。但是,由于异质性计算缺乏一个系统的,可集成的方法,使它没能成为主流。然而,现在能量效率差距变得很大(500倍还要多),因此就激励我们逐渐的解决这些问题。10x10这种框架和架构就代表了一种系统的方法,足以解决异质性面临的4个障碍。通过创建一种结构化的方法,来理解如何阐述这种异质性,来理解它的好处和代价,10x10的架构创建了一种有规律的方法将异质性作为体系结构的元素来引入。通过定制化,来发掘能耗和性能的潜能。此外,10x10支持稳定的体系结构,怎么支持呢,通过为任务的分析和优化创建一个有规律的方法来支持。共享属性和作为一个大任务的小任务来做。核心思想如下:

3.1,应用程序集群和能耗异质性的广泛组合。

         10x10框架先从应用领域的一个概况开始,抛开传统方式,以新的思路来思考计算机系统的设计。不是把精力集中在“一般情况”(90/10原理),10x10给出应用程序的一个概况,并且重视这些应用的不同阶段的特点,用定制化来实现程序的更高效率的执行。我们将着手开始对10个“应用集群”(每个占任务的10%)进行一个全面的应用分析。和架构师一起工作,我们将分类讨论用什么方法,既可以使可编程性提高,又可以增大能耗效率和性能提升的空间。10个应用集群表明,一个10x10的架构可以体现同样多的10个定制的微引擎,这些引擎合在一起会显著提高能量效率。我们相信,异质性的广泛组合会解决“有限的通用性”,并且有很多大(是特殊集群的10倍)和广泛(包含大部分的应用领域)的好处,同时,会为异质性的采纳创造一个足够大好处。

 

3.2, 定制微引擎的深度集成。

         把定制化微引擎很好的集成到核里面,可以让这些微引擎高速访问存储器,并且能使它们相互间高效协作(请看图2)。数据在顶级存储器里共享(就用一级cache来代替)。这些引擎在不工作的时候功耗很低(power-gated)。一般情况下,一个时刻只有一个引擎工作,但是,我们跟这种观点稍微有些不同。不同引擎间的数据共享是很短的(一个引擎在cachememory里查找前一个引擎产生的数据)。利用cache的深度集成会减少数据共享和同步带来的代价,并使这些引擎以合适的粒度切换(可能是100个操作)。下一步,这些引擎可以被定向设计成相互弥补的组合-例如:一个作为短数据类型引擎,用来做多媒体和信号的处理工作,或者,如果费用和功耗允许的话,也可以把他们分开,单独定制。当然,如果你计划为能耗效率设计一个微处理器,只有当这种情况下,深度集成才行得通(比如UHPC程序很合适)。为了实现引擎间的高效耦合,在引擎间,我们会用同样的数据表现形式(??)。这是10x10体系结构基本设计理念,但是,我们也希望这个理念能演变成在微引擎定制时,成为具有说服力的一个因素。

 

 

3.3, 开发低能耗技术扩展(Dark Silicon)来降低异质性带来的费用。

译者注:(在时下的智能化时代,随着移动设备的日益智能,手机内晶体管密度也在不断增加,但伴随而来的热量将威胁到日益复杂的计算芯片正常工作。同时智能手机内部空间狭小,并没有风扇等散热装置。所以智能手机内部每次只能有一部分晶体管可以安全地正常运行,而大部分的硅芯片在给定时间都处于静止状态,这个现象也被称作暗硅(Dark Silicon)。

 

1:每10年由于扩展晶体管的费用会变成2倍,但是较少部分的能耗按比例减少(每10年减少1.3倍),这会限制逻辑电路中晶体管的采用。There may be as much as5x excess logic transistors in a 25/75 chip and 8x in a 50/50 chip for 10x10 toexploit

        

         10x10的设计方案,会显著增加逻辑晶体管的数量,这有点浪费,但是,最近有一本微处理器方面的书不这么认为。近来,CMOS技术持续改进,晶体管的产量也有成倍的增加,但是这受限于能耗的持续增长。近几十年,核的设计已经受到能耗的限制。最近的预测(图1)显示,由于能耗的影响,未来微处理器上的逻辑晶体管会成为主要限制。大部分的芯片面积是不工作的,这就给10x10微引擎留下了足够的空间。对于芯片面积50%是逻辑,50%cache的微处理器来说,实验预测显示一个10x10晶体管会提升8倍性能。对于传统的25/75的微处理器,会提高4倍。但是这些面积不是免费的,用它来做10x10微引擎,而不是用作额外的cache,会有更优异的性能表现。明显跟传统想法不同,加更多的核,在能耗方面是行不通的。以后,如果10x10微引擎有上佳的性能,假如说,快10倍,一个10x10的系统会和十分之一并行处理的性能相当,这样就能缓解所有系所面临的数量级的并行挑战。此外,当异质性的任务级和数据流水线并行成为可行,10x10也许会部署多核的微引擎,并会有更高的效率。

 

3.4, 设计和集成异质性来简化软件方面的挑战。

10x10以系统的形式引入异质性,因此,它受微处理器设计师的控制。这就确保了一点,就是,在一个项目中,软件可以同步的,逐渐的弄,并且可以在很长一段时间里,不断的改进和优化。深度集成会使调度/分离的困难变得容易。宏观上来看,架构管理会增加对程序员的能力的要求,来支持这种异质性和充分利用异质性的好处。例如,会希望某些人针对个别微引擎有长时间的关注,针对于具体的不同的应用场合,哪些微引擎有最好的表现,对此,我们会有一个简单的指导。

         要想让软件工具链支持10x10,必须要应对两个关键的技术挑战。第一,微引擎需要软件工具链添加额外的后端代码targets。这就变得更复杂一些,但是,由于这些微引擎针对代码的编译经过精心设计,所以我们相信,在繁多的平台上(嵌入式,ARM,等等)支持这些微引擎应该不是很难,针对这些平台,很多编译器已经支持,并且这种形式的支持比以FPGA为基础的开放模型更容易。第二,多个微引擎,需要软件工具链将应用程序分离,并且在不同微引擎之间协调。很智能的完成这些工作。针对这些问题,我们将研究比较简单的方法,我们相信这对10x10体系结构来说不算难事,因为这些微引擎是深度集成的。

 

4,   应用10x10:一个简单的应用集群和稻草人体系结构

长期以来人们一直认为应用程序任务有很多各种各样的特征,因此,处理器基准测试也都是基于不同基准程序(【基准程序】见百度百科)展开的(【21】)。为了开发和使用10X10模型,我们使用符合工业标准的SPEC基准测试套件(【22】),NAS并行基准程序(【18】)和DARPAUHPC计划应用程序(【26】),并且将这些映射到Berkeley Motifs(【23】)中,这个Berkeley Motifs是一套计算类型模型,近来被汇编为多核软硬件研究和构建Phil CollelaSeven Dwarves(【24】)基础。

         这个SPEC基准程序在最近20年来一直被用来测试微处理器的性能。最新的套件版本,SPEC2006,有两个独立的组件:整型和浮点型。SPECint(整型),是一个支持C/C++语言编程的基准程序,用来测试整型计算和进行数据结构分析。使用这个套件,基准程序涵盖了从简单的决策类的游戏,例如Go Chess(象棋),到分支界定计算,视频图像压缩的各种方法。SPECfp(浮点型)基准程序集中于进行大量数据集合的浮点计算,另外还有Fortran应用程序。许多在SPECfp组件中的应用程序都是一些科学建模试验,包括依赖于坐标计算,多体问题的生物,物理问题。SPEC2006基准测试是以多种多样的可能性应用为模型的一个套件。在10X10情况下,这些程序提供给如此多应用程序的一个样本,使得我们可以利用它开发微引擎集群。

         NAS并行基准程序包括并行的核心基准和三个仿真应用程序基准。这些基准在一起,模拟计算工程和大规模计算的流体动力学应用程序(【18】)的数据转移特性。DARPAHUPC计划应用程序反应出它具有:非常好的决策支持,很强的信号处理能力,智能化和语义推理能力,强大的图形应用程序和传统的HPC应用程序(【18】)。

         我们将以上三种基准平台映射到Berkeleymotifs上,Berkeley motifs是一个发展的非常好的计算机结构的分类学。总共有13motifs,捕捉各类程序:从密集/稀疏线性代数到组合逻辑和有限状态机。在Berkley motifs上,我们又加了一个motif,用于图像和媒体处理。多媒体应用程序的近期增长时如此快,以至于几乎所有的处理器都有媒体扩展或者相关加速器。因此,我们添加了图像/媒体处理作为另外一个应用程序集群,以便我们能够在10X10系统中工作。

         我们一般的方法是使用静态和动态分析法来界定和组合应用程序基准和motifs,是基于对这些基准和motifs的计算结构考虑的(【25】)。我们将这些基准和motifs联手使用是为了捕捉应用程序可实现的计算范围,并且明确基准捕获定制出更加高效和高性能的微引擎的机会。从本质出发,这一定是一个重复的过程。每一组界定不同的数量级(一般不会是10),分析基准和motifs,将他们置于不同数量级(集群中),检查覆盖范围,设计一个微引擎,每组一个,并订制成实现高效率的,评估结果实际效率。这个反复的步骤是重新分组,重新实现,如果有必要扩大研究的应用程序集合。一个较长期的目标是找到所有应用程序(idioms方言【25】)所涉及的这些结构。我们最初的研究是对SPEC套件,NAS并行基准和UHPC应用程序(【26】)这些的手动分析。这些不同组的结果请见Table 1

4.1.映射应用程序到微引擎中

         对于10X10设计来说,一个很重要的思想是使定制化明确数据类型,操作和计算结构,具体表现为对于一个应用程序:算法,状态,数据类型甚至一个单循环或者一段程序的使用。为了达到目标,与传统微处理器核上的总压力(general pressure)和90/10效率做对比,10X10片应该足够窄保证在每个范畴上有10X更好的能量效率。对于我们派生出的集群来说,在微引擎上实现大范围的优化是可能的。对于图像,媒体,信号处理来说,这些是定点和固定格式的操作。对于没有规律的矩阵,以图像为基础的问题和多体计算问题,就要涉及到将内存转换,来访问相匹配的内存系统,还有快速数据同步和任务的调度。对已数据挖掘记说和传感器处理来说,位,符合,字符级别的操作时关键。对于决策级和流数据传感器问题,微引擎对于任务的高效管理,同步和调度尤为重要。传统的HPC和有规律的并行机制来说,支持细粒度有规律的并行机制的微引擎是非常有吸引力的,例如:GPU WARP。上面的表格捕获了一组最初的应用程序集群和相关的10X10微引擎。虽然,微引擎实现的优化设计是未来工作的主题,但是我们只是草草的做了一些工作:用这些微引擎传达出这样一个心声:在能效和性能方面做出的定制和伴随的产生的好处是有机会出现的。

         不规则图-本地微引擎。长内存延迟的影响和块内存结构引起不规则,动态图形应用程序在顺序或并行计算机上低效的执行:是因为使用内存带宽和处理管道的效率很低。这种应用程序包括稀疏矩阵,图形,社会网络,语义网络等等。通过对基于应用程序或者库级别信息(【27】)参考内容的重新排序,实现源码和库的优化,这种优化可以产生16-32X的速度提升,或者对运行时预提取和缓冲,以及对源码的参考分析,可以实现系统如Convey(【28,29】)50X改进。能效的改进可以通过以下方式:有效的生成参考,当有充足的内存来实现高效计算时,排序/组织这些引用参考来匹配内存系统和轻量级数据同步触发器。还有一些可能的方法:分离访问和执行体系结构,轻量级超线程和同步系统结构(【30,31】)可以显著的提高性能。

         复杂任务微引擎。对于决策级别和高水平语义性分析所涉及的信息来说,这些应用程序一个与众不同的特性就是可以实现树的遍历和搜索,添加删除,语义网络的维护,以及多种类型的分析。一个关键的瓶颈和代价就是多核间以及大规模计算机间的任务管理。尤其是,有以下特点的简单核(Cyclop31,32】):

轻量级线程和轻量级同步,专用定制化给A*或者合理的搜索任务队列的硬件结构,以及融合了任务调度机制的优先级机制,可以提高效率。抛开核的复杂度,队列和同步的代价后,就可以提高10X能效(【31】)。

         图像/媒体微引擎。媒体和图像处理器将更多精力放在了以组包形式处理短类型数据值(8,16或者其它#位),以及数据类型特定操作:阈值转换,缩放转换,移位操作等等。对这些数据类型特定的操作:组包,压缩,短向量并行处理都可以明显提高效率(【33,34】)。传统微处理器的一些其它主要元素是不需要的,比如:浮点,ops和寄存器堆及指令,复杂指令,系统管理指令和复杂的动态并行探测(ooo或者superscalar)。更小的指令集(16位编码),更小的指令caches和寄存器堆在能耗方面会带来更长远的好处,这是与传统的64位整型/浮点型超标量核相比而言的。这些关键的操作,以小的结构单元的FFT为例,它可以接受直接的硬件支持。大量的发布实例建议10-50X能效增量是很容易实现的(【15,16】)。费用也会通过3-4X长指令(macro-instructions)降低,这些长指令将常见的计算语法进行整合为一个集合,这样就减少了取指令,解码,发布的费用

         标量和GPU Warp(偏离)微引擎。这些看起来像一些常规设计,研究机构和工业领域这么多年的开发是为了在高性能核高能效的前提下有效的执行标量和GPU并行代码。因为10X10和(每一个有10个微引擎)将被全系统之填充,与之相似的GPU会成为一个单独的WARP(加权相关规则处理器)或者核。

         在微引擎中,一些定制和节能的主旨已经展现出来了。第一点是有限操作和与所在范畴(更简单,避免复杂结构,与所需精度匹配的范畴)相匹配数据类型的使用。这样就允许数据通路的简化:更小的寄存器堆(容量和宽度)和ALU(操作和宽度),这里抛开大量逻辑运算和存储的情况(例如:全浮点或者处理器的扩展(SSE)部分)。另外,小指令集可以使短指令格式化,解码简单,减少指令缓存和cache等等。第二点是定制操作有效的精心实现一些通用行为,让之与硬件更加匹配(例如:不规则引用(irregular reference))。第三点:虽然这里不加讨论,但是我们会分析这些关键程序的表达书和代码轨迹来设计出特定的“多操作”指令,这种指令通过消除指令执行的损耗,减少寄存器堆的访问数量,减少流水线的损耗(看【35】)来达到高能效的执行的目的。比较好的代表示例包括:块和字符串操作。最后,将指令整合在一起时非常有用的,这些指令不包括计算,添加轻量级的可以减少损耗和减少指令的原语(数据同步,任务排队)。

 

5.10X10体系结构软件

         随着编译器技术在近几十年的快速发展,微体系结构已经变得越来越错综复杂(例如,流水线,内存),但是编译器也在努力缩小两者之间的差距,通过管理和支持硬件的复杂度来提高性能。为了实现成功,体系结构特性必须谨慎设计,以便编译器更细致的利用对于硬件的理解。虽然如此,但是,在很多情况下,无意识的,无缝隙的跨越这个间隙还是有很多挑战。最近,很多成功的研究及商业方法采用了特定的方式:使用由体系结构和算法专家(【36】)手动制作的特定库以及可以智能探索性能空间的半自动技术,利用相关经验从这些参数化的实现(【37】)方式中选择最好的方法。

         GPUSoc加速器(媒体,密码学等等)中被证实出现的异质性已经超出了这些技术的范畴,需要新的明确的方法来管理异质性加速器的使用和表达,这些使用包括:明确的代码和数据分割方法,以及定制化的算法的选择。易于理解的代码和数据分割方法的框架实例包括:CUDAOpenCL(【38,39】),在这里程序员可以明确的将在CPU或者GPU上执行的程序进行标记,并且可以再GPU上进一步细分和将计算分配给计算线程。数据可以分割并放置在不同的内存中,并且由于这些系统之前也没有包括共享内存,所以计算的放置暗示了数据的放置(和移动)。由于选择对于所有性能来说是很关键的,所有明确的控制是必要的。10X10软件可以利用所有这些成熟的技术(库,自动调谐,明确管理)来使得异质性硬件在能效和性能方面有上佳的表现。事实上,我们期待所有这些技术在10X10体系结构上既成功又只需要很少的精力,那是因为10X10微引擎深度集成到一个共享内存级别上时会消除数据分割的性能敏感性:就是没有这种敏感性。另外,因为10X10微引擎设计目标明确,我们非常乐观的看到,定制算法选择和表达式等许多方面都不是必须的。然而这些论据表明,10X10软件非常需要当前的正在出现的异质性平台,我们很雷管的发现,在未来,对于10X10系统来说有效的编码工作将会大大降低。首先,我们希望用来分割的编码工作随着编译器的强大而逐渐自动化。第二,我们相信,高级的软件技术,例如这些:TransmetaJava VMDebik VMCLROpenCL等等在未来会越来越成熟足以使软件可移植性更加开阔,超越现今ABI的兼容性,更加灵活,便携,执行效率更高。

 

 

译者注:

异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法_第1张图片

作者: AndrewA. Chien
芝加哥大学计算技术系副教授,
Intel 企业技术事业部副总裁
Intel 研究部门总监
Office:Ryerson 257C (at West end)
Phone:773-834-0117 ( pls email)
项目:
10x10Taming Heterogeneity for General Purpose Computing
EASE:Easy Exabyte Computing EB 级计算)
GlobalView Resilience (GVR)
Blockus
 

 

原文:

http://www.cs.uchicago.edu/research/publications/techreports
 
 

 

你可能感兴趣的:(异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法)