感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程時長 28 時間:
課程簡介
介紹
- CUDA是什麼?
- CUDA與OpenCL和SYCL的比較
- CUDA特性和架構概述
- 設置開發環境
入門指南
- 使用Visual Studio Code創建新的CUDA項目
- 探索項目結構和文件
- 編譯並運行程序
- 使用printf和fprintf顯示輸出
CUDA API
- 了解CUDA API在主機程式中的作用
- 使用CUDA API查詢設備資訊和能力
- 使用CUDA API配置和釋放裝置記憶體
- 使用CUDA API在主機與設備間複製數據
- 使用CUDA API啟動內核並同步執行緒
- 使用CUDA API處理錯誤和異常
CUDA C/C++
- 了解CUDA C/C++在設備程式中的作用
- 使用CUDA C/C++編寫在GPU上執行的內核並操作數據
- 使用CUDA C/C++的數據類型、修飾符、運算符和表達式
- 使用CUDA C/C++內建函式,如數學函式、原子操作、Warp功能等
- 使用CUDA C/C++內建變數,如threadIdx、blockIdx、blockDim等
- 使用CUDA C/C++庫,如cuBLAS、cuFFT、cuRAND等
CUDA記憶體模型
- 理解主機和設備記憶體模型的差異
- 使用CUDA記憶體空間,如全域、共享、常數和本地
- 使用CUDA記憶體物件,如指標、陣列、紋理和表面
- 使用CUDA記憶體存取模式,如唯讀、寫入只讀、讀寫等
- 使用CUDA記憶體一致性模型和同步機制
CUDA執行模型
- 理解主機和設備執行模型的差異
- 使用CUDA的執行緒、區塊和網格定義平行化
- 使用CUDA執行緒函式,如threadIdx、blockIdx、blockDim等
- 使用CUDA區塊函式,如__syncthreads、__threadfence_block等
- 使用CUDA網格函式,如gridDim、gridSync、協作群組等
調試
- 了解CUDA程式中常見的錯誤和Bug
- 使用Visual Studio Code除錯器檢查變數、斷點、呼叫堆疊等
- 在Linux上使用CUDA-GDB調試CUDA程式
- 使用CUDA-MEMCHECK檢測記憶體錯誤和洩漏
- 在Windows上使用NVIDIA Nsight調試和分析CUDA程式
最佳化
- 了解影響CUDA程式效能的因素
- 使用CUDA並行存取技術提高記憶體吞吐量
- 使用CUDA快取和預取技術降低記憶體延遲
- 使用CUDA共享記憶體和本地記憶體技術優化記憶體存取和頻寬
- 使用CUDA分析及分析工具衡量並改進執行時間和資源利用率
總結與下一步
最低要求
- 理解C/C++語言及平行程式設計概念。
- 具備電腦架構和記憶體層級的基本知識。
- 具有使用命令列工具和程式碼編輯器的經驗。
對象
- 希望學習如何使用CUDA編程NVIDIA GPU並發揮其平行能力的開發人員。
- 希望撰寫可在不同CUDA設備上運行的高效能和可擴展程式的開發人員。
- 希望探索GPU編程底層細節並最佳化代碼效能的程序員。