英特爾首推異構(gòu)編程神器 oneAPI,可以讓程序員少加班!

程小猿的難處,相信你也感同身受。

當(dāng)下,異構(gòu)計(jì)算如日中天,開發(fā)者在同一個(gè)數(shù)據(jù)中心里,既需要在CPU里做虛擬機(jī),又需要在FPGA里做各種壓縮,還需要在GPU里做深度學(xué)習(xí)。

因此,開發(fā)者得在數(shù)據(jù)中心里,安裝很多硬件、和運(yùn)行很多軟件。這種情況下,開發(fā)者不加班才怪呢!

如果CPU、FPGA和GPU等,還是各自為政,當(dāng)你的應(yīng)用要擴(kuò)容、硬件要升級時(shí),或者哪怕你想做出任何改變,成本都非常高。

如果架構(gòu)再發(fā)生變化,這等于你之前的付出,全部白費(fèi)!

打個(gè)比方,某天中午,你既想吃天婦羅,還想吃水煮魚,但這一個(gè)是日料、一個(gè)是川菜,你想同時(shí)吃到,就得分別去一家日料店和一家川菜館。

有沒有辦法,可以讓你在一家餐廳,就同時(shí)吃到鵝肝和水煮魚呢?

當(dāng)然有!去自助餐廳就可以。

而前文提到的oneAPI,正是英特爾為了讓開發(fā)者能夠自由享用“自助餐服務(wù)”而推出的,賦予開發(fā)者靈活選擇各種架構(gòu)進(jìn)行任意組合的愜意

那么,oneAPI是一個(gè)怎樣的產(chǎn)品?

四問oneAPI:是啥、干啥、啥時(shí)用、咋用

oneAPI是啥

在2019年超級計(jì)算大會上,oneAPI beta產(chǎn)品發(fā)布。

oneAPI beta產(chǎn)品,包括直接編程工具(Data Parallel C++)、基于API的編程工具、以及分析工具和調(diào)試工具等組件。oneAPI beta還可以把這些工具,封裝為特定領(lǐng)域的工具包。

概括來說,oneAPI是一個(gè)統(tǒng)一和簡化的編程模型,它的誕生使命,在于簡化跨多架構(gòu)的開發(fā)過程(如CPU、GPU、FPGA、加速器)。

它也是英特爾首創(chuàng)的自助餐式服務(wù)。舉個(gè)例子,銀行、物流、醫(yī)院、工廠等不同行業(yè)的開發(fā)者,他們的需求,都不盡相同。在某一個(gè)硬件上,開發(fā)者用的可能是CPU+FPGA,也可能是GPU+FPGA。

但是跨不同的硬件、CPU、GPU和AI,有比較多復(fù)雜硬件的異構(gòu)性。而oneAPI提供了更加簡單的方法,來統(tǒng)一編程框架,讓程序員在不同的硬件架構(gòu)上,感受到統(tǒng)一的開發(fā)體驗(yàn),這對于程序員來講工作就會非常方便。

短短數(shù)月內(nèi),支持oneAPI的企業(yè)和機(jī)構(gòu)已經(jīng)超過30家。它們中間,既有一線廠商,還有名牌高校。

oneAPI干啥

它最重要的作用,就是幫你實(shí)現(xiàn)異構(gòu)編程!

打個(gè)比方,oneAPI和異構(gòu)編程的關(guān)系,有點(diǎn)像攜號轉(zhuǎn)網(wǎng),當(dāng)然這個(gè)“轉(zhuǎn)網(wǎng)”,不需要有關(guān)部門的批復(fù)。

有了oneAPI,你在某一個(gè)數(shù)據(jù)中心里開發(fā)的東西,可以從CPU挪到FPGA上,也可以從NVIDIA的GPU挪到英特爾的GPU上。

此外,oneAPI還能簡化各種架構(gòu)的開發(fā)流程;它還可以統(tǒng)一語言和函數(shù)庫,使其變得更簡單,從而有利于表達(dá)并行化;oneAPI還擁有很好的本機(jī)高級語言性能;并能夠與現(xiàn)有HPC編程模型互操作。

oneAPI啥時(shí)用

當(dāng)下,oneAPI beta版已經(jīng)發(fā)布。

而oneAPI的庫和組件們,要么已經(jīng)開源,要么即將走向開源。

俗話說,車馬未動(dòng),糧草先行。

英特爾已在北京和上海,舉辦oneAPI beta研討會,通過開發(fā)者的試用和反饋,來對oneAPI做出優(yōu)化。一年后的2020年四季度,一個(gè)準(zhǔn)備完美的oneAPI,就會和你見面。

oneAPI咋用

當(dāng)下的oneAPI beta版,主要面向英特爾至強(qiáng)可擴(kuò)展處理器、帶集成顯卡的英特爾酷睿處理器,以及英特爾FPGA。

如果你感興趣,可以在Intel oneAPI DevCloud平臺下載和試用oneAPI工具。想了解更多oneAPI詳情,則可以戳software.intel.com/oneAPI。

DPC++:專門為oneAPI設(shè)計(jì)的編程語言

好馬還要配好鞍,為了讓你更絲滑地使用oneAPI?;谟⑻貭栐诩軜?gòu)和編譯器領(lǐng)域積累的多年經(jīng)驗(yàn),英特爾專門給oneAPI,設(shè)計(jì)了一款名叫DPC++的編程語言。

它的全稱叫Data Parallel C++,Data Parallel是數(shù)據(jù)并行的意思。它基于C和C++,并融合SYCL(OpenCL的高級編程模型)。

三劍合一,讓DPC++能支持跨CPU、跨加速器的數(shù)據(jù)并行,并能讓你實(shí)現(xiàn)異構(gòu)編程。

可以說,DPC++存在的意義,正是為了簡化編程、提高代碼在不同硬件上的可重用性。此外,它還能根據(jù)特定的加速器進(jìn)行調(diào)優(yōu)。

未來可期:開發(fā)者如何享受oneAPI利好?

oneAPI大部分都是開源的,你可以按照自己的想法,在上面做拓展。

此外,oneAPI的誕生原因之一,便是為了減輕開發(fā)者工作量、以及方便開發(fā)者進(jìn)行跨架構(gòu)編程。

正因?yàn)閛neAPI的是開源的,所以它也是瞬息萬變的。

而它的變化,正取決于開發(fā)者對于oneAPI生態(tài)的貢獻(xiàn)。

英特爾通過投入大量人力、物力,已經(jīng)給oneAPI設(shè)立好起點(diǎn)。

接下來,就需要開發(fā)者和英特爾一起,來將oneAPI推得更高!

然后,水漲船高后,受益者就是你。

話說回來,誰說程序員工資高,都是加班加出來的?工具用得好,下班回家早!oneAPI用起來!

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )

贊助商
2019-12-23
英特爾首推異構(gòu)編程神器 oneAPI,可以讓程序員少加班!
程小猿的難處,相信你也感同身受。當(dāng)下,異構(gòu)計(jì)算如日中天,開發(fā)者在同一個(gè)數(shù)據(jù)中心里,既需要在CPU里做虛擬機(jī),又需要在FPGA里做各種壓縮,還需要在GPU里做深度學(xué)習(xí)。

長按掃碼 閱讀全文