感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
GPU加速計算簡介
- 異構計算與CPU-GPU架構。
- CUDA執行空間與內存空間。
- 使用nvcc和CMake編譯CUDA C++代碼。
- 驗證GPU開發環境。
Thrust與CUB並行算法
- GPU加速的排序、規約和轉換操作。
- 重構STL算法以支持GPU執行。
- Thrust設備向量及執行策略。
- 用於自定義流水線的CUB設備級原語。
GPU內存架構與管理
- 全局、常量和紋理內存類型。
- 顯式的設備內存分配與傳輸。
- 用於簡化數據訪問的統一內存。
- 內存合併及訪問模式優化。
CUDA流的異步執行
- 創建和管理CUDA流。
- 重疊內核執行與數據傳輸。
- 利用CUDA事件管理依賴關係。
- 流優先級與併發調優。
編寫自定義CUDA內核
- SIMT編程模型與Warp執行機制。
- 內核啓動配置及Grid跨度循環。
- 線程索引與多維Grid。
- 錯誤處理與CUDA運行時API檢查。
線程層級與執行模型
- 設備代碼中的Grid、Block和Thread。
- Warp級原語與投票操作。
- Block級同步與屏障。
- 佔用率與資源利用率分析。
用於靈活並行的協作組
- 協作者組API及組類型。
- 線程塊圖塊與tiled_partition。
- Grid級協作啓動。
- 多Grid同步模式。
共享內存優化技術
- 共享內存銀行及避免Bank衝突。
- 矩陣運算的分塊策略。
- 作爲用戶管理緩存的共享內存。
- 用於多維視圖的cuda::shared_memory_mdspan。
內核融合與高級並行模式
- 融合多個內核以減少啓動開銷。
- 掃描、按鍵規約及分段算法。
- 原子操作與無鎖數據結構。
- 用於提升吞吐量的Warp聚合原子操作。
Nsight Systems剖析與優化
- CPU與GPU活動的時間軸分析。
- 識別內存傳輸瓶頸。
- 內核性能與佔用率剖析。
- 利用Nsight Compute進行迭代優化。
CUDA設備代碼中的現代C++特性
- 內核中的Lambdas、constexpr和auto。
- C++17並行算法及執行策略。
- 設備端的C++20概念與Ranges。
- 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++
機器翻譯