英特爾發(fā)布o(jì)neAPI軟件計(jì)劃及beta產(chǎn)品,面向異構(gòu)計(jì)算提供統(tǒng)一可擴(kuò)展的編程模型
在2019年超級(jí)計(jì)算大會(huì)上,英特爾發(fā)布了一項(xiàng)全新軟件行業(yè)計(jì)劃oneAPI,助力充分釋放高性能計(jì)算與人工智能技術(shù)融合時(shí)代多架構(gòu)計(jì)算的潛力,同時(shí)發(fā)布了一個(gè)oneAPI beta產(chǎn)品。
英特爾oneAPI行業(yè)計(jì)劃,為跨多種包括CPU、GPU、FPGA和其他加速器在內(nèi)的異構(gòu)計(jì)算,提供了一個(gè)統(tǒng)一和簡(jiǎn)化的應(yīng)用程序開(kāi)發(fā)編程模型。oneAPI的發(fā)布源自英特爾數(shù)百萬(wàn)小時(shí)軟件工程開(kāi)發(fā)的努力,并且標(biāo)志著一個(gè)行業(yè)內(nèi)的變革,從今天受限、封閉的編程方法演變到一個(gè)開(kāi)放的、基于標(biāo)準(zhǔn)的模式,助力開(kāi)發(fā)人員實(shí)現(xiàn)跨架構(gòu)的參與和創(chuàng)新。
英特爾高級(jí)副總裁、首席架構(gòu)師以及架構(gòu)、圖形與軟件部門總經(jīng)理Raja Koduri 表示:“高性能計(jì)算和人工智能工作負(fù)載需要包括CPU、通用GPU、FPGA,到本月初英特爾展示的更加專用的深度學(xué)習(xí)芯片NNP在內(nèi)的多種架構(gòu)。幫助客戶更簡(jiǎn)便地釋放不同計(jì)算環(huán)境的潛力至關(guān)重要,英特爾致力于采取軟件先行的策略,為多架構(gòu)提供統(tǒng)一可擴(kuò)展的功能加速異構(gòu)創(chuàng)新。”
oneAPI是一個(gè)以開(kāi)發(fā)者為中心的平臺(tái),將為AI應(yīng)用無(wú)處不在、多架構(gòu)并存的世界重新定義一種新的編程方式。oneAPI提供一個(gè)通用、開(kāi)放的編程體驗(yàn),讓開(kāi)發(fā)者可以自由選擇架構(gòu),無(wú)需在性能上作出妥協(xié),也大大降低了使用不同的代碼庫(kù)、編程語(yǔ)言、編程工具和工作流程所帶來(lái)的復(fù)雜性。oneAPI保留了現(xiàn)有軟件投資,包括支持現(xiàn)有語(yǔ)言,同時(shí)為開(kāi)發(fā)人員創(chuàng)造更多豐富的應(yīng)用程序提供了靈活性。
oneAPI包括了一項(xiàng)基于開(kāi)放規(guī)范的行業(yè)計(jì)劃和一款beta產(chǎn)品。該規(guī)范包括一種編程語(yǔ)言、強(qiáng)大的API函數(shù)庫(kù)以及底層硬件接口。oneAPI beta產(chǎn)品為開(kāi)發(fā)者提供了全套的開(kāi)發(fā)工具,包括編譯器、編程庫(kù)、分析器等,并把這些工具封裝為特定領(lǐng)域的工具包。初期oneAPI beta版主要面向英特爾®至強(qiáng)®可擴(kuò)展處理器、帶集成顯卡的英特爾®酷睿®處理器,以及英特爾® FPGA,未來(lái)還將支持更多硬件。開(kāi)發(fā)者可在Intel oneAPI DevCloud平臺(tái)下載和試用oneAPI工具,并在官方網(wǎng)站上了解更多關(guān)于oneAPI的信息。
oneAPI是什么?
oneAPI是一個(gè)統(tǒng)一的、簡(jiǎn)化的編程模型,旨在簡(jiǎn)化跨多架構(gòu)的開(kāi)發(fā)過(guò)程(如CPU、GPU、FPGA、加速器)。oneAPI包含兩個(gè)組成部分:一項(xiàng)產(chǎn)業(yè)計(jì)劃和一款英特爾® bete產(chǎn)品,都是全新探索的第一步。
· oneAPI計(jì)劃的跨架構(gòu)開(kāi)發(fā)模型基于行業(yè)標(biāo)準(zhǔn)和開(kāi)放規(guī)范,支持廣泛的行業(yè)生態(tài)系統(tǒng)采納該技術(shù)來(lái)推動(dòng)應(yīng)用開(kāi)發(fā)領(lǐng)域的新演進(jìn)。
· 英特爾® oneAPI beta產(chǎn)品是英特爾基于oneAPI的實(shí)現(xiàn),它包括了oneAPI標(biāo)準(zhǔn)組件如直接編程工具(Data Parallel C++)、含有一系列性能庫(kù)的基于API的編程工具,以及先進(jìn)的分析、調(diào)試工具等組件。開(kāi)發(fā)人員從現(xiàn)在開(kāi)始就可以在英特爾DevCloud for oneAPI上對(duì)基于多種英特爾架構(gòu)(包括英特爾至強(qiáng)®可擴(kuò)展處理器、帶集成顯卡的英特爾酷睿™處理器、英特爾FPGA如英特爾Arria®、Stratix®等)的代碼和應(yīng)用進(jìn)行測(cè)試。這一進(jìn)展源自于英特爾數(shù)百萬(wàn)小時(shí)軟件工程開(kāi)發(fā)的努力,旨在為全球開(kāi)發(fā)人員提供一座從現(xiàn)有代碼和技能過(guò)渡到即將來(lái)臨的xPU時(shí)代的橋梁。
oneAPI為何重要?
oneAPI是英特爾“軟件先行”戰(zhàn)略的重要體現(xiàn),英特爾相信這一戰(zhàn)略將定義和引領(lǐng)一個(gè)人工智能日益融合、異構(gòu)及多架構(gòu)的編程時(shí)代。
跨架構(gòu)(CPU、GPU、FPGA及其他加速器)開(kāi)發(fā)能力對(duì)于處理數(shù)據(jù)密集型工作負(fù)載極為重要,因?yàn)檫@種工作負(fù)載需要多種架構(gòu),這也將成為未來(lái)的常態(tài)。在今天,每一個(gè)硬件平臺(tái)往往需要開(kāi)發(fā)者維護(hù)獨(dú)立的代碼庫(kù),這些代碼庫(kù)需要使用不同的語(yǔ)言、庫(kù)和軟件工具進(jìn)行編程。這是一項(xiàng)極其復(fù)雜和耗費(fèi)時(shí)間的工作,會(huì)大大降低開(kāi)發(fā)速度、抑制創(chuàng)新。
為了解決這一難題,oneAPI提供一個(gè)通用、開(kāi)放的編程體驗(yàn),讓開(kāi)發(fā)者可以自由選擇架構(gòu),無(wú)需在性能上作出妥協(xié),也大大降低了使用不同的代碼庫(kù)、編程語(yǔ)言、編程工具和工作流程所帶來(lái)的復(fù)雜性,相對(duì)于今天的基于單個(gè)廠商的封閉式編程環(huán)境,oneAPI為開(kāi)發(fā)者提供了極富競(jìng)爭(zhēng)力、也更先進(jìn)的可替代選擇,幫助他們?cè)诒A衄F(xiàn)有軟件投資的基礎(chǔ)上,搭建一座無(wú)縫連接的橋梁,從而為未來(lái)的多架構(gòu)世界創(chuàng)造更多豐富的應(yīng)用程序。
為什么英特爾能夠應(yīng)對(duì)這項(xiàng)挑戰(zhàn)?
英特爾已經(jīng)深入開(kāi)發(fā)者生態(tài)領(lǐng)域超過(guò)20年。英特爾擁有15000多名軟件工程師和10000項(xiàng)與客戶緊密合作的軟件部署,是Linux kernel最大的貢獻(xiàn)者,每年修改的代碼超過(guò)50萬(wàn)行,為100多個(gè)操作系統(tǒng)進(jìn)行過(guò)優(yōu)化,并且擁有超過(guò)兩千萬(wàn)活躍開(kāi)發(fā)者的生態(tài),而這些只是英特爾龐大的軟件實(shí)力的一部分。
英特爾跨基礎(chǔ)架構(gòu)、網(wǎng)絡(luò)、操作系統(tǒng)的開(kāi)發(fā)經(jīng)驗(yàn),開(kāi)發(fā)工具和SDK以及其所參與并影響的標(biāo)準(zhǔn)制定組織的數(shù)量在業(yè)界是無(wú)與倫比的。憑借深耕行業(yè)多年的積累和英特爾軟件工程團(tuán)隊(duì)數(shù)百萬(wàn)個(gè)小時(shí)的努力,英特爾正通過(guò)創(chuàng)建一個(gè)統(tǒng)一的編程模型,推動(dòng)開(kāi)發(fā)普及化,簡(jiǎn)化困難,為開(kāi)發(fā)者創(chuàng)造一個(gè)更具移植性、更高效且性能更高的編程環(huán)境,來(lái)幫助開(kāi)發(fā)者應(yīng)對(duì)未來(lái)的挑戰(zhàn)。
為什么需要一個(gè)開(kāi)放式規(guī)范?
數(shù)十年以來(lái),英特爾與包括ISO C++/Fortran Groups、OpenMP* ARB、MPI Forum、The Khronos Group在內(nèi)的多個(gè)標(biāo)準(zhǔn)制定組織以及行業(yè)/學(xué)術(shù)組織攜手,希望通過(guò)開(kāi)放協(xié)作的方式尋求一種可實(shí)現(xiàn)互操作性與互換性的產(chǎn)品規(guī)范,而oneAPI項(xiàng)目就是這一行動(dòng)的延續(xù)。oneAPI將實(shí)現(xiàn)與現(xiàn)有行業(yè)標(biāo)準(zhǔn)的互操作性。最新oneAPI規(guī)范可在oneAPI計(jì)劃官網(wǎng)查閱。
oneAPI開(kāi)放式規(guī)范包括哪些內(nèi)容?
這一開(kāi)放式規(guī)范包括一種跨架構(gòu)的編程語(yǔ)言Data Parallel C++ (DPC++)、一套用于API編程的函數(shù)庫(kù)以及底層硬件接口(oneAPI Level Zero)。有了這些組件,英特爾和其它企業(yè)就能創(chuàng)建他們自己的oneAPI實(shí)現(xiàn)來(lái)支持他們自己的產(chǎn)品,或基于oneAPI進(jìn)行新產(chǎn)品開(kāi)發(fā)。
Data Parallel C++是什么?
DPC++是基于大眾熟悉的C和C++語(yǔ)言,專門為oneAPI設(shè)計(jì)的主要編程語(yǔ)言。它融合了來(lái)自Kronos Group的SYCL*,從而可以支持跨CPU和加速器上的數(shù)據(jù)并行和異構(gòu)編程,目的是為了簡(jiǎn)化編程以及提高代碼在不同硬件上的可重用性,同時(shí)能根據(jù)特定的加速器進(jìn)行調(diào)優(yōu)。
DPC++語(yǔ)言增強(qiáng)將會(huì)通過(guò)一個(gè)開(kāi)發(fā)者社區(qū)項(xiàng)目來(lái)進(jìn)行擴(kuò)展,以簡(jiǎn)化數(shù)據(jù)并行編程。該項(xiàng)目向公眾開(kāi)放,并將通過(guò)開(kāi)發(fā)者們的共同努力不斷發(fā)展。
oneAPI規(guī)范內(nèi)容將會(huì)開(kāi)源嗎?
很多庫(kù)和組件已經(jīng)開(kāi)源或即將開(kāi)源。
哪些公司將支持或參與oneAPI計(jì)劃?
截至11月17日,支持oneAPI概念的業(yè)內(nèi)領(lǐng)先企業(yè)和研究機(jī)構(gòu)已經(jīng)超過(guò)30家,包括高性能計(jì)算領(lǐng)域的領(lǐng)導(dǎo)者、人工智能領(lǐng)域的創(chuàng)新者、硬件廠商/OEM、獨(dú)立軟件開(kāi)發(fā)商、云服務(wù)商、高校等等。其中很多也積極參與了oneAPI beta版工具包的測(cè)試并提供反饋意見(jiàn)。
這項(xiàng)計(jì)劃剛剛啟動(dòng),英特爾預(yù)期未來(lái)幾年將會(huì)有更多參與方加入該計(jì)劃。企業(yè)在創(chuàng)建自己的oneAPI實(shí)現(xiàn)并完成自我認(rèn)證后即可以使用全新oneAPI計(jì)劃品牌和標(biāo)識(shí)。
不同的oneAPI Beta版工具包都包含了什么?
英特爾 oneAPI 基礎(chǔ)工具包(Beta版)包含了一系列核心工具和庫(kù),為構(gòu)建和部署跨架構(gòu)的高性能以數(shù)據(jù)為中心的應(yīng)用而開(kāi)發(fā)。它具體包含了oneAPI開(kāi)放式規(guī)范技術(shù)(DPC++語(yǔ)言、特定領(lǐng)域的庫(kù))和英特爾® Python*分發(fā)包來(lái)提供跨相關(guān)架構(gòu)的即時(shí)加速,以及能增強(qiáng)分析、協(xié)助設(shè)計(jì)和調(diào)試等組件。
除英特爾oneAPI基礎(chǔ)工具包外,英特爾還提供其他針對(duì)高性能計(jì)算、人工智能等專門工作負(fù)載的工具包,包括:
· 英特爾oneAPI高性能計(jì)算工具包(Beta版):幫助快速交付可擴(kuò)展的C++、Fortran和OpenMP應(yīng)用程序
· 英特爾oneAPI深度學(xué)習(xí)框架開(kāi)發(fā)者工具包(Beta版):用于建立深度學(xué)習(xí)框架或?qū)ΜF(xiàn)有深度學(xué)習(xí)框架實(shí)現(xiàn)定制化
· 英特爾oneAPI渲染工具包(Beta版):用于開(kāi)發(fā)高性能、高精度的可視化應(yīng)用程序(包括科學(xué)可視化)
· 英特爾AI分析工具包(Beta版):由oneAPI提供技術(shù)支持,適用于人工智能開(kāi)發(fā)者和數(shù)據(jù)科學(xué)家,以更好地利用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型來(lái)構(gòu)建應(yīng)用。
· 此外還有兩種oneAPI補(bǔ)充工具包:為系統(tǒng)工程師設(shè)計(jì)的英特爾系統(tǒng)Bring-Up 工具包以及面向深度學(xué)習(xí)推理和計(jì)算機(jī)視覺(jué)的生產(chǎn)場(chǎng)景的英特爾發(fā)行版 OpenVINO™ 工具開(kāi)發(fā)包。
oneAPI支持哪些處理器和加速器?
oneAPI規(guī)范是為支持來(lái)自多個(gè)廠商的各種CPU和加速器而設(shè)計(jì)的。oneAPI beta版目前支持英特爾CPU(英特爾至強(qiáng)®、酷睿™、凌動(dòng))、英特爾Arria FPGA以及作為未來(lái)獨(dú)立數(shù)據(jù)中心GPU代理開(kāi)發(fā)平臺(tái)的第九代/英特爾核芯顯卡。oneAPI日后將支持更多英特爾加速器架構(gòu)。
其它廠商的硬件與oneAPI兼容嗎?
oneAPI規(guī)范的DPC++語(yǔ)言和庫(kù)等都向公眾開(kāi)放使用,我們也鼓勵(lì)其它硬件廠商使用。其它硬件廠商可以創(chuàng)建自己的oneAPI實(shí)現(xiàn)并基于此對(duì)特定硬件進(jìn)行優(yōu)化。
開(kāi)發(fā)者可以通過(guò)哪些途徑獲取更多信息?
關(guān)于oneAPI計(jì)劃的更多信息可通過(guò)訪問(wèn)oneAPI.com獲取。開(kāi)發(fā)者可在英特爾開(kāi)發(fā)人員專區(qū),下載英特爾 oneAPI Beta版工具包供本地使用,也可以通過(guò)英特爾 DevCloud for oneAPI平臺(tái)快速入門獲得對(duì)于oneAPI工具包的訪問(wèn),并使用它對(duì)多個(gè)以數(shù)據(jù)為中心的架構(gòu)下的代碼和工作負(fù)載進(jìn)行測(cè)試。該方式無(wú)需安裝和設(shè)置并節(jié)省時(shí)間,且在無(wú)需負(fù)擔(dān)開(kāi)發(fā)平臺(tái)成本的情況下靈活嘗試不同的硬件。
在即將到來(lái)的12月,英特爾將分別在上海和北京舉辦英特爾®oneAPI研討會(huì),力邀熱衷于研究跨平臺(tái)技術(shù)和下一代英特爾軟硬件平臺(tái)功能的軟件開(kāi)發(fā)者;使用C++在GPU硬件加速器上進(jìn)行HPC或AI應(yīng)用研發(fā)的軟件開(kāi)發(fā)者;使用C/C++在英特爾CPU上開(kāi)發(fā)高度并行化的應(yīng)用并有興趣將來(lái)使用GPU或FPGA加速器的軟件開(kāi)發(fā)者參加。識(shí)別下方二維碼即可進(jìn)行注冊(cè)報(bào)名。