NVIDIA CUDA軟件簡介
CUDA的開發考慮了幾個設計目標:
提供對標準編程語言(例如C)的一小部分擴展,這些擴展可實現并行算法的直接實現。使用CUDA C / C ++,程序員可以專注于算法的并行化任務,而不必花時間在其實現上。
在應用程序同時使用CPU和GPU的情況下支持異構計算。應用程序的串行部分在CPU上運行,并行部分被卸載到GPU。這樣,CUDA可以增量地應用于現有應用程序。CPU和GPU被視為具有各自內存空間的單獨設備。此配置還允許在CPU和GPU上同時進行計算,而不會爭用內存資源。
具有CUDA功能的GPU具有數百個內核,這些內核可以共同運行數千個計算線程。這些內核具有共享資源,包括寄存器文件和共享內存。片上共享內存允許在這些內核上運行的并行任務共享數據,而無需通過系統內存總線發送數據。
NVIDIA CUDA功能介紹
1、高性能
CUDA軟件平臺經過高度優化,可在NVIDIA GPU上執行,并且比僅限CPU的選擇速度快2至5倍。
2、特定領域的圖書館
高級庫支持跨域的GPU加速,包括線性代數,圖像處理,深度學習和圖形分析。
3、開發一次,隨處部署
CUDA軟件平臺可跨GPU系列工作,因此您可以在任何平臺上開發,而無需擔心最終的部署環境。
4、集成開發環境
IDE帶有用于調試的圖形和命令行工具,識別GPU和CPU上的性能瓶頸,并提供上下文相關的優化指導。
5、語言整合
使用您已知的編程語言開發應用程序,包括C,C ++,Fortran和Python。
NVIDIA CUDA軟件特色
一、圖書館
1、使用cuBLAS中的新GEMM內核加速高性能計算(HPC)和深度學習應用程序。
2、通過cuFFT和NVIDIA Performance Primitives中多個GPU配置的性能優化,可更快地執行映像和信號處理應用程序。
3、使用cuSOLVER和nvGRAPH中的新算法解決HPC中常見的線性和圖形分析問題。
二、合作團體
1、使用從子貼圖到線程,塊和網格的線程表達豐富的并行算法。
2、使用新的API和函數原語在應用程序內高效地管理和重用線程。
3、在開普勒體系結構及更高版本上用強大的編程模型替換warp-synchronous編程。
三、沃爾塔建筑
1、Tensor Cores比Pascal GPU執行速度快5倍,可以更快地執行AI應用程序。
2、利用下一代NVLink提供前代產品的2倍吞吐量來擴展多GPU應用。
3、使用沃爾多多進程服務(MPS)提高GPU利用率。
四、開發工具
1、通過識別在統一內存中導致頁面錯誤的源代碼來優化和預取內存訪問。
2、通過將事件添加到時間線和顏色編碼連接來高效地配置NVLink。
3、使用基于虛擬地址,遷移原因和頁面錯誤訪問類型的新事件過濾器來檢查統一內存性能瓶頸。
NVIDIA CUDA使用方法
評估
對于現有項目,第一步是評估應用程序,以找到負責大部分執行時間的代碼部分。有了這些知識,開發人員就可以評估這些瓶頸以進行并行化,并開始研究GPU加速。
通過了解最終用戶的要求和約束并應用阿姆達爾定律和古斯塔夫森定律,開發人員可以通過加速應用程序已識別部分來確定性能改進的上限。
平行化
在確定了熱點并完成了設置目標和期望的基本練習之后,開發人員需要并行處理代碼。根據原始代碼,這可以像調用現有的GPU優化庫一樣簡單,例如立方玻璃, 傅立葉變換, 要么 推力,也可以像向并行化編譯器添加一些預處理器指令一樣簡單。
另一方面,某些應用程序的設計將需要進行一些重構以暴露其固有的并行性。由于甚至CPU架構也需要公開并行性以改善或簡單地維護順序應用程序的性能,因此CUDA并行編程語言家族(CUDA C ++,CUDA Fortran等)旨在使這種并行性的表達盡可能地簡單。 ,同時在支持CUDA的GPU上啟用操作,這些GPU設計用于實現最大并行吞吐量。
優化
在完成每一輪應用程序并行化之后,開發人員可以著手優化實現以提高性能。由于可以考慮許多可能的優化,因此充分了解應用程序的需求可以幫助使過程盡可能地流暢。但是,與整個APOD一樣,程序優化是一個反復的過程(確定優化機會,應用和測試優化,驗證所實現的加速并重復),這意味著程序員在看到良好的加速效果之前不必花費大量時間來記住所有可能的優化策略。相反,可以在學習策略時逐步應用它們。
從重疊的數據傳輸到計算一直到微調浮點運算序列,優化可以應用于各種級別??捎玫母乓治龉ぞ邔τ谥笇Т诉^程非常有用,因為它們可以幫助建議開發人員進行優化工作的最佳方案,并為該指南的優化部分的相關部分提供參考。
部署
完成應用程序一個或多個組件的GPU加速后,可以將結果與原始期望進行比較?;叵胍幌?,初始評估步驟允許開發人員確定通過加速給定熱點可獲得的潛在加速的上限。
在解決其他熱點以提高總體速度之前,開發人員應考慮采用部分并行的實現,并將其付諸實踐。這很重要,原因有很多;例如,它允許用戶盡早從他們的投資中獲利(提速可能是部分的,但仍然是有價值的),并且通過向開發者提供一組漸進而不是革命性的更改,將開發人員和用戶的風險降至最低。應用。
NVIDIA CUDA軟件組成
GPU加速庫
CUDA-X庫
IndeX框架(IndeX)
語言解決方案
OpenACC編譯器指令
NVIDIA CUDA C / C ++編譯器(NVCC)
參考資料
CUDA C / C ++代碼示例
CUDA文檔
開發工具
NVTAGS
DIGITS深度學習培訓系統
Nsight集成開發環境
可視分析器
CUDA-GDB命令行調試器
CUDA-MEMCHECK內存分析儀
NVIDIA CUDA更新日志
1.對部分功能進行了優化
2.解了好多不能忍的bug
華軍小編推薦:
NVIDIA CUDA能夠幫助你解決很多問題,相信只要你敢用,絕對會讓你愛不釋手的,還推薦給您冠捷i-Menu顯示器輔助軟件、NVIDIA GeForce 9400 GT顯卡驅動、NVIDIA英偉達GeForce系列顯卡驅動 For Win7-32、nvidia geforce 8400 gs顯卡驅動、NVIDIA 7025顯卡驅動
您的評論需要經過審核才能顯示
有用
有用
有用