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