上圖安卓云游戲系統(tǒng)架構(gòu)中使用了硬件架構(gòu)和軟件基礎(chǔ)架構(gòu),處理器用的是至強(qiáng),顯卡使用的就是SG1,這套方案中,利用了獨(dú)立顯卡在云端完成了游戲的圖形界面渲染,然后利用流媒體把它發(fā)布到終端。
ARM服務(wù)器廠商說起用例的時(shí)候,總會(huì)強(qiáng)調(diào)ARM跑安卓負(fù)載的優(yōu)勢(shì),而在上圖的案例中,至強(qiáng)處理器用容器技術(shù)跑起了安卓系統(tǒng)。英特爾架構(gòu)、圖形和軟件集團(tuán)副總裁兼中國區(qū)總經(jīng)理謝曉清表示,英特爾在安卓的框架層和運(yùn)行層都做了很多優(yōu)化,提升了安卓容器化方案的密度。
這一方案有望在騰訊云上完成產(chǎn)品化。
騰訊先游云是騰訊游戲的內(nèi)測(cè)平臺(tái),騰訊先游云游戲平臺(tái)副總經(jīng)理Allen Fang表示,在至強(qiáng)可擴(kuò)展處理器和英特爾顯卡提供了高密度、低延遲、低功耗、低TCO的解決方案,一個(gè)有兩張顯卡的服務(wù)器能運(yùn)行超過100個(gè)游戲?qū)嵗?,包括《傳說對(duì)決》和《王者榮耀》這類流行的游戲。
oneAPI:利用原有生態(tài)拓展新生態(tài)
隨著機(jī)器學(xué)習(xí)人工智能的發(fā)展,計(jì)算架構(gòu)多元化趨勢(shì)勢(shì)在必行,但如何讓開發(fā)者和市場(chǎng)接受新的硬件平臺(tái)也并非易事,好在英特爾在軟件開發(fā)生態(tài)方面深耕多年,現(xiàn)在加入英偉達(dá)和AMD深耕多年的獨(dú)立顯卡市場(chǎng),以差異化破局的希望便有賴于此。
英特爾是一家硬件業(yè)務(wù)為主的公司,但為了將硬件的性能發(fā)揮出來,在軟件方面做了非常多的工作,英特爾架構(gòu)、圖形和軟件集團(tuán)副總裁兼中國區(qū)總經(jīng)理謝曉清表示,英特爾多年來打造的軟件生態(tài)是x86平臺(tái)最大的財(cái)富。
對(duì)于用戶來說,用戶使用x86處理器用的不只是一塊性能不斷增強(qiáng)的芯片,更重要的還有不斷優(yōu)化的,不斷與時(shí)俱進(jìn)的軟件。軟件非常重要,底層驅(qū)動(dòng)軟件決定了硬件要如何被使用,基礎(chǔ)架構(gòu)層的軟件則關(guān)系著系統(tǒng)的性能和效率,為上層軟件創(chuàng)新打基礎(chǔ)。
像x86這種軟硬件生態(tài)會(huì)越來越強(qiáng),這是不以任何人的主觀意志而變化的。從根本上來講,對(duì)于開發(fā)者來說,開發(fā)一個(gè)軟件能給更多人使用,也就意味著可用的軟件越來越多,對(duì)于普通用戶來說,能用的軟件非常多,這是生態(tài)發(fā)展的原動(dòng)力。
x86生態(tài)從發(fā)展至今用了幾十年時(shí)間,涵蓋架構(gòu)堆棧的方方面面。
如上圖所示,英特爾在固件,在硬件驅(qū)動(dòng)層,操作系統(tǒng)層,包括Linux社區(qū)、谷歌生態(tài),在KVM虛擬化社區(qū)都有許多貢獻(xiàn),在最火熱的容器項(xiàng)目Kubernetes方面,也都有非常重度的參與和貢獻(xiàn)。除了開源生態(tài),英特爾還有許多具有自主知識(shí)產(chǎn)權(quán)的軟件產(chǎn)品。
以前的生態(tài)主要是圍繞處理器而構(gòu)建的,隨著幾年前收購的FPGA芯片產(chǎn)品線的加入,以及現(xiàn)在新的獨(dú)立顯卡Xe的發(fā)布,英特爾在原來基礎(chǔ)上需要做更多工作,近年來在軟件生態(tài)上最主要的動(dòng)作就是發(fā)布了oneAPI。
上圖架構(gòu)中,英特爾將底層歸納為所謂的XPUs,緊隨其上的是硬件抽象層,將新硬件的生態(tài)納入到原有生態(tài)。
技術(shù)層面而言,英特爾希望開發(fā)者用oneAPI開發(fā)一次,就能將應(yīng)用跨CPU、GPU、FPGA等多個(gè)硬件平臺(tái)來運(yùn)行,如果未來還有什么新的硬件架構(gòu),oneAPI也將提供異構(gòu)支持,能與時(shí)俱進(jìn)。
2020年英特爾先是發(fā)布了oneAPI的規(guī)范,12月,英特爾將發(fā)布o(jì)neAPI的Gold版本,發(fā)布了一個(gè)叫DPC++的編譯器以及對(duì)應(yīng)的類庫和工具包,用全新的DPC++(Data Parallel C++,C++的一個(gè)擴(kuò)展)語言來開發(fā)異構(gòu)平臺(tái)軟件,不過,目前,只支持跨CPU和GPU兩個(gè)平臺(tái)。
謝曉清介紹說,oneAPI編程環(huán)境友好,編譯器、系統(tǒng)都經(jīng)過了高度優(yōu)化,開發(fā)模式非??焖俑咝?。另外,DPC++的語法特性與開發(fā)者熟悉的語言C和C++有很多相似之處,學(xué)習(xí)成本非常低。
不過,英特爾在oneapi.com官網(wǎng)上也寫道,跨平臺(tái)開發(fā)的軟件如果想要運(yùn)行效率更高,也還是需要大量調(diào)優(yōu)工作的,并不是說用oneAPI開發(fā)的應(yīng)用,在CPU上運(yùn)行的好,在GPU上也能一樣好。
跨平臺(tái)的需求多嗎?市場(chǎng)會(huì)接受嗎?
首先,從開發(fā)的角度看,跨平臺(tái)的需求有很多,跨平臺(tái)方案本身并不新鮮。
包括Java、C#、Python等各種語言開發(fā)框架都有跨平臺(tái)的設(shè)定,都有一個(gè)“一次開發(fā),到處運(yùn)行的構(gòu)想”,但以往這種跨平臺(tái)方案中都是以犧牲性能換開發(fā)效率的問題,很期待作為硬件大佬的英特爾開發(fā)的oneAPI在異構(gòu)開發(fā)上的性能表現(xiàn)。
其次,從用戶角度看,用戶希望應(yīng)用能運(yùn)行在多種架構(gòu)上,能利用多種多樣的資源,比如機(jī)器學(xué)習(xí)場(chǎng)景中,訓(xùn)練的時(shí)候用GPU和加速器多一些,在推理的階段用CPU多一些,異構(gòu)的需求越來越普遍。
以Tensorflow為例,在實(shí)際訓(xùn)練中Tensorflow主要是用GPU,CPU更多是用作推理階段,也就是說要谷歌至少維護(hù)兩個(gè)版本的Tensorflow,實(shí)際上,谷歌還開發(fā)了能運(yùn)行在樹莓派、手機(jī)等多種設(shè)備上的Tensorflow版本。
如果Tensorflow都基于oneAPI來開發(fā)的話,開發(fā)效率會(huì)有很大提高。在oneapi.com官網(wǎng)上,谷歌表示現(xiàn)在只在至強(qiáng)處理器上用oneAPI,期待未來在更多平臺(tái)上用oneAPI。
英特爾大數(shù)據(jù)技術(shù)全球CTO、大數(shù)據(jù)分析和人工智能創(chuàng)新院院長戴金權(quán)分享了AI軟件棧和生態(tài)的圖(上圖)。向上看,oneAPI通過包括oneDNN、oneDAL、oneCCL等類庫來支持AI/ML框架。向下看,oneAPI能利用各種XPU硬件,包括CPU、GPU以及各種加速器資源。
Analytics Zoo是一個(gè)統(tǒng)一了大數(shù)據(jù)和AI的開發(fā)平臺(tái),能將各種常見的機(jī)器學(xué)習(xí)框架分布式地?cái)U(kuò)展到很大規(guī)模,底層能利用CPU、GPU等各種計(jì)算資源,支持各種常見的機(jī)器學(xué)習(xí)和大數(shù)據(jù)開發(fā)框架,oneAPI在其中扮演著關(guān)鍵作用。
Analytics Zoo是英特爾開源的一個(gè)方案,將當(dāng)下最熱的大數(shù)據(jù)和AI技術(shù)生態(tài)嫁接到了英特爾至強(qiáng)、英特爾Xe顯卡以及加速器支撐的硬件平臺(tái)上,Analytics Zoo能幫助企業(yè)快速構(gòu)建端到端的數(shù)據(jù)分析加AI的一整套方案,解決從數(shù)據(jù)收集、數(shù)據(jù)預(yù)處理、訓(xùn)練到模型部署的所有問題。
通用計(jì)算負(fù)載時(shí)代,x86可謂是一統(tǒng)江湖,但在機(jī)器學(xué)習(xí)的大背景下,國內(nèi)外出現(xiàn)了數(shù)不清的專用AI加速器,異構(gòu)計(jì)算勢(shì)在必行,oneAPI則是英特爾順應(yīng)變化、應(yīng)對(duì)變化的大招。