感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
GPU 加速運算介紹
- 異質運算與 CPU-GPU 架構。
- CUDA 執行與記憶體空間。
- 使用 nvcc 和 CMake 編譯 CUDA C++。
- 驗證 GPU 開發環境。
使用 Thrust 和 CUB 的平行演算法
- GPU 加速排序、歸約和轉換。
- 重構 STL 演算法以適應 GPU 執行。
- Thrust 裝置向量和執行策略。
- CUB 用於自訂管線的裝置級原語。
GPU 記憶體架構與管理
- 全域、常量和紋理記憶體類型。
- 明確的裝置記憶體配置和傳輸。
- 統一記憶體簡化數據存取。
- 記憶體合併與存取模式最佳化。
CUDA 串流的非同步執行
- 建立和管理 CUDA 串流。
- 重疊核心執行與數據傳輸。
- CUDA 事件管理依賴關係。
- 串流優先級並行調優。
撰寫自訂 CUDA 核心
- SIMT 程式設計模型與執行緒區塊執行。
- 核心啟動配置與網格步進迴圈。
- 執行緒索引和多維網格。
- 錯誤處理和 CUDA 運行時 API 檢查。
執行緒層級與執行模型
- 裝置代碼中的網格、區塊和執行緒。
- 執行緒級原語和投票操作。
- 區塊級同步和屏障。
- 佔用率與資源利用率分析。
協作群組靈活平行性
- 協作群組 API 與群組類型。
- 執行緒區塊瓦片與 tiled_partition。
- 網格級協作啟動。
- 多網格同步模式。
共享記憶體最佳化技術
- 共享記憶體銀行與避免衝突。
- 矩陣運算的瓦片策略。
- 作為使用者管理快取的共享記憶體。
- 用於多維視圖的 cuda::shared_memory_mdspan。
核心融合與進階平行模式
- 融合多個核心以降低啟動開銷。
- 掃描、按鍵歸約和分段演算法。
- 原子操作與無鎖數據結構。
- 提高吞吐量的執行緒聚合原子操作。
使用 Nsight Systems 進行分析與最佳化
- CPU 和 GPU 活動的時間軸分析。
- 識別數據傳輸瓶頸。
- 核心效能與佔用率分析。
- 使用 Nsight Compute 進行迭代最佳化。
CUDA 裝置代碼中的現代 C++ 功能
- 核心中的 lambda、constexpr 和 auto。
- C++17 平行演算法與執行策略。
- C++20 概念與範圍在裝置上的應用。
- nvcc 和 CCCL 3.x 對 C++23 的支持。
CUDA 圖形與進階非同步性
- 定義和啟動 CUDA 圖形。
- 從串流執行捕獲圖形。
- 更新圖形與條件執行節點。
- 降低迭代工作負載的啟動延遲。
現有應用程式的整合模式
- 在 C++ 介面後包裝 GPU 代碼。
- 管理多 GPU 和 NUMA 系統。
- 使用 CMake 和 CUDA 進行建構系統整合。
- 使用 cuda-gdb 除錯裝置代碼。
總結與最佳實踐
- 在 Thrust、CUB 和自訂核心之間做出選擇。
- 跨 GPU 架構的性能可移植性。
- CUDA 資源的代碼組織和 RAII。
- 後續步驟與進階 CUDA 學習路徑。
最低要求
- 具備基本 C++ 能力,包括 lambda 表達式、模板和 STL。
- 熟悉標準演算法、容器和迭代器。
- 熟練使用迴圈、條件判斷和函數。
- 無需先前的 CUDA 或 GPU 程式設計知識。
受眾
- 尋求利用 GPU 加速運算密集型應用程式的 C++ 開發者。
- 從僅限 CPU 轉向異質平行程式設計的軟體工程師。
- 處理大數據集的性能工程師和量化開發者。
8 小時
客戶評論 (3)
詳細解釋,以非常微妙的方式重新闡述要點,使知識深入人心。Rod 願意反覆檢查我們提出的晦澀問題,以確保他的回答百分之百正確。此外,他對討論不同編碼風格的優缺點感興趣,使我們不僅學會了如何以預期的方式使用 C++,還了解了爲什麼應該這樣做。
Nick Dillon - cellxica Ltd
課程 - Using C++ in Embedded Systems - Applying C++11/C++14
機器翻譯
經驗分享,這是教師的訣竅和寶貴之處。
Carey Fan - Logitech
課程 - C/C++ Secure Coding
機器翻譯
線上培訓爲我們節省了大量時間,對此我們深表感謝。此外,培訓師同時精通C#和C++,這一點非常有幫助,因爲他能夠利用我們已有的知識來解釋所有內容。
Gabor - Rheinmetall Electronics Hungary Kft
課程 - Advanced C++
機器翻譯