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