回(huí)顾过(guò)去(qù)35到40年间(jiān)计(jì)算的发展历(lì)程,计算力的(de)增长速率呈指数级上(shàng)升,从(cóng)万物数字化、万(wàn)物互联、万物移动化到万物云化(huà),当前进入万物智能化。
在PC时代,互联网用户增长了十(shí)亿(yì)人。硬件和(hé)软件结合的(de)典型例子就(jiù)是PC上(shàng)X86架构和Windows系统的结合。
进入移动(dòng)化时代,从10亿的互联网用户增长到100亿的设备,呈现10倍(bèi)的(de)增(zēng)长。硬件和软件的结合也发(fā)生了变化,变成了(le)ARM架构和ioses及androids操(cāo)作系统,同时Linux系统和X86平台也占据(jù)一(yī)部分(fèn)市场。从10亿到100亿,实现(xiàn)的(de)是指数(shù)级(jí)的增长。
portant;" />
portant;" />
进入以数据(jù)为(wéi)中(zhōng)心的时代,异构计算(suàn)也随之出现。
以往(wǎng)CPU、GPU、FPGA等,均可以独当一面(miàn)。而(ér)当下(xià),传(chuán)统的通(tōng)用架构已远不能满足需求。CPU、GPU、FPGA甚至AI加速器等多种架构之(zhī)间组(zǔ)合,方能招架得住处(chù)理数据(jù)密集型(xíng)、复杂的工作(zuò)负载。未来,这种异(yì)构计(jì)算将(jiāng)成为(wéi)常(cháng)态。
portant;" />
portant;" />
一、应对(duì)多架构挑战 oneAPI应运而生
当前,不(bú)管是CPU、GPU、FPGA等(děng)哪一个硬件平(píng)台往往(wǎng)都需要开发者维护独(dú)立(lì)的代(dài)码库,这些(xiē)代(dài)码库需(xū)要(yào)使(shǐ)用不同的语(yǔ)言、库和软件工具(jù)进行编程。这是一项极其复杂(zá)和耗费时间的工作,大大降低开发(fā)速度、抑制创新。
具体而言,异构计算(suàn)使得一(yī)个用户可能在同一个数据中心里既需(xū)要CPU里做虚拟机,又需要FPGA来做各种解压缩或者加速器,还(hái)需(xū)要GPU来做(zuò)深度学习或(huò)者人工智能(néng)。这就需要在数据中心里安(ān)各种各样的硬件,跑各种各样的(de)软件。如果还是各自(zì)为政的话,对于(yú)用(yòng)户来说,就算应用将来要扩容、硬件平台将来要升级,都是成(chéng)本(běn)很高的一件事。甚至此前(qián)做的都全白做了。
为了解决这一难题,oneAPI应运而生(shēng)。oneAPI是一个以开发(fā)者为(wéi)中心的平台,简化(huà)多架构编程的一个统(tǒng)一(yī)编程模型(xíng),开发者可(kě)以自由选(xuǎn)择架(jià)构,大大降(jiàng)低(dī)了使用不同的代码库、编程语言、编程工(gōng)具和(hé)工作流程所带来的复杂性。oneAPI采用统一、简化的(de)语言和函数库,用于表达(dá)并行化(huà),且基(jī)于行业标准和开放式规范,能够与现(xiàn)有 HPC 编程模型互操(cāo)作。
portant;" />
oneAPI包括了一(yī)项基(jī)于开(kāi)放(fàng)规范的行业计划和(hé)一款beta产品。该(gāi)规范包括(kuò)一(yī)种(zhǒng)编程语言、强大的API函数(shù)库(kù)以及底层硬件接口。oneAPI beta产品为开发(fā)者提供了全套的开(kāi)发工具,包括编译器(qì)、编程库、分析器(qì)等,并把这(zhè)些工具封装为(wéi)特定(dìng)领域的工具包。初期oneAPI beta版主要面向英特尔至强可扩展处理器、带集成显卡的英特尔酷睿(ruì)处理器,以及英特(tè)尔FPGA,未来(lái)还将支持更(gèng)多硬件。
oneAPI将实现(xiàn)与现有(yǒu)行业标准的互操作性。oneAPI开放(fàng)式规范(fàn)包(bāo)括(kuò)一种跨架构的编程(chéng)语言Data Parallel C++ (DPC++)、一套用于API编(biān)程的函(hán)数库以及底层硬(yìng)件(jiàn)接口(oneAPI Level Zero)。有了(le)这(zhè)些组件,英特尔(ěr)和其他企业就能创建他们自己(jǐ)的oneAPI实现来支持自己的产品,或基于oneAPI进行(háng)新(xīn)产品(pǐn)开发(fā)。
oneAPI规范是为支持来自多个(gè)厂商的各种CPU和(hé)加速器而设计的。oneAPI beta版目前支持英特(tè)尔CPU(英特尔至强、酷(kù)睿、凌动)、英(yīng)特尔Arria FPGA以及作为(wéi)未来独立数据中心GPU代理开发平台的第九代/英特尔核芯显卡。oneAPI日后将(jiāng)支持更多英特尔加速器架(jià)构。
DPC++是(shì)基于大众熟悉的C和C++语言,专门为(wéi)oneAPI设计的主要编程语(yǔ)言。它融合(hé)了来自Kronos Group的(de)SYCL,从而(ér)可(kě)以支持跨CPU和加速器上的数据并(bìng)行和异构编程,目(mù)的(de)是为了简化编程以及(jí)提(tí)高代码(mǎ)在不同硬件上的可重用性,同时能根据(jù)特定(dìng)的加(jiā)速器进(jìn)行调优。
DPC++语(yǔ)言增强(qiáng)将会通过一(yī)个开发者社区项目来进行扩展(zhǎn),以简化数据并行(háng)编程(chéng)。该(gāi)项目向(xiàng)公众开放,并将通过开发者们的共同努力不断发展。
目前(qián),很多库(kù)和组件已经开源或(huò)即将(jiāng)开源。英(yīng)特尔一位工程师指出:“开(kāi)发者有想法(fǎ)可(kě)以去(qù)做(zuò)扩展,这对开发者来讲是没(méi)有太大阻碍的。第二个(gè)层面,我们做这个目的(de)是因为后面计算会(huì)比较复杂(zá),因为你可能(néng)有(yǒu)AI的(de)应(yīng)用,有后面更多的跨架(jià)构(gòu)/跨平台的(de)应(yīng)用,还有各种框架上的支持,这些都是(shì)依赖于开发(fā)者对oneAPI的支持或者之后(hòu)的发展,应(yīng)该说本身(shēn)它是(shì)一个发展的平台,它(tā)不是固定不变的东(dōng)西。英特尔开了一(yī)个很重要的头,也投了(le)大量(liàng)的人力(lì)和物力,后面(miàn)要做(zuò)的话应该是(shì)开(kāi)发者共同和我们一起把这个东西往前推的(de)过程。”
用一个(gè)形象的比方(fāng),不同架(jià)构的选择如(rú)同是“自(zì)助(zhù)餐(cān)”,有各种各(gè)样(yàng)的菜,可以(yǐ)自(zì)由组合,想(xiǎng)吃沙拉就(jiù)吃(chī)沙(shā)拉,想吃红烧肉也(yě)可以。此前一(yī)些企业(yè)提供的方案是封闭(bì)性的,有的公司只供红(hóng)烧肉(ròu),有(yǒu)的(de)公司专门做(zuò)沙拉。而有(yǒu)了(le)oneAPI的(de)支持,企业客户才能够更灵活的选择各(gè)种架构进行任意组(zǔ)合,oneAPI是通(tōng)过软件来帮助实现硬件灵活组合的愿景。
二(èr)、OneAPI是英特(tè)尔(ěr)软硬结(jié)合(hé)软件为先战略中的重要一(yī)步
现在数据量(liàng)极(jí)其庞大,已经远远超出了(le)在一台计算机上(shàng)就可以完全处理的承载和(hé)能力,必(bì)须要(yào)清楚如何应对这些无(wú)法放进一台(tái)计算机的大规模数据的处理方式,这是巨(jù)大的机会。接下来面临的挑战是(shì),如何(hé)将(jiāng)性能提(tí)升十倍、百倍,而并不是简(jiǎn)单的提升10%的问题。
英特(tè)尔首席架构师Raja Koduri认为,摩尔(ěr)定律将持续给(gěi)我们(men)带来非(fēi)常好的性能提升;而(ér)通过软件和硬件的结合,可以让摩尔定律(lǜ)的提升变成十倍。因为(wéi)摩尔定律会带来(lái)更多的晶(jīng)体管,而软件可以将越来越多的晶体管的极致性能释放出来。将(jiāng)软件和硬件(jiàn)结合(hé)就是(shì)英特尔的战略重点,这也是未(wèi)来面临的非常巨大的机会。
portant;" />
英(yīng)特尔认为,对于全新硬件架构的每一个(gè)数量级的性能提升潜力,软件能带来两个数量级的性能提(tí)升。英特尔首(shǒu)席架构师(shī)Raja Koduri表示: “通过(guò)软(ruǎn)件(jiàn)优(yōu)化,可以给Java带来6倍的性能提升,给(gěi)持久(jiǔ)性内存带来8倍(bèi)的性能升级,在AI领域带来28倍的性能提升,所以它的性能提升空间是非常大的,而且这仅仅(jǐn)是在(zài)同一款硬件上通(tōng)过软件就可(kě)以做到的。”为(wéi)此,2018年12月英特尔(ěr)“架(jià)构日”活动上提出(chū)六大(dà)技术支(zhī)柱战(zhàn)略,即:制程和封装、架构、内(nèi)存和存储(chǔ)、互连、安全(quán)、软件(jiàn)。
“软件是英特尔的一项重要战略(luè)资(zī)产(chǎn),英(yīng)特尔将通过软件业务来充分释放公司的整体增长潜力。英特尔(ěr)希望(wàng)通过在整(zhěng)个开源生态(tài)系统中的协(xié)作,来推动面向以数据为中心时代的产品和服务(wù)创新。” 英特尔公司副总裁兼系统软(ruǎn)件产品部门总经理苏义德曾强调。
英(yīng)特尔拥(yōng)有(yǒu)一个1200万活跃(yuè)开发者的生态(tài)系统,横跨PC、网络和数据中心。不(bú)管客户有高性(xìng)能的(de)要求(qiú)还是有低功耗(hào)要求,或者是对成(chéng)本(běn)比较敏感,英(yīng)特尔都有完整(zhěng)的产品线可(kě)以对应(yīng)用户的不同需求。英特尔希望可(kě)以实现一个非常简化的流程(chéng),通过一个统一的(de)软件栈,一(yī)个统(tǒng)一的API就可以适应客(kè)户所有的从性(xìng)能、功(gōng)耗到成本上的(de)优化需求。
在软硬结合软件为先的战略中,英特尔(ěr)在“架构日”活动上同时宣布(bù)推(tuī)出“oneAPI”项(xiàng)目,面向(xiàng)多(duō)元化计算时代。该项(xiàng)目包括一(yī)个全面(miàn)、统一(yī)的开发工具组合,以将软件匹(pǐ)配到能最(zuì)大程度(dù)加速软件代码(mǎ)的硬件上。
“绝大多数AI算法的演(yǎn)进和创(chuàng)新(xīn)都是在更偏上层来(lái)完成的,我们希望在底层就(jiù)做好助力和驱动。同时(shí),我们(men)也会不(bú)断优化(huà)oneAPI。这样,未来任何编程人员(yuán)不管是他们想将硬件(jiàn)性能提升10%、20%甚至50%,都可以在这个框架上(shàng)轻松实现,而不(bú)需要再自(zì)己编写语(yǔ)言。”Raja Koduri表示。
2019年11月正式发布了oneAPI公开发行版本。oneAPI包(bāo)括了一项基(jī)于开放规(guī)范的行业计划和一款beta产品。
英特尔指出,oneAPI不是一个全新的东西(xī),它是之前几十年的(de)积累上面(miàn)做了一个扩展。基于现(xiàn)在工作(zuò)负载越来越复杂,做这样(yàng)的扩展是非常合情合理的一件(jiàn)事(shì)情。从现(xiàn)在整(zhěng)体来看,无论(lùn)是(shì)开发(fā)效率还是实际(jì)的产品运营(yíng)效率,都可以从中受益。
三(sān)、oneAPI重在培育生态系统 与伙伴共(gòng)同拥抱数(shù)据时代
在(zài)设计oneAPI之初,英特尔(ěr)就(jiù)考(kǎo)虑到要发挥整个Xe架构最强的(de)全(quán)面性(xìng)能,不管(guǎn)是高性能还是(shì)低功耗。除(chú)此之外,oneAPI的设计也确保(bǎo)要符合英特尔(ěr)所有其他不同计算和应用的需求。不管是(shì)CPU、FPGA还是加(jiā)速器,oneAPI的设计都可(kě)以和它们进(jìn)行非(fēi)常完整的配合(hé)。
oneAPI,是(shì)英特尔以软(ruǎn)件来最大程度释放硬件(jiàn)性能,从软件层面来简化(huà)和统(tǒng)一跨SVMS架构的创新。Raja Koduri指出,oneAPI是一个非常底层的抽象框架(jià),主要就(jiù)是面对以(yǐ)后(hòu)不同计算元素的集成,希望(wàng)能够从(cóng)底(dǐ)层更好地完成特(tè)征抽象和集成(chéng)。
SVMS架构是由标量(Scalar)、矢量(Vector)、矩(jǔ)阵(Matrix)、空间(Spatial)四种架构组成的,分别对(duì)应着CPU、GPU、FPGA和加速器(qì),它们的组合方式是多种多样的。通(tōng)过(guò)这个架构的分类方式可以看到(dào),CPU是最通(tōng)用的一种架构,而GPU会(huì)比CPU更加高(gāo)效(xiào)和专用,而FPGA和加速(sù)器的能效和灵(líng)活性更高。
portant;" />
“英特尔的(de)策略就是要囊括CPU、GPU、FPGA、加速器所(suǒ)有的架构。”Raja Koduri指出,CPU依旧是目前最(zuì)重要的架构,英特尔将不断提高每个CPU的性能(néng),继续保持它作为最(zuì)强(qiáng)的计算架构的(de)位(wèi)置。GPU战(zhàn)略主要是要提高(gāo)能效(xiào),更(gèng)好帮助英(yīng)特尔提高(gāo)整体(tǐ)的生产力和效率。在FPGA领域(yù),英特尔(ěr)现在已经做的非常成(chéng)功了,英特尔推出(chū)了很多重要的(de)FPGA产(chǎn)品。另外(wài),加速器(qì)也是英特(tè)尔非常重要的一个发力点。
在oneAPI的生(shēng)态构(gòu)建方面,英特尔主要从三个层(céng)面来推进:一是英特尔有着强(qiáng)大的开发(fā)者社区,以及全球范围内非常广泛的(de)社区合(hé)作伙伴。英特尔将从自身非常擅长的开源社区入(rù)手。第(dì)二(èr),在很(hěn)大层面(miàn)上与(yǔ)高校(xiào)展(zhǎn)开配合(hé)协(xié)作(zuò),结合他(tā)们的技术以及案例(lì)来打(dǎ)造(zào)一个完(wán)整的社区(qū)。第三,与全球开发(fā)者们进行更加完整(zhěng)的合作,开发者不仅仅是指个(gè)人(rén)开发者,也包(bāo)括(kuò)大型的企业(yè)机构(gòu),例如腾讯、阿里等,英特尔将会与(yǔ)每个(gè)人、每个企业(yè)都紧密地(dì)配合,来支持oneAPI的生态(tài)。
截至(zhì)11月(yuè)17日,支持oneAPI概(gài)念的业(yè)内领先企业和研究机构已经超过30家,包括高性(xìng)能计(jì)算领域(yù)的领导者、人工智能(néng)领域的创新者、硬件厂商/OEM、独立软件开发商、云服务商、高校等等(děng)。
2019年5G的(de)正式(shì)商用加速了物联网的深入应用,这意(yì)味(wèi)着会有(yǒu)更多的物联网节点智能终(zhōng)端产品落(luò)地应用。据统计数据显示,2020年全球物(wù)联网(wǎng)设(shè)备基数(shù)将达307亿台,2025年将达(dá)到(dào)754亿台。而(ér)这些将(jiāng)会产生海量的数据,这些数据的存储、安全、运算,则需要依赖于数据中心、云(yún)服务等(děng)软件业(yè)务。
英特尔愿(yuàn)发挥在软件业务方面(miàn)的(de)强优势,以生态(tài)系(xì)统培养为(wéi)主,推动(dòng)整(zhěng)个业界(jiè)往(wǎng)前迈进。并与合作伙伴一起面对这一巨大的市场应(yīng)用需求,一同抓住这块蛋糕(gāo)。