Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
課程簡介
介紹
- 什麼是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 時間:
客戶評論 (2)
與各種示例非常互動,在培訓開始和結束之間的複雜性進展良好。
Jenny - Andheo
Course - GPU Programming with CUDA and Python
機器翻譯
培訓師精力充沛,幽默風趣。
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Course - NVIDIA GPU Programming - Extended
機器翻譯