聯繫我們

課程簡介

GPU 運算與 CUDA 架構

  • CPU 與 GPU 的架構差異
  • NVIDIA GPU 串流多處理器模型
  • CUDA 程式設計模型概述
  • 異質運算及主機-裝置範式

設定 CUDA 開發環境

  • 安裝 CUDA Toolkit 13.x
  • NVCC 編譯器及建置工作流程
  • 透過裝置查詢驗證環境
  • IDE 整合及開發工具

撰寫並啟動 CUDA 核心

  • 核心函式語法與修飾詞
  • 啟動配置與執行
  • 向量相加及基本資料平行模式
  • CUDA 錯誤檢查巨集

CUDA 執行緒層級與執行模型

  • 網格、區塊及執行緒的組織
  • 執行緒索引與全域 ID 計算
  • Warp 執行與 SIMT 模型
  • 佔用率與資源利用率

GPU 記憶體架構與管理

  • 記憶體類型:全域、共用、常數、暫存器
  • 配置及釋放裝置記憶體
  • 主機到裝置及裝置到主機的傳輸
  • 用於區塊內協作的共用記憶體

統一記憶體與資料遷移

  • 統一記憶體模型及受管理配置
  • 分頁遷移及按需分頁
  • 使用 cudaMemPrefetchAsync 進行非同步預取
  • 用於存取模式的記憶體建議提示

使用 Nsight Systems 進行系統層級剖析

  • Nsight Systems 時間軸分析
  • 識別 CPU-GPU 同步點
  • 視覺化核心執行及記憶體傳輸
  • 解釋系統層級效能數據

使用 Nsight Compute 優化核心

  • Nsight Compute 互動式核心剖析
  • 記憶體吞吐量及頻寬分析
  • 運算利用率及 Warp 狀態統計
  • 引導式分析與最佳化規則

並行資料流與非同步作業

  • CUDA 資料流與預設資料流
  • 重疊核心執行與資料傳輸
  • 資料流同步與 CUDA 事件
  • 多資料流管線設計模式

錯誤處理與除錯工具

  • CUDA API 錯誤代碼及恢復策略
  • compute-sanitizer 用於記憶體存取檢查
  • cuda-gdb 用於核心除錯
  • 斷言與同步錯誤偵測

以剖析為導向的優化工作流程

  • 迭代式剖析方法
  • 瓶頸識別與優先級排序
  • 效能回歸測試
  • 記錄最佳化決策

端到端加速應用程式專案

  • 設計完整的 GPU 加速解決方案
  • 在開發過程中整合剖析
  • 效能基準測試與報告
  • 生產環境的部署考量

最低要求

  • 基本的 C/C++ 程式設計能力,包括變數類型、迴圈、條件陳述式、函式及陣列操作
  • 熟悉從命令列編譯及執行程式
  • 無需具備 GPU 或 CUDA 程式設計的先前經驗

適用對象

  • 希望利用 GPU 加速 C/C++ 應用程式的軟體開發人員及工程師
  • 從僅使用 CPU 過渡到異質運算的科學研究人員及高效能運算 (HPC) 從業者
  • 評估生產環境工作負載是否採用 GPU 加速的技術主管
 8 小時

課程分類