課程簡介

介紹

  • 什麼是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 時間:

人數



每位參與者的報價

客戶評論 (1)

相關課程

課程分類