oneAPI介紹說明:一個統一的、簡化的編程模型將定義未來應用程式...

2021-01-10 電子產品世界

oneAPI是什麼?

本文引用地址:http://www.eepw.com.cn/article/201911/407188.htm

oneAPI是一個統一的、簡化的編程模型,旨在簡化跨多架構的開發過程(如CPU、GPU、FPGA、加速器)。oneAPI包含兩個組成部分:一項產業計劃和一款英特爾® beta產品,都是全新探索的第一步。

·         oneAPI計劃的跨架構開發模型基於行業標準和開放規範,支持廣泛的行業生態系統採納該技術來推動應用開發領域的新演進。

·         英特爾® oneAPI beta產品是英特爾基於oneAPI的實現,它包括了oneAPI標準組件如直接編程工具(Data Parallel C++)、含有一系列性能庫的基於API的編程工具,以及先進的分析、調試工具等組件。開發人員從現在開始就可以在英特爾DevCloud for oneAPI上對基於多種英特爾架構(包括英特爾至強®可擴展處理器、帶集成顯卡的英特爾酷睿™處理器、英特爾FPGA如英特爾Arria®、Stratix®等)的代碼和應用進行測試。這一進展源自於英特爾數百萬小時軟體工程開發的努力,旨在為全球開發人員提供一座從現有代碼和技能過渡到即將來臨的xPU時代的橋梁。

完整版信息圖請查看附件

oneAPI為何重要?

oneAPI是英特爾「軟體先行」戰略的重要體現,英特爾相信這一戰略將定義和引領一個人工智慧日益融合、異構及多架構的編程時代。

跨架構(CPU、GPU、FPGA及其他加速器)開發能力對於處理數據密集型工作負載極為重要,因為這種工作負載需要多種架構,這也將成為未來的常態。在今天,每一個硬體平臺往往需要開發者維護獨立的代碼庫,這些代碼庫需要使用不同的語言、庫和軟體工具進行編程。這是一項極其複雜和耗費時間的工作,會大大降低開發速度、抑制創新。

為了解決這一難題,oneAPI提供一個通用、開放的編程體驗,讓開發者可以自由選擇架構,無需在性能上作出妥協,也大大降低了使用不同的代碼庫、程式語言、編程工具和工作流程所帶來的複雜性。相對於今天的基於單個廠商的封閉式編程環境,oneAPI為開發者提供了極富競爭力、也更先進的可替代選擇,幫助他們在保留現有軟體投資的基礎上,搭建一座無縫連接的橋梁,從而為未來的多架構世界創造更多豐富的應用程式。

為什麼英特爾能夠應對這項挑戰?

英特爾已經深入開發者生態領域超過20年。英特爾擁有15000多名軟體工程師和10000項與客戶緊密合作的軟體部署,是Linux kernel最大的貢獻者,每年修改的代碼超過50萬行,為100多個作業系統進行過優化,並且擁有超過兩千萬活躍開發者的生態,而這些只是英特爾龐大的軟體實力的一部分。

英特爾跨基礎架構、網絡、作業系統的開發經驗,開發工具和SDK以及其所參與並影響的標準制定組織的數量在業界是無與倫比的。憑藉深耕行業多年的積累和英特爾軟體工程團隊數百萬個小時的努力,英特爾正通過創建一個統一的編程模型,推動開發普及化,簡化困難,為開發者創造一個更具移植性、更高效且性能更高的編程環境,來幫助開發者應對未來的挑戰。

為什麼需要一個開放式規範?

數十年以來,英特爾與包括ISO C++/Fortran Groups、OpenMP* ARB、MPI Forum、The Khronos Group在內的多個標準制定組織以及行業/學術組織攜手,希望通過開放協作的方式尋求一種可實現互操作性與互換性的產品規範,而oneAPI項目就是這一行動的延續。oneAPI將實現與現有行業標準的互操作性。

oneAPI開放式規範包括哪些內容?

這一開放式規範包括一種跨架構的程式語言Data Parallel C++ (DPC++)、一套用於API編程的函數庫以及底層硬體接口(oneAPI Level Zero)。有了這些組件,英特爾和其它企業就能創建他們自己的oneAPI實現來支持他們自己的產品,或基於oneAPI進行新產品開發。

Data Parallel C++是什麼?

DPC++是基於大眾熟悉的C和C++語言,專門為oneAPI設計的主要程式語言。它融合了來自Kronos Group的SYCL*,從而可以支持跨CPU和加速器上的數據並行和異構編程,目的是為了簡化編程以及提高代碼在不同硬體上的可重用性,同時能根據特定的加速器進行調優。

DPC++語言增強將會通過一個開發者社區項目來進行擴展,以簡化數據並行編程。該項目向公眾開放,並將通過開發者們的共同努力不斷發展。

oneAPI規範內容將會開源嗎?

很多庫和組件已經開源或即將開源。

哪些公司將支持或參與oneAPI計劃?

截至11月17日,支持oneAPI概念的業內領先企業和研究機構已經超過30家,包括高性能計算領域的領導者、人工智慧領域的創新者、硬體廠商/OEM、獨立軟體開發商、雲服務商、高校等等。其中很多也積極參與了oneAPI beta版工具包的測試並提供反饋意見。


這項計劃剛剛啟動,英特爾預期未來幾年將會有更多參與方加入該計劃。企業在創建自己的oneAPI實現並完成自我認證後即可以使用全新oneAPI計劃品牌和標識。

不同的oneAPI Beta版工具包都包含了什麼?

英特爾 oneAPI 基礎工具包(Beta版)包含了一系列核心工具和庫,為構建和部署跨架構的高性能以數據為中心的應用而開發。它具體包含了oneAPI開放式規範技術(DPC++語言、特定領域的庫)和英特爾® Python*分發包來提供跨相關架構的即時加速,以及能增強分析、協助設計和調試等組件。

除英特爾oneAPI基礎工具包外,英特爾還提供其他針對高性能計算、人工智慧等專門工作負載的工具包,包括:

英特爾oneAPI高性能計算工具包(Beta版):幫助快速交付可擴展的C++、Fortran和OpenMP應用程式

英特爾oneAPI深度學習框架開發者工具包(Beta版):用於建立深度學習框架或對現有深度學習框架實現定製化

英特爾oneAPI渲染工具包(Beta版):用於開發高性能、高精度的可視化應用程式(包括科學可視化)

英特爾AI分析工具包(Beta版):由oneAPI提供技術支持,適用於人工智慧開發者和數據科學家,以更好地利用機器學習和深度學習模型來構建應用。

此外還有兩種oneAPI補充工具包:為系統工程師設計的英特爾系統Bring-Up 工具包以及面向深度學習推理和計算機視覺的生產場景的英特爾發行版 OpenVINO™ 工具開發包。

oneAPI支持哪些處理器和加速器?

oneAPI規範是為支持來自多個廠商的各種CPU和加速器而設計的。oneAPI beta版目前支持英特爾CPU(英特爾至強®、酷睿™、凌動)、英特爾Arria FPGA以及作為未來獨立數據中心GPU代理開發平臺的第九代/英特爾核芯顯卡。oneAPI日後將支持更多英特爾加速器架構。

其它廠商的硬體與oneAPI兼容嗎?

oneAPI規範的DPC++語言和庫等都向公眾開放使用,我們也鼓勵其它硬體廠商使用。其它硬體廠商可以創建自己的oneAPI實現並基於此對特定硬體進行優化。

相關焦點

  • 軟體優化可將CPU性能提升28倍 Intel詳解OneAPI戰略-Intel,優化...
    在未來的晶片發展中,軟體優化的作用已經無需多言,所以OneAPI戰略對Intel來說也非常重要,因為它統一了各個平臺的編程規範,簡化了開發難度,有利於營造更好的開發生態。基於此,Intel知IN官微發布了一篇名為《英特爾oneAPI:定義未來十年應用程式開發的統一、簡化的編程模型》的長文,詳細介紹了OneAPI的作用及內容,想要了解的玩家可以看看。
  • 圖形界面編程技巧,用Python中PyQt5庫快速創建一個應用程式框架
    C++圖形用戶界面應用程式開發框架。它既可以開發GUI應用程式,也可用於開發非GUI程序,比如控制臺工具和伺服器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,並且允許真正地組件編程。2008年,Qt Company科技被諾基亞公司收購,Qt也因此成為諾基亞旗下的程式語言工具。
  • 什麼是API(應用程式編程接口)?
    如果按照PC Mag的定義,這個術語是應用程式編程接口的縮寫 - 但這並不能解釋任何事情。為了幫助你理解API是什麼以及它是如何工作的,我們將用任何人都可以理解的語言來解釋APIS的細節。什麼是應用程式編程接口?從嚴格的技術角度來看,API是一組訪問基於Internet的服務或應用程式的標準和說明。
  • 一種RS-485總線自定義通信協議及其應用
    它具有穩定可靠、編程簡單、組網快速、價格低廉的優點,但在協議設計實現方面並沒有一個統一的規範,導致不同的控制系統常常採用不同的通信協議。因此,有必要結合我們的工作實踐,設計一種有通用性的高效可靠的協議,從而簡化基於RS-485的分布式測試系統通信部分的設計,既能夠保證通信的穩定可靠,又能夠把精力集中到測控系統算法的設計上。
  • Google發布了用於機器學習應用程式的硬體加速器
    根據Google產品經理John Barrus和Zak Stone的說法,這些板可以以獨立方式使用,也可以通過專用網絡連接連結在一起以形成所謂的TPU吊艙,該TPU吊艙基本上是用於運行機器學習應用程式的多個
  • C語言編程技巧:控制臺程序中自定義函數實現數組內容的特定顯示
    在用C語言編寫算法調試方面的程序中,經常會遇到這種情況,在不同地方需要對處理後的數組內容多次進行顯示,並且很多情況下並非顯示數組裡面的全部內容,而僅僅是想觀察數組中的部分數據內容,若每次顯示時都用printf函數寫的話,未免太過麻煩了。
  • 收益率曲線三因子模型的一個直觀定義
    本文根據收益率曲線的幾何特徵,提出了收益率曲線三因子模型的一個直觀定義,並從四個維度對直觀定義方法與經典三因子模型進行了實證比較,結果顯示,直觀定義方法均表現較優,其對收益率曲線的刻畫更加精細。本文還闡述了收益率曲線三因子的影響因素及三因子之間的非線性關係,並運用支持向量機(SVM)技術對未來利率走勢進行預測,其結果也優於傳統線性模型。
  • 神經網絡算法原理_神經網絡算法的應用_神經網絡算法實例說明
    輸入層:輸入神經元定義數據挖掘模型所有的輸入屬性值以及概率。   隱含層:隱藏神經元接受來自輸入神經元的輸入,並向輸出神經元提供輸出。隱藏層是向各種輸入概率分配權重的位置。權重說明某一特定宿儒對於隱藏神經元的相關性或重要性。輸入所分配的權重越大,則輸入值也就越重要。而這個過程可以描述為學習的過程。權重可為負值,表示輸入抑制而不是促進某一特定結果。
  • 人工智慧重新定義了新一代編程
    根據Gartner發布的一項研究,到2028年,人工智慧的創造就業機會的市場將發生巨大的飛躍,將在該IT領域創造超過200萬個就業機會。 了解AI的優勢增強了編碼和程式語言,並打開了新的機會之門。而且,下面將詳細介紹這些類型的職責,以使人們知道數據科學家在工作時需要什麼樣的角色。 執行統計數據分析- 數據科學家的主要工作包括統計數據分析和機器學習技術,例如貝葉斯,回歸,分類,聚類,時間序列以及深度學習AI。
  • 加速企業級AI應用
    超過30萬VMWare客戶將受益於NVIDIA AI軟體對所有應用程式的統一管理功能,並能夠運用NVIDIA BlueField-2 DPU的安全和加速功能。NVIDIA創始人兼執行長黃仁勳表示:「NVIDIA和VMWare將一起幫助客戶把每家企業的數據中心改造成加速的AI超級計算機。
  • 為什麼會有這麼多種程序設計語言?
    創造程序設計語言的目的是為程式設計師服務的,應該說,一個程式設計師所用的語言很大程度上決定了他的思維方式——程序設計語言本身就是一種嚴謹的數學模型、一種高效的思維方式。為了說明這個道理我以一個物理題為例來解釋:一輛汽車做勻速直線運動,以2m/s的速度經過了6m,問汽車用了多少時間?
  • 效率提升30倍 無代碼開發讓「小白」也能編程
    效率提升30倍 無代碼開發讓「小白」也能編程記者 唐 婷近日,有外媒指出,在過去35年,軟體行業發生了一些重大轉變。其中之一便是,越來越多的軟體應用程式,已構建了基於無代碼原則的平臺,軟體業的未來將是屬於無代碼平臺的。那麼,代碼在軟體編寫中扮演著怎樣的角色?什麼是無代碼平臺?軟體編寫是否真的可以做到無代碼?無代碼軟體的優勢有哪些?
  • 有人要為ML定製程式語言,你的Python白學了?
    誠然,重新開創一種語言成本很高,但是考慮到機器學習在未來的廣闊應用前景,為其在程式語言上花些功夫,磨刀不誤砍柴工,未嘗不是一個好的辦法。如果這種語言真的被創建出來,你辛辛苦苦學的 Python 不是白學了? 隨著機器學習(ML)的發展,作為程式語言(PL)學習者和從業者,我們非常關注 ML 模型的複雜性,以及其建模框架的複雜性。
  • go 學習筆記之學習函數式編程前不要忘了函數基礎
    生物學家會下意識對動植物進行分類歸納,面向對象編程也是如此,用一系列的抽象模型去模擬現實世界的行為規律.上述的英文的大致意思是說:函數式編程將電腦程式看成是數學函數的推演,不用狀態變量也不用可變對象來表達數與數之間的關係.
  • 用大白話給你科普,到底什麼是 API(應用程式編程接口)?
    如果你在百度百科上搜索,你會得到如下結果:API(Application Programming Interface,應用程式編程接口)是一些預先定義的函數,目的是提供應用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。那麼再通俗一點來說,API究竟是什麼呢?
  • 世界程式語言排行榜
    請注意這個排行榜只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好,或者一門語言所編寫的代碼數量多少。本文引用地址:http://www.eepw.com.cn/article/269656.htm  該指數可以用來檢查你的編程技能是否仍然是最新的或作出什麼開始建立一個新的軟體系統時,程式語言應採取的戰略決策。在 TIOBE 指數的定義可以在這裡找到。
  • 免費應用程式如何賺錢?
    您是否曾經想過免費應用程式如何賺錢這個問題? 大多數情況下,您是從商店下載應用程式並開始使用它。 自然,免費提供應用程式的開發人員會期望通過其他渠道獲得回報。 如果您正在考慮開發應用程式,但不確定免費應用程式如何帶來利潤,下面的文章將提供說明。
  • 青少年編程0907實訓班第10課學生編程作品介紹
    應用到新建角色、變量定義、變量使用、自定義積木、傳遞參數、遞歸調用、停止腳本、繪畫、條件判斷和棧應用等編程技能。 【編程技術】 編寫該遊戲應用到的編程技術有以下: 創建遊戲背景 創建遊戲角色 自定義積木 傳遞參數 數學運算
  • 語義編程理論OESPA 助力計算機基礎理論研究取得突破性成果
    計算機應用已深入到人類社會每一個角落,新軟體必須通過測試才能投入使用。測試仍然是軟體開發必不可少的步驟。測試只能發現錯誤,不能判斷是否無錯。潛在的錯誤隨時可能影響大眾生活。專家們幾十年如一日用數學描述和邏輯推理來定義和證明程序正確,迄今未能取得成功。
  • 理解資料庫與數據模型的概念
    本篇首先引入編程微課項目作為資料庫的應用案例,通過對項目功能及涉及的相關數據的介紹,讓讀者對資料庫的應用有一個感性認識,然後重點講述關係資料庫的理論基礎知識。在這一管理方式下,應用程式和數據之間相互結合,不可分割,數據獨立性差,缺少共享性,編程效率低下。這一階段稱為人工管理階段。隨著計算機軟、硬體的發展,數據管理進入了文件管理階段,這一階段的主要標誌是計算機有了專門管理資料庫的軟體——作業系統(文件管理)。文件管理方式是把有關的數據組織成一種文件,這種數據文件可以脫離程序而獨立存在,有一個專門的文件管理系統實施統一管理。