程小猿的難處,相信你也感同身受。
當下,異構(gòu)計算如日中天,開發(fā)者在同一個數(shù)據(jù)中心里,既需要在CPU里做虛擬機,又需要在FPGA里做各種壓縮,還需要在GPU里做深度學(xué)習(xí)。
因此,開發(fā)者得在數(shù)據(jù)中心里,安裝很多硬件、和運行很多軟件。這種情況下,開發(fā)者不加班才怪呢!
如果CPU、FPGA和GPU等,還是各自為政,當你的應(yīng)用要擴容、硬件要升級時,或者哪怕你想做出任何改變,成本都非常高。
如果架構(gòu)再發(fā)生變化,這等于你之前的付出,全部白費!
打個比方,某天中午,你既想吃天婦羅,還想吃水煮魚,但這一個是日料、一個是川菜,你想同時吃到,就得分別去一家日料店和一家川菜館。
有沒有辦法,可以讓你在一家餐廳,就同時吃到鵝肝和水煮魚呢?
當然有!去自助餐廳就可以。
而前文提到的oneAPI,正是英特爾為了讓開發(fā)者能夠自由享用“自助餐服務(wù)”而推出的,賦予開發(fā)者靈活選擇各種架構(gòu)進行任意組合的愜意
那么,oneAPI是一個怎樣的產(chǎn)品?
四問oneAPI:是啥、干啥、啥時用、咋用
oneAPI是啥
在2019年超級計算大會上,oneAPI beta產(chǎn)品發(fā)布。
oneAPI beta產(chǎn)品,包括直接編程工具(Data Parallel C++)、基于API的編程工具、以及分析工具和調(diào)試工具等組件。oneAPI beta還可以把這些工具,封裝為特定領(lǐng)域的工具包。
概括來說,oneAPI是一個統(tǒng)一和簡化的編程模型,它的誕生使命,在于簡化跨多架構(gòu)的開發(fā)過程(如CPU、GPU、FPGA、加速器)。
它也是英特爾首創(chuàng)的自助餐式服務(wù)。舉個例子,銀行、物流、醫(yī)院、工廠等不同行業(yè)的開發(fā)者,他們的需求,都不盡相同。在某一個硬件上,開發(fā)者用的可能是CPU+FPGA,也可能是GPU+FPGA。
但是跨不同的硬件、CPU、GPU和AI,有比較多復(fù)雜硬件的異構(gòu)性。而oneAPI提供了更加簡單的方法,來統(tǒng)一編程框架,讓程序員在不同的硬件架構(gòu)上,感受到統(tǒng)一的開發(fā)體驗,這對于程序員來講工作就會非常方便。
短短數(shù)月內(nèi),支持oneAPI的企業(yè)和機構(gòu)已經(jīng)超過30家。它們中間,既有一線廠商,還有名牌高校。
oneAPI干啥
它最重要的作用,就是幫你實現(xiàn)異構(gòu)編程!
打個比方,oneAPI和異構(gòu)編程的關(guān)系,有點像攜號轉(zhuǎn)網(wǎng),當然這個“轉(zhuǎn)網(wǎng)”,不需要有關(guān)部門的批復(fù)。
有了oneAPI,你在某一個數(shù)據(jù)中心里開發(fā)的東西,可以從CPU挪到FPGA上,也可以從NVIDIA的GPU挪到英特爾的GPU上。
此外,oneAPI還能簡化各種架構(gòu)的開發(fā)流程;它還可以統(tǒng)一語言和函數(shù)庫,使其變得更簡單,從而有利于表達并行化;oneAPI還擁有很好的本機高級語言性能;并能夠與現(xiàn)有HPC編程模型互操作。
oneAPI啥時用
當下,oneAPI beta版已經(jīng)發(fā)布。
而oneAPI的庫和組件們,要么已經(jīng)開源,要么即將走向開源。
俗話說,車馬未動,糧草先行。
英特爾已在北京和上海,舉辦oneAPI beta研討會,通過開發(fā)者的試用和反饋,來對oneAPI做出優(yōu)化。一年后的2020年四季度,一個準備完美的oneAPI,就會和你見面。
oneAPI咋用
當下的oneAPI beta版,主要面向英特爾至強可擴展處理器、帶集成顯卡的英特爾酷睿處理器,以及英特爾FPGA。
如果你感興趣,可以在Intel oneAPI DevCloud平臺下載和試用oneAPI工具。想了解更多oneAPI詳情,則可以戳software.intel.com/oneAPI。
DPC++:專門為oneAPI設(shè)計的編程語言
好馬還要配好鞍,為了讓你更絲滑地使用oneAPI?;谟⑻貭栐诩軜?gòu)和編譯器領(lǐng)域積累的多年經(jīng)驗,英特爾專門給oneAPI,設(shè)計了一款名叫DPC++的編程語言。
它的全稱叫Data Parallel C++,Data Parallel是數(shù)據(jù)并行的意思。它基于C和C++,并融合SYCL(OpenCL的高級編程模型)。
三劍合一,讓DPC++能支持跨CPU、跨加速器的數(shù)據(jù)并行,并能讓你實現(xiàn)異構(gòu)編程。
可以說,DPC++存在的意義,正是為了簡化編程、提高代碼在不同硬件上的可重用性。此外,它還能根據(jù)特定的加速器進行調(diào)優(yōu)。
未來可期:開發(fā)者如何享受oneAPI利好?
oneAPI大部分都是開源的,你可以按照自己的想法,在上面做拓展。
此外,oneAPI的誕生原因之一,便是為了減輕開發(fā)者工作量、以及方便開發(fā)者進行跨架構(gòu)編程。
正因為oneAPI的是開源的,所以它也是瞬息萬變的。
而它的變化,正取決于開發(fā)者對于oneAPI生態(tài)的貢獻。
英特爾通過投入大量人力、物力,已經(jīng)給oneAPI設(shè)立好起點。
接下來,就需要開發(fā)者和英特爾一起,來將oneAPI推得更高!
然后,水漲船高后,受益者就是你。
話說回來,誰說程序員工資高,都是加班加出來的?工具用得好,下班回家早!oneAPI用起來!
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )