CUDA(Compute Unified Device Architecture),是顯卡廠商 NVIDIA推出的通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問題。它包含了CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計(jì)算引擎。開發(fā)人員現(xiàn)在可以使用高級(jí)語(yǔ)言基于CUDA架構(gòu)來編寫程序。利用CUDA能夠充分地將GPU的高計(jì)算能力開發(fā)出來,并使得GPU的計(jì)算能力獲得更多的應(yīng)用。
不同于以前將計(jì)算任務(wù)分配到頂點(diǎn)著色器和像素著色器,CUDA架構(gòu)包含一個(gè)統(tǒng)一的著色器管線(Pipeline),允許執(zhí)行通用計(jì)算任務(wù)的程序配置芯片上的每一個(gè)算術(shù)邏輯單元(Arithmetic Logic Unit,ALU)。所有ALU的運(yùn)算均遵守IEEE對(duì)單精度浮點(diǎn)數(shù)運(yùn)算的要求,而且還使用了適于進(jìn)行通用計(jì)算而不是僅僅用于圖形計(jì)算的指令集。此外,對(duì)于存儲(chǔ)器也進(jìn)行了特殊設(shè)計(jì)。這一切設(shè)計(jì)都讓CDA編程變得比較容易。目前,CUDA架構(gòu)除了可以使用C語(yǔ)言進(jìn)行開發(fā)之外,還可以使用FORTRAN、Python、C++ 等語(yǔ)言。CUDA開發(fā)工具兼容傳統(tǒng)的C/C++編譯器GPU代碼和CPU的通用代碼可以混合在一起使用。熟悉C語(yǔ)言等通用程序語(yǔ)言的開發(fā)者可以很容易地轉(zhuǎn)向CUDA程序的開發(fā)。
內(nèi)容來源:黃海 《虛擬現(xiàn)實(shí)技術(shù)》