為開發(fā)者“減負(fù)” 英特爾oneAPI加速統(tǒng)一跨架構(gòu)編程

數(shù)據(jù)洪流下,AI、5G等新技術(shù)催生的創(chuàng)新應(yīng)用帶來更加多元化的計(jì)算需求,這就要求多樣化的計(jì)算架構(gòu)。為此,英特爾提出了“xPU”策略,也就是英特爾不再局限于CPU(向量計(jì)算),而是向GPU(矢量計(jì)算)、AI(矩陣計(jì)算)和FPGA(空間計(jì)算)進(jìn)行延展。

基于此,我們看到英特爾構(gòu)建了一個包含CPU、GPU、AI加速器、FPGA,以及如神經(jīng)擬態(tài)計(jì)算等面向未來的計(jì)算架構(gòu)。在這樣的計(jì)算架構(gòu)支撐下,我們正在邁入超異構(gòu)計(jì)算時代。

在超異構(gòu)計(jì)算時代,英特爾確立了制程和封裝、架構(gòu)、內(nèi)存和存儲、互連、安全、軟件六大技術(shù)支柱,全方位推動計(jì)算創(chuàng)新發(fā)展。在這其中,英特爾軟件是推動未來計(jì)算創(chuàng)新的隱形力量。

軟件加速硬件指數(shù)級創(chuàng)新

毋庸置疑,英特爾在硬件層面的創(chuàng)新是有目共睹的。但是進(jìn)入到超異構(gòu)計(jì)算時代,計(jì)算力指數(shù)級上升的實(shí)現(xiàn)一定是基于硬件與軟件的結(jié)合。所以英特爾借助“軟件先行”的戰(zhàn)略,推進(jìn)硬件和軟件的共同創(chuàng)新,來引領(lǐng)異構(gòu)計(jì)算的整合和創(chuàng)新,實(shí)現(xiàn)計(jì)算力指數(shù)級增長,滿足未來多元化的計(jì)算需求。

在以數(shù)據(jù)為中心的戰(zhàn)略指引下,英特爾不光在硬件層面進(jìn)行創(chuàng)新,還在軟件層面進(jìn)行投入。因?yàn)檎麄€計(jì)算架構(gòu)不是原來的單一CPU架構(gòu),需要針對不同的架構(gòu)和負(fù)載進(jìn)行整合,軟件在中間起了一個最關(guān)鍵的橋梁作用。

其實(shí),英特爾在軟件領(lǐng)域的投入是巨大。英特爾在全球大概十萬到十一萬人,軟件工程師占到15%左右(15000名左右)。而在中國,英特爾亞太研發(fā)中心正式員工超過2000人,是涵蓋英特爾各個產(chǎn)品部在中國最大的、最完整的綜合性研發(fā)機(jī)構(gòu),擁有世界一流的工程研發(fā)能力。

英特爾通過軟件實(shí)現(xiàn)軟硬協(xié)同、生態(tài)共贏:提供簡便可擴(kuò)展的工具,來加速應(yīng)用開發(fā)部署;堅(jiān)持客戶至上,針對不同類型的工作負(fù)載進(jìn)行優(yōu)化;秉承開放理念,推動開源、開放生態(tài)系統(tǒng)協(xié)作;產(chǎn)學(xué)研對接,培育面向未來的創(chuàng)新人才。

在軟件生態(tài)構(gòu)件中,開發(fā)者是重要一環(huán)。英特爾已經(jīng)深入開發(fā)者生態(tài)領(lǐng)域超過20年,并有10000項(xiàng)與客戶緊密合作的軟件部署,是Linux Kernel最大的貢獻(xiàn)者,每年修改的代碼超過50萬行,為100多個操作系統(tǒng)進(jìn)行過優(yōu)化,并且擁有超過兩千萬活躍開發(fā)者的生態(tài),而這些只是英特爾龐大的軟件實(shí)力的一部分。英特爾跨基礎(chǔ)架構(gòu)、網(wǎng)絡(luò)、操作系統(tǒng)的開發(fā)經(jīng)驗(yàn),開發(fā)工具和SDK以及其所參與并影響的標(biāo)準(zhǔn)制定組織的數(shù)量在業(yè)界是無與倫比的。

基于這樣深厚的積淀,英特爾希望通過“統(tǒng)一架構(gòu)編程”,圍繞架構(gòu)創(chuàng)新進(jìn)行擴(kuò)展,并且讓所做的一切都是簡便和可擴(kuò)展的。英特爾軟件所做的事情使所有的硬件的每一個晶體管都能夠能力充分發(fā)揮起來,使得開發(fā)者能夠非常容易地把軟硬件充分用起來。

oneAPI打造統(tǒng)一架構(gòu)編程

跨架構(gòu)(CPU、GPU、FPGA及其他加速器)開發(fā)能力對于處理數(shù)據(jù)密集型工作負(fù)載極為重要,因?yàn)檫@種工作負(fù)載需要多種架構(gòu),這也將成為未來的常態(tài)。不過多架構(gòu)編程面臨諸多挑戰(zhàn)比如專用工作負(fù)載日益增多、尚無通用編程語言或 API、不一致的跨平臺工具支持、每個平臺需要單獨(dú)的軟件投資、需采用不同的以數(shù)據(jù)為中心的硬件等。

在今天,每一個硬件平臺往往需要開發(fā)者維護(hù)獨(dú)立的代碼庫,這些代碼庫需要使用不同的語言、庫和軟件工具進(jìn)行編程。這是一項(xiàng)極其復(fù)雜和耗費(fèi)時間的工作,會大大降低開發(fā)速度、抑制創(chuàng)新。

為了解決這樣的業(yè)界難題,英特爾發(fā)布了一項(xiàng)全新軟件行業(yè)計(jì)劃oneAPI。oneAPI為異構(gòu)計(jì)算提供了一個統(tǒng)一和簡化的應(yīng)用程序開發(fā)編程模型,這種統(tǒng)一性為開發(fā)者提供了一個統(tǒng)一的開發(fā)體驗(yàn),因?yàn)槠涿鎸Σ煌漠悩?gòu)硬件,他們不需要學(xué)習(xí)不同的編程方法。

具體來說,oneAPI基于標(biāo)準(zhǔn)的跨架構(gòu)語言Data Parallel C++和SYCL功能強(qiáng)大的API,旨在加速特定領(lǐng)域的主要功能底層硬件接口,可為供應(yīng)商提供硬件抽象層,支持針對不同的架構(gòu)和供應(yīng)商重復(fù)使用代碼。也就是說oneAPI支持直接編程和API編程,并提供統(tǒng)一的語言和庫,可以在包括CPU、GPU、FPGA和AI加速器等不同硬件架構(gòu)上提供完整的本地代碼性能。oneAPI的簡單易用和高性能讓開發(fā)者不再需要維護(hù)不同的代碼庫、多種編程語言以及不同的工具和工作流程。

英特爾對于未來計(jì)算的展望和承諾是:SVMS架構(gòu)(S是Scalar標(biāo)量,V是Vector向量,M是Matrix矩陣,S是Space空間),也就是我們前面提到的超異構(gòu)計(jì)算。而在SVNS架構(gòu)之上,英特爾構(gòu)建oneAPI,對這些硬件進(jìn)行了抽象。開發(fā)者針對的是這個抽象來寫程序,而不是具體的硬件。在oneAPI是框架和中間件框架提供了更高一層的抽象和語義,開發(fā)者可以在上面快速開發(fā),高效部署。

我們可以將oneAPI理解成英特爾的中間件層,上面有各種不同類型的行業(yè)應(yīng)用,如果你要調(diào)英特爾底層的硬件,就統(tǒng)一用oneAPI進(jìn)行研發(fā)。比如面向視覺計(jì)算的OpenVINO就是構(gòu)建在oneAPI之上,支持CPU、FPGA、Movidius、GPU等,編寫一次以后可以通過異構(gòu)的接口支撐跑在其他的硬件平臺之上。

oneAPI以開發(fā)者為中心,是為多架構(gòu)并存的世界重新定義的一種新編程方式,讓開發(fā)者可以自由選擇架構(gòu),無需在性能上作出妥協(xié),也大大降低了使用不同的代碼庫、編程語言、編程工具和工作流程所帶來的復(fù)雜性。oneAPI產(chǎn)品為開發(fā)者提供了全套的開發(fā)工具,包括編譯器、編程庫、分析器等,并把這些工具封裝為特定領(lǐng)域的工具包。

oneAPI保留了現(xiàn)有軟件投資,包括支持現(xiàn)有語言,同時為開發(fā)人員創(chuàng)造更多豐富的應(yīng)用程序提供了靈活性,幫助他們在保留現(xiàn)有軟件投資的基礎(chǔ)上,搭建一座無縫連接的橋梁,從而為未來的多架構(gòu)世界創(chuàng)造更多豐富的應(yīng)用程序。比如oneAPI支持高級移植、分析和調(diào)試工具,包括英特爾Vtune分析器、英特爾Advisor等,其中英特爾DPC++兼容性工具支持CUDA代碼遷移。

除此以外,oneAPI包括了一項(xiàng)基于開放規(guī)范的行業(yè)計(jì)劃,該規(guī)范包括一種編程語言、強(qiáng)大的API函數(shù)庫以及底層硬件接口。比如Data Parallel C++可提供跨平臺數(shù)據(jù)并行性支持,而SYCL是全行業(yè)開展的一項(xiàng)標(biāo)準(zhǔn)化工作,旨在定義面向C++的跨平臺數(shù)據(jù)并行性支持。這就意味著各個不同加速器提供商可以在oneAPI框架里提供對它自己硬件的支持,其實(shí)已經(jīng)有第三方通過oneAPI對于NVIDIA的CUDA進(jìn)行上層的封裝,這樣對于開發(fā)人員來講,他也可以oneAPI支持NVIDIA的GPU,其想象空間巨大。

開發(fā)人員從現(xiàn)在開始就可以在英特爾DevCloud for oneAPI上對基于多種英特爾架構(gòu)(包括英特爾至強(qiáng)可擴(kuò)展處理器、帶集成顯卡的英特爾酷睿處理器、英特爾FPGA如英特爾Arria、Stratix等)的代碼和應(yīng)用進(jìn)行測試。它是一個開發(fā)系統(tǒng),支持使用英特爾的oneAPI測試版軟件在所有英特爾CPU、GPU和FPGA上開發(fā)、測試和運(yùn)行工作負(fù)載。用戶無需下載,無需購買硬件,無需安裝,無需設(shè)置和配置,即可使用英特爾oneAPI工具套件,了解 Data Parallel C++,評估工作負(fù)載,構(gòu)建異構(gòu)應(yīng)用,設(shè)計(jì)項(xiàng)目原型。

目前oneAPI還是Beta測試版,預(yù)計(jì)2020年Q4發(fā)布正式版。畢竟oneAPI是一個全新的開發(fā)編程模型,足夠長的測試期可以收集更多開發(fā)人員的反饋,完善產(chǎn)品。只有更多的開發(fā)者使用oneAPI,其價值才會凸顯出來。

oneAPI的發(fā)布源自英特爾數(shù)百萬小時軟件工程開發(fā)的努力,并且標(biāo)志著一個行業(yè)內(nèi)的變革,從今天受限、封閉的編程方法演變到一個開放的、基于標(biāo)準(zhǔn)的模式,助力開發(fā)人員實(shí)現(xiàn)跨架構(gòu)的參與和創(chuàng)新,為全球開發(fā)人員提供一座從現(xiàn)有代碼和技能過渡到即將來臨的xPU時代的橋梁。

oneAPI是英特爾借助軟件力量充分釋放硬件性能這一長期探索之旅的第一步,也是重要一步。目前英特爾正在與高校、合作伙伴等通過將oneAPI引入學(xué)校課程、線下Workshop等讓更多開發(fā)者認(rèn)識和使用oneAPI,同時通過開發(fā)人員指南、培訓(xùn)、英特爾工具支持論壇、ISV和應(yīng)用支持等加速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)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(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
為開發(fā)者“減負(fù)” 英特爾oneAPI加速統(tǒng)一跨架構(gòu)編程
數(shù)據(jù)洪流下,AI、5G等新技術(shù)催生的創(chuàng)新應(yīng)用帶來更加多元化的計(jì)算需求,這就要求多樣化的計(jì)算架構(gòu)。

長按掃碼 閱讀全文