NVDIA CUDA
---------GPU計算的革命
NVIDIA CUDA技術是基礎的新的計算架構,這個架構將使用GPU來解決一些消費、商業和技術工業領域復雜的計算問題。CUDA(計算標準設備架構)技術將通過革命性的計算架構來使用NV的gpu的強大的處理能力,從而給數據密集型的應用提供了完全不受限制的全新的計算能力。該架構將通過標準的c語言來提供大量的高性能指令以及簡潔的程序開發方式,從而允許開發者創建一個解決辦法,該辦法將消耗更少的時間為數據密集型的處理提供足夠精確的解答。
什么是CUDA?
使用了CUDA的GPU計算通過標準的C語言將下一代NV GPU的總多計算特性結合到一起。在這之前的GPU是基于“流式著色程序”的,CUDA則使用C語言,通過“線程”來創建應用程序,這類似于CPU上的多線程程序。相比較于僅能有很少線程同時工作的多核CPU的而言,NV GPU的特性可以讓CUDA同時執行數千個線程,這將令我們的應用能處理更多的信息流。
CUDA所提供的最重要的創新在于,它使得工作在GPU上的線程可以協作解決問題。在線程間通訊實現以后,CUDA將允許應用程序更加高效的執行。由NV GPUs的支持,CUDA有一個直接在GPU上的并行計算緩存,它用于保存頻繁使用的信息。在GPU上保存信息可以讓計算線程即刻得到共享數據而不是去漫長的等待off-chip的DRAM上的數據。它能讓用戶實時的計算出復雜問題的答案。
通過CUDA應用程序所能獲得的好處
CUDA GPU運算廣泛適用于需要處理大量數據的應用。例如,在游戲中我們可以使用CUDA來讓GPU承擔整個物理計算,而玩家將會獲得另他們感到驚奇的性能和視覺效果。另外,用于產品開發和巨量數據分析的商業軟件也可以通過它來使用一臺工作站或者服務器完成以前需要大規模的計算系統才能完成的工作。這一技術突破使得客戶可以任何地方進行實時分析與決策。同時,一些以前需要很先進的計算技術來達到的強大計算能力的科學應用程序,也不再受限在計算密度上;使用CUDA的計算可以在現有的空間里為平臺提供更強大的計算性能。
為何使用CUDA?
性能:NV GPU為數據密集型的應用提供了超乎想象的性能。CUDA給了我們一個標準的、廣泛使用的解決方案來給予新的應用前所未有的計算能力。
兼容性:使用CUDA C-Compiler開發的程序將向后兼容NV的GPU。開發人員在GPU計算方面所做的投資將立刻在現有GPU的性能上得到回報,同時也將一定會在NV以后的高性能技術中獲得收益。
生產力:開發者現在可以使用工業化的標準的C語言來使用他們所希望獲得的GPU的計算能力。CUDA提供了完整的開發解決方案,這一方案整合了CPU和GPU,這將令開發人員非常迅速地為他們的客戶提供最新的特征和更多的價值。
伸縮性:使用CUDA開發的應用程序在性能和特性上可以應用于全線的NV的GPU,從嵌入式GPU到使用多GPU的高性能專業圖形解決方案。CUDA事實上已經可以在從大型的計算設備到個人消費級產品的任何層次的系統中運行。
使用CUDA的軟件開發
CUDA開發包是一個完整的使用GPU的軟件開發方案。在SDK包含了標準的FFT和BLAS庫、使用NV GPU的C編譯器和運行時驅動。CUDA運行時驅動是與常用的同DX和GL協同工作的驅動獨立的。同時CUDA對Linux和XP的支持也是相同的。
技術特性
CUDA為線程計算提供了一個統一的硬件和軟件解決方案來使用支持CUDA的GPU
可支持CUDA的GPU為高性能計算提供并行數據緩沖和線程執行管理器的支持
可以在GPU上使用的標準C語言
提供了標準數值庫FFT和BLAS
為計算提供了獨立的CUDA驅動
優化了GPU和CPU之間的數據通信路徑
CUDA驅動可以在圖形設備之間互操作
支持 LINUX 與 XP 操作系統
從高性能的專業圖形解決方案到移動和嵌入式GPU均能使用
為高計算密度程序內建多GPU支持
為程序開發和優化提供硬件調試的性能測試的支持