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