异构计算中国芯!问题来了,异构计算到底是什么?

异构计算中国芯!问题来了,异构计算到底是什么?,第1张

随着近几年天河2号和神威太湖之光相继在全球超级计算机公布的TOP500刷榜。在超级计算方面异构计算已经基本取代了同构计算,而且随着Intel着力发展CPU+FPGA,AMD大力研发CPU+GPU,异构计算也将越来越多的进入人们的视野。在国外公司积极布局异构计算的同时,国内公司也不甘落后。日前,中国华夏芯公司宣布,其异构计算处理器IP核已经在硅片上成功实现,并已通过HSA(异构系统架构)一致性测试。公司还宣布了新的机器学习和深层神经网络的开源项目,旨在进一步推动HSA异构计算的发展。

目前,在HSA协会的推动下,异构计算有向越来越多的领域侵蚀的趋势。那么,什么是异构计算?发展前景究竟如何?中国首个异构计算处理器又凭什么在业界处于领先地位呢?

什么是异构计算

同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。而异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元类别包括CPU、GPU、DSP、ASIC、FPGA等。异构计算用简单的公式可以表示为“CPU+XXX”。举例来说,AMD着力发展的APU就属于异构计算,用公式表示就是CPU+GPU。

由于术业有专攻,CPU、GPU、DSP、ASIC、FPGA各有所长,在一些场景下,引入特定计算单元,让计算系统变成混合结构,就能让CPU、GPU、DSP、FPGA执行自己最擅长的任务。如果能做到无缝地将运行于CPU之上的通用计算、运行于GPU之上的并行计算、运行于DSP之上或者ASIC/FPGA之上的优化计算整合在一起,就能获得更好的应用性能,更低的功耗等特性,相对于同构计算而言也可能有一定性能优势。

以天河2号的一个计算节点为例。Xeon E5的满载功耗达145W,双精浮点为0.21T Flops,而Xeon PHI功耗300W,双精浮点达1T Flops。

天河2号一个计算节点由2片Xeon E5和3片Xeon PHI,理论双精浮点性能为3.42T Flops,功耗为1190W,理论双精浮点性能与功耗的比值为2.87GFlops/W。相同功耗下使用8片Xeon E5只能获得1696Gflops的理论双精浮点性能,理论双精浮点性能与功耗的比值为1.42GFlops/W。从数据可以看出,在同等功耗下,在使用Xeon PHI加速后,理论双精浮点性能是只使用Xeon E5的2倍。

正是因为异构计算在理论上有着诸多的优势,一些媒体将“CPU+XXX”称为下一代处理器。

在超算上应用广泛

事实上,最近几年曾经在TOP500刷榜,或者排名靠前的超算都采用了异构计算——中国神威太湖之光、美国超算泰坦、中国天河1号和天河2号。

泰坦有18688个运算节点,每个运算节点由1个16核心AMD Opteron 6274处理器和1个NVIDIA Tesla K20加速组成,共计299008个运算核心,属于CPU+GPU。

天河1号使用了14336片Intel Xeon X5670处理器和7168片NVIDIA Tesla M2050高性能计算卡,属于CPU+GPU。

天河2号有16000个计算节点,每个节点由2片Intel的E5 2692和3片Xeon PHI组成,共使用了32000片Intel的E5 2692和48000片Xeon PHI,属于CPU+众核芯片。正在升级的天河2号则将美国的Xeon PHI换成了自主研发的矩阵2000,属于CPU+DSP。

中国首个异构计算处理器属于自主研发

近年来,国家对集成电路产业发展高度重视,在龙芯、申威等老牌设计单位取得累累硕果的同时,又成立了拥有1200亿元人民币的集成电路大基金扶持产业发展,先后与IBM、VIA、高通、AMD合资/合作成立兆芯、宏芯、华芯通等公司,并大力扶持展讯、海思、联芯等ARM阵营IC设计公司茁壮成长。

不过,在上述公司中,除了龙芯和申威之外,大多都对境外技术有一定依赖,有的还成为境外公司的马甲,既不具备造血能力,又只能依赖政府经费生存。可以说,当今开发处理器的公司中鱼龙混杂,真正能做到自主研发、自主可控的少之又少。

就是在业界普遍购买国外技术授权,开发所谓“国产”处理器的大背景下,华夏芯选择了最为艰难的自主研发道路——其处理器的指令集和IP都属于自主研发。

也许很多人从来没有听说过华夏芯这样一家公司,但该公司确实是中国第一家从事异构计算处理器IP核设计的集成电路企业——华夏芯公司是一个定位于全球市场的中国公司,研发团队的来源也是全球化,但是从技术到人才都掌握在华夏芯手中,比如华夏芯的3合1“ Unity”体系架构是其独创技术,在同行业中也处于领先地位。

更难得的是,华夏芯并没有像一些商业公司那样购买ARM指令集,而是公司自主开发的指令集、微结构和工具链。因此,在自主创新能力上,和一些购买ARM 的IP授权开发所谓“国产”CPU的国内厂商有着本质上的区别。

华夏芯公司最近发布了一系列新的IP授权产品,在全球范围授权IP,为客户提供一流的处理器设计技术。所有华夏芯的处理器均支持HSA。对此,华夏芯的董事长李科奕表示,“我们很高兴地看到华夏芯的新IP核通过了PRM HSA一致性测试,面向工业、物联网、高级驾驶辅助系统(ADAS)和嵌入式系统,该IP核对功耗进行了优化并向全球提供许可”。

据了解,华夏芯还是中国唯二的可以对外授权IP的处理器公司(另一家是龙芯),在中国大多数CPU公司还处于购买国外IP做集成的时代,华夏芯能够自己开发IP并且能够对外授权就显得尤为难得。目前,华夏芯的CPU核可以通过IP授权的方式提供给客户,第一款CPU已经在台积电使用28nm HPC制成工艺流片,2016年第3季度提供给潜在客户作为评估或开发之用。

相对于国外大厂有何独门绝技

中国首个异构处理器相对于国外产品最大的特色就是3合1“ Unity”体系架构。本次在硅片上实现的IP核是华夏芯3合1“ Unity”体系架构的首次实现。Unity具有包括图像和视频处理在内的多维信号处理能力。华夏芯美国研发中心的CTO Mayan Moudgill博士表示,“矢量处理长度可依据矢量计算的需求动态设置,最大配置达到64KB,满足各种智能化应用和高性能计算对并行计算的要求,保证了指令架构的稳健性和软件代码的移植性。变长矢量处理单元(VPU)在进行大量数据处理的同时,结合了低功耗、乱序执行流水线等多项先进技术,从而使多个控制线程高效地执行”。

值得关注的是,在华夏芯面向全球发布上述消息2天之后,ARM也发布了与其类似的V8-A的矢量扩展架构(SVE),其技术特征与华夏芯推出的VPU单元极为相似。这说明,真正从事自主创新的国产处理器设计公司完全可以在核心技术上达到国际领先水平,其创新能力要远远优于那些通过IP授权设计CPU的公司,毕竟后者在自主创新的空间上受到授权许可方极其严苛的各种限制。

另外,市场上有很多SOC也集成了CPU、GPU、DSP等计算单元,比如像高通骁龙芯片、华为海思麒麟芯片都集成了CPU、GPU和DSP。那么,华夏芯3合1“ Unity”体系架构和市面上普遍存在的SOC有哪些优势呢?

之前提到的SOC的CPU、GPU、DSP的指令架构不同,微架构不同,工具链不同,是基于多核集成做出来的异构多核芯片,它们往往采用 *** 作系统完成多核、多任务之间的同步与协调,因而会影响效率。在这里特别强调一下,传统的SOC多核编程非常难,虽然在物理上实现了单芯片多核集成,但是在开发习惯和流程上与传统的板上集成系统没有太大的不同,即性能不高、功耗不小、多套工具、多个团队、开发困难、优化更难。

相比之下,基于华夏芯Unity架构的芯片单核已经具备CPU、IVP(image and video processor)、DSP的处理能力,而且是一套指令架构,一套微架构,一套工具链。在做多核扩展、硬件加速和FPGA的整合工作时,华夏芯的Utility体系架构将完全遵循HSA的规范,可以重用HSA的软件生态系统。因此,华夏芯的3合1做法在功耗、成本、性能、软件开发门槛、团队规模等方面都有巨大的优势。

异构计算市场前景如何

异构计算在理论上相对于同构计算拥有很多优势——HSA能够简化芯片结构设计、降低应用编程门槛、缩短项目研发周期、显著提升芯片性能、广泛共享软件生态。有厂家甚至宣传异构计算可以实现任何程序都不必费心考虑不同处理器内核之间的存储差异。但在现阶段,异构计算除了在超算上取得了明显成绩,在其他领域优势并不大。

即便异构计算目前还存在这样或那样的一些问题,但却是非常具有发展潜力的技术。随着技术的进步,电子消费品市场对于高性能并行计算的需求正在爆发性增长,特别是在机器视觉、人工智能、云计算、AR/VR、软件定义无线电以及其他新兴领域,都对异构计算系统有着非常大的需求。而HSA在系统编程方式上的迈进使得一个复杂片上系统能够协调在并行计算上比CPU更高效、更低功耗的GPU、DSP以及硬件加速等计算单元承担大部分繁重的计算工作任务,在上述新兴领域能发挥较理想的作用。

也正是因此,Parmance公司计划与华夏芯在ML-HSA项目上进行合作——该项目面向机器学习和深层神经网络,并针对华夏芯此前发起的开源gccbrig项目进行优化,gccbrig项目为任何支持GCC的平台提供编译(终结转换)功能。

国外巨头也一直着力发展异构计算系统——Intel在去年以167亿美元收购阿尔特拉,发展CPU+FPGA,AMD着力发展的APU也属于异构计算,像Imagination、MTK等一些厂商也在异构计算领域积极布局。可以说,异构计算的市场前景还是值得期待的。

结语

虽然在CPU、GPU、DSP等传统芯片上,中国与西方还有这比较大的差距,但在异构计算处理器上,中国与国际先进水平差距小,局部甚至还处于领先地位,可以说,本次华夏芯成功研发的异构计算处理器则是中国在该领域的有益尝试。

“科普中国”是中国科协携同社会各方利用信息化手段开展科学传播的科学权威品牌。

本文由科普中国融合创作出品,转载请注明出处。

有种东西叫“拷贝构造函数”,即使你没有写,编译器也会自动被你生产一个。

实际上参数传递调用的就是这个“拷贝构造函数”,改成这个样子就能看到效果

class A

{

public:

A()

{

cout<<"A的构造函数"<<endl

}

A(const A&a)

{

cout<<"A的拷贝构造函数"<<endl

}

~A()

{

cout<<"A的析构函数"<<endl

}

}

分类: 教育/科学 >>升学入学 >>高考

解析:

异构数据库系统是相关的多个数据库系统的 *** ,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:

计算机体系结构的异构

各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。

基础 *** 作系统的异构

各个数据库系统的基础 *** 作系统可以是Unix、Windows NT、 Linux等。

DMBS本身的异构

可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。

----异构数据库系统的目标在于实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享。其中关键的一点就是以局部数据库模式为基础,建立全局的数据模式或全局外视图。这种全局模式对于建立高级的决策支持系统尤为重要。

----大型机构在许多地点都有分支机构,每个子机构的数据库中都有着自己的信息数据,而决策制订人员一般只关心宏观的、为全局模式所描述的信息。建立在数据仓库技术基础上的异构数据库全局模式的描述是一种好的解决方案。数据仓库可以从异构数据库系统中的多个数据库中收集信息,并建立统一的全局模式,同时收集的数据还支持对历史数据的访问,用户通过数据仓库提供的统一的数据接口进行决策支持的查询。

数据库转换

----对于异构数据库系统,实现数据共享应当达到两点:一是实现数据库转换;二是实现数据的透明访问。由华中科技大学开发的,拥有自主版权的商品化数据库管理系统DM3系统,通过所提供的数据库转换工具和API接口实现了这两点。

----DM3提供了数据库转换工具,可以将一种数据库系统中定义的模型转化为另一种数据库中的模型,然后根据需要再装入数据,这时用户就可以利用自己熟悉的数据库系统和熟悉的查询语言,实现数据共享的目标。数据库转换工具首先进行类型转换,访问源数据库系统,将源数据库的数据定义模型转换为目标数据库的数据定义模型,然后进行数据重组,即将源数据库系统中的数据装入到目的数据库中。

----在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:

命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。

格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。

结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。

----总之,在进行数据转换后,一方面源数据库模式中所有需要共享的信息都转换到目的数据库中,另一方面这种转换又不能包含冗余的关联信息。

----数据库转换工具可以实现不同数据库系统之间的数据模型转换,需要进一步研究的问题是:如果数据库转换同时进行数据定义模式转换和数据转换,就可能引起同一数据 *** 在异构数据库系统中存在多个副本,因此需要引入新的访问控制机制。在保证各个参与数据库自治,维护其完整性、安全性的基础上,对于异构数据库系统提供全局的访问控制、并发机制和安全控制。

----如果数据库转换只进行数据定义转换,不产生数据的副本,那么在新的目的数据库定义模型的框架下访问数据,实现上仍是对源数据库系统中数据的访问。这时利用新的数据库系统中的数据处理语言实现的事务,不能直接访问源数据库,必须进行事务级的翻译才可以执行。

数据的透明访问

----在异构数据系统中实现了数据的透明访问,用户就可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。但目前还没有一种广泛使用的数据定义模型和数据查询语言,实现数据的透明访问可以采用多对一转换、双向的中间件等技术。开放式数据库互连(Open DataBase Connectivity,简称ODBC)是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口(API)。ODBC为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境。目前,常用的数据库应用开发的前端工具如Power Builder、 Delphi等都通过开放数据库互联(ODBC)接口来连接各种数据库系统。而多数数据库管理系统(如:Oracle、Sybase、SQL Server等)都提供了相应的ODBC驱动程序,使数据库系统具有很好的开放性。ODBC接口的最大优点是其互 *** 作能力,理想情况下,每个驱动程序和数据源应支持完全相同的ODBC函数调用和SQL语句,使得ODBC应用程序可以 *** 作所有的数据库系统。然而,实际上不同的数据库对SQL语法的支持程度各不相同,因此,ODBC规范定义了驱动程序的一致性级别,ODBC API的一致性确定了应用程序所能调用的ODBC函数种类,ODBC 2.0规定了三个级别的函数,目前 DM3 ODBC API支持 ODBC 2.0规范中第二级扩展的所有函数。

----随着Inter应用的不断普及,Inter的异构分布式信息系统正在迅速发展,Java以其平台无关性、移植性强,安全性高、稳定性好、分布式、面向对象等优点而成为Inter应用开发的首选语言。在Inter环境下,实现基于异种系统平台的数据库应用,必须提供一个独立于特定数据库管理系统的统一编程界面和一个基于 SQL的通用的数据库访问方法。Java与数据库接口规范JDBC(Java Database Connectivity)是支持基本SQL功能的一个通用的应用程序编程接口,它在不同的数据库功能模块的层次上提供了一个统一的用户界面,为对异构数据库进行直接的Web访问提供了新的解决方案。 JDBC已被越来越多的数据库厂商、连接厂商、Inter服务厂商及应用程序编制者所支持。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11541770.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存