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