CUDA簡介
最早的GPU的開發直接使用了圖形學的API,將任務對映成紋理的渲染過程,使用匯編或者高階著色器語言Cg,HLSL等編寫程式,然後通過圖形學API執行(Direct3D和OpenGL),這樣的開發不僅難度較大,而且難以優化,對開發人員的要求非常高,因此,傳統的GPU計算並沒有廣泛應用。
2007年6月,NVIDIA公司推出了CUDA(Compute Unified Device Architecture),CUDA不需要藉助圖形學API,而是採用了類C語言進行開發。同時,CUDA採用了統一處理架構,降低了程式設計的難度,使得NVIDIA相比AMD/ATI後來居上。相比AMD的GPU,NVIDIA GPU引入了片內共享儲存器,提高了效率。這兩項改進使CUDA架構更加適合進行GPU通用計算。由於這些特性,CUDA推出後迅速發展,被應用於石油勘測、天文計算、流體力學模擬、分子動力學模擬、生物計算、影像處理、音視訊編解碼等領域。
由於採用的是C/C++編譯器為前端,以C/C++語法為基礎設計,因此對熟悉C系列語言的程式設計師來說,CUDA的語法比較容易掌握。CUDA只對ANSI C進行了最小的必要擴充套件,以實現其關鍵特性--執行緒按照兩個層次進行組織、共享儲存器和柵欄同步。
這些關鍵特性使得CUDA擁有了兩個層次的並行:執行緒級並行實現的細粒度資料並行,和任務級並行實現的粗粒度並行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23057064/viewspace-623802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GPU的並行運算與CUDA的簡介GPU並行
- cuda函式庫介紹函式
- CUDA記憶體介紹記憶體
- 簡述CUDA執行緒及求CUDA中執行緒索引執行緒索引
- CUDA
- 簡介
- Jira使用簡介 HP ALM使用簡介
- cuda 流
- 【cuda】- 01
- cmake cuda
- BookKeeper 介紹(1)--簡介
- loadsh簡介
- Knative 簡介
- Javascript 簡介JavaScript
- JanusGraph -- 簡介
- Linux簡介Linux
- CSS 簡介CSS
- 反射簡介反射
- CSS簡介CSS
- JUC簡介
- sass簡介
- APIGateway 簡介APIGateway
- Feign簡介
- Django簡介Django
- Virgilio 簡介
- 簡介JSXJS
- LVM : 簡介LVM
- Linux——簡介Linux
- Apache簡介Apache
- JAVA簡介Java
- NATS簡介
- Mybatis簡介MyBatis
- pwa簡介
- SVG簡介SVG
- kafka 簡介Kafka
- AOP簡介
- MySQLInnodbPurge簡介MySql
- Bootstrap 簡介boot
- Fiddler簡介