必威电竞|足球世界杯竞猜平台

CUDA
來源:互聯網

CUDA(Compute Unified Device 建筑),是NVIDIA發明的一種并行計算平臺和編程模型,包含CUDA指令集架構和GPU并行計算引擎。它通過利用圖形處理器 (GPU) 的處理能力,可大幅提升計算性能。

CUDA包含了API、C編譯器等,能夠利用顯卡核心的片內L1 Cache共享數據,使數據不必經過內存-顯存的反復傳輸,shader之間甚至可以互相通信。軟件開發商、科學家以及研究人員正在各個領域中運用CUDA,其中包括圖像與視頻處理、計算生物學和化學、流體力學模擬、CT圖像再現、地震分析以及光線追蹤等。

CUDA充當NVIDIA各GPU系列的通用平臺,可以跨GPU配置部署并擴展應用,GPU的雛形為圖形加速器,在90年代可編程程度逐步提高,最終在1999年促成了NVIDIA首款GPU的誕生。之后,研究人員和數據科學家很快就開始將此GPU的卓越浮點性能應用于通用計算。2003 年,Ian Buck 帶領的一支研究團隊推出了首個廣泛采用的編程模型Brook,通過數據并行構造實現了對C的擴展。Ian Buck 后來加入了NVIDIA;在他的帶領下,NVIDIA 于2006年發布了CUDA,也即首款用于GPU通用計算的解決方案。CUDA-X作為基于CUDA構建的擴展架構,集成400多個加速庫和云API工具,支持跨PC、云端及超級計算機部署,應用于數據處理、人工智能和高性能計算領域。CUDA 工具包中包含多個庫、多種調試和優化工具、一個編譯器以及一個用于部署應用的運行環境庫。CUDA 的 SDK 中的編譯器和開發平臺支持 Windows、Linux 系統,可以與 Visual Studio 2005,2008,2010 集成在一起。

開發歷史

隨著GPU計算的高速發展,NVIDIA公司成功地抓住了通用計算的時代脈搏,它提出的CUDA C編程接口基于NVIDIA架構顯卡,其通過核函數控制GPU線程進行計算,把Block運行快映射到SM以及把Thread運行單元映射到SP,通過物理結構與邏輯結構相結合的方式,成功地把SIMD架構程序轉移到GPU上進行計算,通過GPU上數以千計的基本計算單元來實現中央處理單元(Centeral Processing Unit, CPU)多核所不能達到的計算效率。

計算正在從CPU(中央處理)向CPU與GPU(協同處理)的方向發展。為了實現這一新型計算模式,英偉達發明了CUDA 并行計算架構。該架構現在正運用于英偉達(NVIDIA)Tesla、英偉達Quadro(NVIDIA Quadro)以及英偉達Geforce(NVIDIA GeForce)GPU上。對應用程序開發商來說,英偉達CUDA 架構擁有龐大的用戶群。d

在科學研究領域,英偉達CUDA受到狂熱追捧。如英偉達CUDA能夠加快AMBER這款分子動力學模擬程序的速度。全球有6萬余名學術界和制藥公司的科研人員使用該程序來加速新藥開發。在金融市場,Numerix和CompatibL已宣布在一款對手風險應用程序中支持英偉達CUDA,而且因此實現了18倍速度提升。

在GPU計算領域中,英偉達Tesla GPU的大幅增長說明了英偉達CUDA正被人們廣泛采用。全球財富五百強企業已經安裝了700多個 GPU 集群,從能源領域中的斯倫貝謝雪佛龍股份有限公司到銀行業中的法國巴黎銀行,這些企業的范圍十分廣泛。

隨著顯卡的發展,GPU越來越強大,而且GPU為顯示圖像做了優化。在計算上已經超越了通用的CPU。如此強大的芯片如果只是作為顯卡就太浪費了,因此英偉達推出CUDA,讓顯卡可以用于圖像計算以外的目的。

目前只有G80、G92、G94、G96、GT200、GF100、GF110、GK100、GK104、GK107平臺(即GeForce 8~GeForce GTX780Ti)的英偉達顯卡才能使用CUDA,工具集的核心是一個c語言編譯器。G80中擁有128個單獨的ALU,因此非常適合并行計算,而且數值計算的速度遠遠優于CPU。

CUDA(Compute Unified Device 建筑)是一個新的基礎架構,這個架構可以使用GPU來解決商業、工業以及科學方面的復雜計算問題。它是一個完整的GPGPU解決方案,提供了硬件的直接訪問接口,而不必像傳統方式一樣必須依賴圖形API接口來實現GPU的訪問。在架構上采用了一種全新的計算體系結構來使用GPU提供的硬件資源,從而給大規模的數據計算應用提供了一種比CPU更加強大的計算能力。CUDA采用C語言作為編程語言提供大量的高性能計算指令開發能力,使開發者能夠在GPU的強大計算能力的基礎上建立起一種效率更高的密集數據計算解決方案。

從CUDA體系結構的組成來說,包含了三個部分:開發庫、運行期環境和驅動。

開發庫是基于CUDA技術所提供的應用開發庫。提供了兩個標準的數學運算庫——CUFFT(離散快速傅立葉變換)和CUBLAS(離散基本線性計算)的實現。這兩個數學運算庫所解決的是典型的大規模的并行計算問題,也是在密集數據計算中非常常見的計算類型。開發人員在開發庫的基礎上可以快速、方便的建立起自己的計算應用。此外,開發人員也可以在CUDA的技術基礎上實現出更多的開發庫。

運行期環境提供了應用開發接口和運行期組件,包括基本數據類型的定義和各類計算、類型轉換、內存管理、設備訪問和執行調度等函數。基于CUDA開發的程序代碼在實際執行中分為兩種,一種是運行在CPU上的宿主代碼(Host Code),一種是運行在GPU上的設備代碼(Device Code)。不同類型的代碼由于其運行的物理位置不同,能夠訪問到的資源不同,因此對應的運行期組件也分為公共組件、宿主組件和設備組件三個部分,基本上囊括了所有在GPGPU開發中所需要的功能和能夠使用到的資源接口,開發人員可以通過運行期環境的編程接口實現各種類型的計算。

由于目前存在著多種GPU版本的英偉達顯卡,不同版本的GPU之間都有不同的差異,因此驅動部分基本上可以理解為是CUDA-enable的GPU的設備抽象層,提供硬件設備的抽象訪問接口。CUDA提供運行期環境也是通過這一層來實現各種功能的。目前基于CUDA開發的應用必須有NVIDIA CUDA-enable的硬件支持,NVIDIA公司GPU運算事業部總經理安德魯 Keane在一次活動中表示:一個充滿生命力的技術平臺應該是開放的,CUDA未來也會向這個方向發展。由于CUDA的體系結構中有硬件抽象層的存在,因此今后也有可能發展成為一個通用的GPGPU標準接口,兼容不同廠商的GPU產品。

功能服務

以上參考資料

基本信息

CUDA(Compute Unified Device Architecture)中文名為計算統一設備架構,是由英偉達(NVIDIA)開發的一套非常流行的并行計算平臺和編程模型。它只支持NVIDIA GPU卡。OpenCL則用來為其他類型的GPU編寫并行代碼,比如AMD英特爾,但它比CUDA更復雜。CUDA可以使用簡單的編程API在圖形處理單元(GPU)上創建大規模并行應用程序。CUDA允許程序員指定CUDA代碼的哪個部分在CPU上執行,哪個部分在GPU上執行。

CUDA架構可以使用GPU來解決商業、工業以及科學方面的復雜計算問題。CUDA是一個完整的解決方案,包含CUDA指令集架構(ISA)、GPU內部的并行計算引擎、API、C編譯器等,能夠利用顯卡核心的片內L1 緩存共享數據,使數據不必經過內存-顯存的反復傳輸,shader之間甚至可以互相通信。CUDA 3.0開始支持C++和FORTRAN。對數據的存儲也不再約束于以往GPGPU的紋理方式,存取更加靈活,可以充分利用stream out特性。以上幾點都將大大提高GPGPU應用的效率。在游戲中可以使用CUDA來讓GPU承擔整個物理計算,而玩家將會獲得另他們感到驚奇的性能和視覺效果。另外,用于產品開發和巨量引擎數據分析的商業軟件也可以通過它來使用一臺工作站或者服務器完成以前需要大規模的計算系統才能完成的工作。這一技術突破使得客戶可以任何地方進行實時分析與決策。同時,一些以前需要很先進的計算技術來達到的強大計算能力的科學應用程序,也不再受限在計算密度上;使用CUDA的計算可以在現有的空間里為平臺提供更強大的計算性能。CUDA采用c語言作為編程語言提供大量的高性能計算指令開發能力,使開發者能夠在GPU的強大計算能力的基礎上建立起一種效率更高的密集數據計算解決方案。

工具包

工具包是一種針對支持CUDA功能的GPU(圖形處理器)的C語言集成開發環境

CUDA開發環境包括:

以上參考資料

優缺點

CUDA優點:

CUDA缺點:

相關產品

以上參考資料

發展現狀

支持CUDA的GPU銷量已逾1億,數以千計的軟件開發人員正在使用免費的CUDA軟件開發工具來解決各種專業以及家用應用程序中的問題。這些應用程序從視頻與音頻處理和物理效果模擬到石油天然氣勘探、產品設計、醫學成像以及科學研究,涵蓋了各個領域。CUDA 的核心有三個重要抽象概念:線程組層次結構、共享存儲器、屏蔽同步(barriersynchronization),可輕松將其作為c語言的最小擴展級公開給程序員。進行CUDA開發需要依次安裝驅動、toolkit、SDK三個軟件。在安裝目錄/C/src目錄下有很多的例程可以進行學習。

英偉達進軍高性能計算領域,推出了Tesla&CUDA高性能計算系列解決方案,讓科學家、工程師和其他專業技術人員能夠解決以前無法解決的問題,作為一個專用高性能GPU計算解決方案,NVIDIA把超級計算能夠帶給任何工作站或服務器,以及標準、基于CPU的服務器集群。

“生成式AI時代和AI的IPhone時刻已經到來”,在全球范圍內白熱化算力爭霸的當下,英偉達已經贏得了競爭先機,而其并行計算和編程平臺CUDA可能是最重要的“幕后英雄”。憑借強大而豐富的計算庫,CUDA得到了算法工程師的認可,甚至被認為是“鞏固英偉達硬件市場地位的護城河”。

相關事件

澎湃新聞2024年3月6日報道:英偉達CUDA11.6及更高版本的EULA的兼容問題引發行業廣泛關注。3月5日晚,摩爾線程發布聲明稱,公司關注到網絡上對于英偉達CUDA兼容相關的報道,摩爾線程MUSA/MUSIFY未受影響。“英偉達CUDA11.6及更高版本的EULA(最終用戶許可協議)中的某條款提到,“您不能逆向工程、反編譯或反匯編使用此SDK生成的任何結果,并在非英偉達平臺上進行轉譯。”

應用領域

計算機視覺應用:計算機視覺和圖像處理算法是計算密集型的。越來越多的攝像頭在捕獲高分辨率圖像時,需要實時處理這些大圖像。隨著這些算法實現CUDA加速,圖像分割、目標檢測和分類等應用可以實現超過30幀/秒的實時幀率性能。CUDA和GPU允許對深度神經網絡和其他深度學習算法進行更快的訓練,這改變了計算機視覺的研究。英偉達正在開發多個硬件平臺,如Jetson TK1、Jetson TX1和Jetson TX2,這些平臺可以加速計算機視覺應用。英偉達drive平臺也是為自動駕駛應用而設計的平臺之一。

醫學成像:在醫學成像領域,GPU和CUDA被廣泛應用于磁共振成像和CT圖像的重建和處理。這大大減少了這些圖像的處理時間。現在,帶有GPU的設備,可以借助一些庫來使用CUDA加速處理這些圖像。

金融計算:所有金融公司都需要以更低的成本進行更好的數據分析,這將有助于做出明智的決策。它包括復雜的風險計算及初始和壽命裕度計算,這些都必須實時進行。GPU幫助金融公司在不增加太多間接成本的情況下,實時地做多種分析。

生命科學、生物信息學和計算化學:模擬脫氧核糖核酸基因、測序和蛋白質對接是需要大量計算資源的計算密集型任務。GPU有助于這種分析和模擬。GPU可以運行普通的分子動力學、量子化學和蛋白質對接應用程序,比普通CPU快5倍以上。

天氣研究和預報:與CPU相比,利用GPU和CUDA的幾種天氣預報應用、海洋建模技術和海嘯預測技術可以進行更快的計算和模擬。

電子設計自動化saber仿真軟件):隨著日益復雜的超大規模集成電路技術和半導體制造工藝的發展,使得EDA工具的性能在這一技術進步上落后。它導致了模擬不完整和功能bug的遺漏。因此,EDA行業一直在尋求更快的仿真解決方案。GPU和CUDA加速正在幫助這個行業加速計算密集型EDA模擬,包括功能模擬、placement和rooting,以及信號完整性和電磁學、SPICE電路模擬等。

政府和國防:GPU和CUDA加速也被政府和軍隊廣泛使用。航空航天、國防和情報工業正在利用CUDA加速將大量數據轉化為可操作的信息。

游戲:更真實游戲效果,GeForce PhysX物理加速。PhysX物理加速技術的加入到GeForce GPU中,通過強大的CUDA架構,使PhysX物理加速技術快速移植到GeForce GPU中成為了可能。不久前,支持GeForce8/9/200系列的顯卡PhysX物理驅動終于發布了,通過物理加速驅動,使GPU能分擔CPU的工作,從而提高游戲的執行效率。英偉達宣稱,PhysX是目前最先進的物理加速引擎。

內容創作:很多內容創作者更看重CPU,的確在早些時候CPU是各種專業軟件的后期渲染輸出的主力,和CPU強大的綜合性能不同,GPU在專業運算上其實更具有優勢。特別是近年來,隨著NVIDIA GeForce GPU搭載了CUDA通用并行計算架構,該架構讓GPU可以參與解決復雜的計算問題,同時開發起來難度也不算太大,所以,現在已經從單純的CPU計算時代開始逐漸轉向GPU加速傳統計算的時代的時代。

超算:一個現代超級計算系統實際上可能由大量節點組成,每個節點包含2到32顆常規CPU以及1到16個GPU。通常還會有一個高速網絡和一個數據存儲系統。該系統的軟件可以使用傳統編程語言(如C/C++Fortran等)的組合編寫,結合用于CPU并行化的消息傳遞系統以及用于GPU的CUDA或OpenCL。所有這些組件都必須進行調整和優化,以實現整個系統的最佳性能。

人工智能:隨著人工智能(AI)的迅速發展,越來越多的應用需要巨大的計算資源。這給傳統的計算機體系結構帶來了巨大的挑戰。其中一個被廣泛使用的解決方案是用圖形處理器(GPU)加速計算,而必須提到的是,英偉達的CUDA架構已經成為這一領域的領導者。CUDA架構為AI帶來了革命性的影響。

交通限速牌識別:智能識別交通限速牌對智能駕駛車輛速度調節和安全行駛有著重要意義。為有效解決交通限速牌識別問題, 提出一種基于統一計算架構 (Computer Unified Device Architecture, CUDA) 的實時交通限速牌識別算法。實驗證明, 基于CUDA的交通限速牌識別算法具有良好的適應性和準確性。

影響評價

CUDA、PhysX、3D Stereo、SLI,這四項在業界內獨一無二的視頻效果處理、加速技術被英偉達譽為GeForce的四大內功,在GPU技術飛速發展的今天,NVIDIA無疑會將GPU應用帶領至一個全新的領域,顯卡未來將有可能不再單一是一張視頻卡。(太平洋電腦網評)

CUDA工具包推出已有1年,它的推出馬上受到了眾多軟件/游戲開發商以及科研機構和程序愛好者的歡迎,NVIDIA方面也將發布最新的CUDA 2.0版本。相信在未來,CUDA將會受到越來越多的領域的支持。目前,支持CUDA環境的GPU主要有采用統一渲染架構的圖形處理器。(太平洋電腦網評)

作為NVIDIA一直以來最高級別的合作伙伴,訊景近來在對NVIDIA GeForce四大內功進行了廣泛的宣傳,新科技慢慢改變我們的生活,Badaboom、奧多比 CS4。越來越多的軟件支持CUDA運算,而GeForce PhysX目前還處在起步階段,但已經有多款尚未發布的游戲已經宣稱將支持NVIDIA的物理加速技術,游戲世界的視覺革命已經開始了,我們期待PhysX帶來更多的驚喜。(太平洋電腦網評)

參考資料 >

核心AIC全力加速!訊景9系列顯卡物理加速測試.新浪科技.2024-03-06

CUDA.www.nvidia.cn.2024-03-07

CUDA 專區.developer.nvidia.cn.2024-03-07

英偉達CUDA在深度學習中扮演著什么角色.AET電子技術應用.2024-03-06

突破頻率極限!映眾GTS450雙雄詳細評測.太平洋電腦網.2024-03-08

Cuda.長安大學高性能計算平臺.2024-03-08

詳細解釋CUDA以及CUDA應用實例演示.太平洋電腦網.2024-03-08

高性能計算機集群以及云平臺.中國科學院重慶綠色智能技術研究院.2024-03-08

CUDA.OSCHINA社區.2024-03-08

算力芯片的“CUDA難題”.百家號.2024-03-08

英偉達禁止第三方使用CUDA?摩爾線程:旗下產品不涉及,開發者可放心使用.澎湃新聞.2024-03-08

生產力倍增器,NVIDIA Studio讓創意更加輕快.網易.2024-03-08

GPU異構計算和CUDA程序簡介 ?.中國科大超算中心用戶使用手冊.2024-03-08

CUDA對人工智能的影響.百家號.2024-03-08

生活家百科家居網