感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
介紹
- 什麼是CUDA?
- CUDA 與 OpenCL 與 SYCL
- CUDA 功能和架構概述
- 設置開發環境
開始
- 使用 Visual Studio 代碼創建新的 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++ 內置函數,如 math、atomic、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 程式中的常見錯誤和錯誤
- 使用 Visual Studio 代碼調試器檢查變數、斷點、調用堆疊等。
- 在 Linux 上使用 CUDA-GDB 調試 CUDA 程式
- 使用 CUDA-MEMCHECK 檢測記憶體錯誤和洩漏
- 使用 NVIDIA Nsight 在 Windows 上調試和分析 CUDA 程式
優化
- 了解影響 CUDA 程式性能的因素
- 使用 CUDA 合併技術提高記憶體輸送量
- 使用 CUDA 快取技術來減少記憶體延遲
- 使用 CUDA 共用記憶體和本地記憶體技術優化記憶體訪問和頻寬
- 使用 CUDA 分析和分析工具來衡量和改進執行時間和資源利用率
摘要和後續步驟
最低要求
- 瞭解 C/C++ 語言和並行程式設計概念
- 計算機體系結構和記憶體層次結構的基礎知識
- 具有命令行工具和代碼編輯器的經驗
觀眾
- 希望學習如何使用 CUDA 對 NVIDIA GPU 進行程式設計並利用其並行性的開發人員
- 希望編寫可在不同 CUDA 設備上運行的高性能和可擴展代碼的開發人員
- 希望探索 GPU 程式設計的低級方面並優化其代碼性能的程式師
28 時間: