"計算正在從CPU"中央處理"向CPU與GPU"協同處理"的方向發展。為了實現這一新型計算模式,英偉達發明了英偉達CUDA并行計算架構。該架構現在正運用于英偉達 (NVIDIA)Tesla、英偉達Quadro(NVIDIA Quadro)以及英偉達精視(NVIDIA GeForce)GPU上。對應用程序開發商來說,英偉達 CUDA架構擁有龐大的用戶群。"
各領域CUDA扮演的角色
在科學研究領域,英偉達 CUDA 受到狂熱追捧。例如,英偉達 CUDA 能夠加快AMBER這款分子動力學模擬程序的速度。全球有6萬余名學術界和制藥公司的科研人員使用該程序來加速新藥開發。在金融市場,Numerix和CompatibL已宣布在一款對手風險應用程序中支持英偉達 CUDA ,而且因此實現了18倍速度提升。
在GPU計算領域中,英偉達 Tesla GPU的大幅增長說明了英偉達 CUDA 正被人們廣泛采用。目前,全球《財富》五百強企業已經安裝了700多個GPU集群,從能源領域中的斯倫貝謝和雪佛龍到銀行業中的法國巴黎銀行,這些企業的范圍十分廣泛。
在消費級市場上,幾乎每一款重要的消費級視頻應用程序都已經使用CUDA加速,其中不乏Elemental-Technologies公司、MotionDSP公司以及LoiLo公司的產品。
在科研界,CUDA一直受到熱捧。例如,CUDA現已能夠對AMBER進行加速。AMBER是一款分子動力學模擬程序,全世界在學術界與制藥企業中有超過60,000名研究人員使用該程序來加速新藥的探索工作。
CUDA是一個新的基礎架構,這個架構可以使用GPU來解決商業、工業以及科學方面的復雜計算問題。它是一個完整的GPGPU解決方案,提供了硬件的直接訪問接口,而不必像傳統方式一樣必須依賴圖形API接口來實現GPU的訪問。在架構上采用了一種全新的計算體系結構來使用GPU提供的硬件資源,從而給大規模的數據計算應用提供了一種比CPU更加強大的計算能力。CUDA采用C語言作為編程語言提供大量的高性能計算指令開發能力,使開發者能夠在GPU的強大計算能力的基礎上建立起一種效率更高的密集數據計算解決方案。
發展現況
支持CUDA的GPU銷量已逾1億,數以千計的軟件開發人員正在使用免費的CUDA軟件開發工具來解決各種專業以及家用應用程序中的問題。這些應用程序從視頻與音頻處理和物理效果模擬到石油天然氣勘探、產品設計、醫學成像以及科學研究,涵蓋了各個領域。
CUDA 的核心有三個重要抽象概念: 線程組層次結構、共享存儲器、屏蔽同步,可輕松將其作為C語言的最小擴展級公開給程序員。
CUDA 軟件堆棧由幾層組成,一個硬件驅動程序,一個應用程序編程接口(API)和它的Runtime,還有二個高級的通用數學庫,CUFFT 和CUBLAS。硬件被設計成支持輕量級的驅動和Runtime 層面,因而提高性能。
所支持的OS(operating system)
CUDA目前支持linux和Windows操作系統。進行CUDA開發需要依次安裝驅動、toolkit、SDK三個軟件。在安裝目錄/C/src目錄下有很多的例程可以進行學習。
NVIDIA進軍高性能計算領域,推出了Tesla&CUDA高性能計算系列解決方案,CUDA技術,一種基于NVIDIA圖形處理器(GPU)上全新的并行計算體系架構,讓科學家、工程師和其他專業技術人員能夠解決以前無法解決的問題,作為一個專用高性能GPU計算解決方案,NVIDIA把超級計算能夠帶給任何工作站或服務器,以及標準、基于CPU的服務器集群。
CUDA是用于GPU計算的開發環境,它是一個全新的軟硬件架構,可以將GPU視為一個并行數據計算的設備,對所進行的計算進行分配和管理。在CUDA的架構中,這些計算不再像過去所謂的GPGPU架構那樣必須將計算映射到圖形API(OpenGL和Direct 3D)中,因此對于開發者來說,CUDA的開發門檻大大降低了。CUDA的GPU編程語言基于標準的C語言,因此任何有C語言基礎的用戶都很容易地開發CUDA的應用程序。
由于GPU的特點是處理密集型數據和并行數據計算,因此CUDA非常適合需要大規模并行計算的領域。目前CUDA除了可以用C語言開發,也已經提供FORTRAN的應用接口,未來可以預計CUDA會支持C++、Java、Python等各類語言。可廣泛的應用在圖形動畫、科學計算、地質、生物、物理模擬等領域。2008年NVIDIA推出CUDA SDK2.0版本,大幅提升了CUDA的使用范圍。使得CUDA技術愈發成熟。
結尾
從最初發現GPU在深度學習計算方面的潛力,到如今幾乎“無GPU不深度學習”的行業現狀,英偉達毅然向人工智能轉型,投入大量資源用以研發,不斷推陳出新,極大地推動了GPU在人工智能計算的應用,同時更推動了人工智能行業的發展。說一句“深度學習計算≈英偉達”不算過分吧。