回顧過去35到40年間計算的發展歷程,計算力的增長速率呈指數級上升,從萬物數字化、萬物互聯、萬物移動化到萬物云化,當前進入萬物智能化。
在PC時代,互聯網用戶增長了十億人。硬件和軟件結合的典型例子就是PC上X86架構和Windows系統的結合。
進入移動化時代,從10億的互聯網用戶增長到100億的設備,呈現10倍的增長。硬件和軟件的結合也發生了變化,變成了ARM架構和iOS及Android操作系統,同時Linux系統和X86平臺也占據一部分市場。從10億到100億,實現的是指數級的增長。
進入以數據為中心的時代,異構計算也隨之出現。
以往CPU、GPU、FPGA等,均可以獨當一面。而當下,傳統的通用架構已遠不能滿足需求。CPU、GPU、FPGA甚至AI加速器等多種架構之間組合,方能招架得住處理數據密集型、復雜的工作負載。未來,這種異構計算將成為常態。
一、應對多架構挑戰 oneAPI應運而生
當前,不管是CPU、GPU、FPGA等哪一個硬件平臺往往都需要開發者維護獨立的代碼庫,這些代碼庫需要使用不同的語言、庫和軟件工具進行編程。這是一項極其復雜和耗費時間的工作,大大降低開發速度、抑制創新。
具體而言,異構計算使得一個用戶可能在同一個數據中心里既需要CPU里做虛擬機,又需要FPGA來做各種解壓縮或者加速器,還需要GPU來做深度學習或者人工智能。這就需要在數據中心里安各種各樣的硬件,跑各種各樣的軟件。如果還是各自為政的話,對于用戶來說,就算應用將來要擴容、硬件平臺將來要升級,都是成本很高的一件事。甚至此前做的都全白做了。
為了解決這一難題,oneAPI應運而生。oneAPI是一個以開發者為中心的平臺,簡化多架構編程的一個統一編程模型,開發者可以自由選擇架構,大大降低了使用不同的代碼庫、編程語言、編程工具和工作流程所帶來的復雜性。oneAPI采用統一、簡化的語言和函數庫,用于表達并行化,且基于行業標準和開放式規范,能夠與現有 HPC 編程模型互操作。
oneAPI包括了一項基于開放規范的行業計劃和一款beta產品。該規范包括一種編程語言、強大的API函數庫以及底層硬件接口。oneAPI beta產品為開發者提供了全套的開發工具,包括編譯器、編程庫、分析器等,并把這些工具封裝為特定領域的工具包。初期oneAPI beta版主要面向英特爾®至強®可擴展處理器、帶集成顯卡的英特爾®酷睿®處理器,以及英特爾® FPGA,未來還將支持更多硬件。
oneAPI將實現與現有行業標準的互操作性。oneAPI開放式規范包括一種跨架構的編程語言Data Parallel C++ (DPC++)、一套用于API編程的函數庫以及底層硬件接口(oneAPI Level Zero)。有了這些組件,英特爾和其他企業就能創建他們自己的oneAPI實現來支持自己的產品,或基于oneAPI進行新產品開發。
oneAPI規范是為支持來自多個廠商的各種CPU和加速器而設計的。oneAPI beta版目前支持英特爾CPU(英特爾至強®、酷睿™、凌動)、英特爾Arria FPGA以及作為未來獨立數據中心GPU代理開發平臺的第九代/英特爾核芯顯卡。oneAPI日后將支持更多英特爾加速器架構。
DPC++是基于大眾熟悉的C和C++語言,專門為oneAPI設計的主要編程語言。它融合了來自Kronos Group的SYCL*,從而可以支持跨CPU和加速器上的數據并行和異構編程,目的是為了簡化編程以及提高代碼在不同硬件上的可重用性,同時能根據特定的加速器進行調優。
DPC++語言增強將會通過一個開發者社區項目來進行擴展,以簡化數據并行編程。該項目向公眾開放,并將通過開發者們的共同努力不斷發展。
目前,很多庫和組件已經開源或即將開源。英特爾一位工程師指出:“開發者有想法可以去做擴展,這對開發者來講是沒有太大阻礙的。第二個層面,我們做這個目的是因為后面計算會比較復雜,因為你可能有AI的應用,有后面更多的跨架構/跨平臺的應用,還有各種框架上的支持,這些都是依賴于開發者對oneAPI的支持或者之后的發展,應該說本身它是一個發展的平臺,它不是固定不變的東西。英特爾開了一個很重要的頭,也投了大量的人力和物力,后面要做的話應該是開發者共同和我們一起把這個東西往前推的過程。”
用一個形象的比方,不同架構的選擇如同是“自助餐”,有各種各樣的菜,可以自由組合,想吃沙拉就吃沙拉,想吃紅燒肉也可以。此前一些企業提供的方案是封閉性的,有的公司只供紅燒肉,有的公司專門做沙拉。而有了oneAPI的支持,企業客戶才能夠更靈活的選擇各種架構進行任意組合,oneAPI是通過軟件來幫助實現硬件靈活組合的愿景。
二、OneAPI是英特爾軟硬結合軟件為先戰略中的重要一步
現在數據量極其龐大,已經遠遠超出了在一臺計算機上就可以完全處理的承載和能力,必須要清楚如何應對這些無法放進一臺計算機的大規模數據的處理方式,這是巨大的機會。接下來面臨的挑戰是,如何將性能提升十倍、百倍,而并不是簡單的提升10%的問題。
英特爾首席架構師Raja Koduri認為,摩爾定律將持續給我們帶來非常好的性能提升;而通過軟件和硬件的結合,可以讓摩爾定律的提升變成十倍。因為摩爾定律會帶來更多的晶體管,而軟件可以將越來越多的晶體管的極致性能釋放出來。將軟件和硬件結合就是英特爾的戰略重點,這也是未來面臨的非常巨大的機會。
英特爾認為,對于全新硬件架構的每一個數量級的性能提升潛力,軟件能帶來兩個數量級的性能提升。英特爾首席架構師Raja Koduri表示: “通過軟件優化,可以給Java帶來6倍的性能提升,給持久性內存帶來8倍的性能升級,在AI領域帶來28倍的性能提升,所以它的性能提升空間是非常大的,而且這僅僅是在同一款硬件上通過軟件就可以做到的。”為此,2018年12月英特爾“架構日”活動上提出六大技術支柱戰略,即:制程和封裝、架構、內存和存儲、互連、安全、軟件。
“軟件是英特爾的一項重要戰略資產,英特爾將通過軟件業務來充分釋放公司的整體增長潛力。英特爾希望通過在整個開源生態系統中的協作,來推動面向以數據為中心時代的產品和服務創新。” 英特爾公司副總裁兼系統軟件產品部門總經理蘇義德曾強調。
英特爾擁有一個1200萬活躍開發者的生態系統,橫跨PC、網絡和數據中心。不管客戶有高性能的要求還是有低功耗要求,或者是對成本比較敏感,英特爾都有完整的產品線可以對應用戶的不同需求。英特爾希望可以實現一個非常簡化的流程,通過一個統一的軟件棧,一個統一的API就可以適應客戶所有的從性能、功耗到成本上的優化需求。
在軟硬結合軟件為先的戰略中,英特爾在“架構日”活動上同時宣布推出“oneAPI”項目,面向多元化計算時代。該項目包括一個全面、統一的開發工具組合,以將軟件匹配到能最大程度加速軟件代碼的硬件上。
“絕大多數AI算法的演進和創新都是在更偏上層來完成的,我們希望在底層就做好助力和驅動。同時,我們也會不斷優化oneAPI。這樣,未來任何編程人員不管是他們想將硬件性能提升10%、20%甚至50%,都可以在這個框架上輕松實現,而不需要再自己編寫語言。”Raja Koduri表示。
2019年11月正式發布了oneAPI公開發行版本。oneAPI包括了一項基于開放規范的行業計劃和一款beta產品。
英特爾指出,oneAPI不是一個全新的東西,它是之前幾十年的積累上面做了一個擴展。基于現在工作負載越來越復雜,做這樣的擴展是非常合情合理的一件事情。從現在整體來看,無論是開發效率還是實際的產品運營效率,都可以從中受益。
三、oneAPI重在培育生態系統 與伙伴共同擁抱數據時代
在設計oneAPI之初,英特爾就考慮到要發揮整個Xe架構最強的全面性能,不管是高性能還是低功耗。除此之外,oneAPI的設計也確保要符合英特爾所有其他不同計算和應用的需求。不管是CPU、FPGA還是加速器,oneAPI的設計都可以和它們進行非常完整的配合。
oneAPI,是英特爾以軟件來最大程度釋放硬件性能,從軟件層面來簡化和統一跨SVMS架構的創新。Raja Koduri指出,oneAPI是一個非常底層的抽象框架,主要就是面對以后不同計算元素的集成,希望能夠從底層更好地完成特征抽象和集成。
SVMS架構是由標量(Scalar)、矢量(Vector)、矩陣(Matrix)、空間(Spatial)四種架構組成的,分別對應著CPU、GPU、FPGA和加速器,它們的組合方式是多種多樣的。通過這個架構的分類方式可以看到,CPU是最通用的一種架構,而GPU會比CPU更加高效和專用,而FPGA和加速器的能效和靈活性更高。
“英特爾的策略就是要囊括CPU、GPU、FPGA、加速器所有的架構。”Raja Koduri指出,CPU依舊是目前最重要的架構,英特爾將不斷提高每個CPU的性能,繼續保持它作為最強的計算架構的位置。GPU戰略主要是要提高能效,更好幫助英特爾提高整體的生產力和效率。在FPGA領域,英特爾現在已經做的非常成功了,英特爾推出了很多重要的FPGA產品。另外,加速器也是英特爾非常重要的一個發力點。
在oneAPI的生態構建方面,英特爾主要從三個層面來推進:一是英特爾有著強大的開發者社區,以及全球范圍內非常廣泛的社區合作伙伴。英特爾將從自身非常擅長的開源社區入手。第二,在很大層面上與高校展開配合協作,結合他們的技術以及案例來打造一個完整的社區。第三,與全球開發者們進行更加完整的合作,開發者不僅僅是指個人開發者,也包括大型的企業機構,例如騰訊、阿里等,英特爾將會與每個人、每個企業都緊密地配合,來支持oneAPI的生態。
截至11月17日,支持oneAPI概念的業內領先企業和研究機構已經超過30家,包括高性能計算領域的領導者、人工智能領域的創新者、硬件廠商/OEM、獨立軟件開發商、云服務商、高校等等。
2019年5G的正式商用加速了物聯網的深入應用,這意味著會有更多的物聯網節點智能終端產品落地應用。據統計數據顯示,2020年全球物聯網設備基數將達307億臺,2025年將達到754億臺。而這些將會產生海量的數據,這些數據的存儲、安全、運算,則需要依賴于數據中心、云服務等軟件業務。
英特爾愿發揮在軟件業務方面的強優勢,以生態系統培養為主,推動整個業界往前邁進。并與合作伙伴一起面對這一巨大的市場應用需求,一同抓住這塊蛋糕
(新聞稿 2019-12-24)