感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
GPU加速運算入門
- 異質運算與CPU-GPU架構。
- CUDA執行與記憶體空間。
- 使用nvcc和CMake編譯CUDA C++。
- 驗證GPU開發環境。
使用Thrust與CUB的並列演算法
- GPU加速的排序、歸約與轉換。
- 將STL演算法重構為適合GPU執行的版本。
- Thrust裝置向量與執行策略。
- CUB用於自訂管線的全域裝置原語。
GPU記憶體架構與管理
- 全域、常數與紋理記憶體類型。
- 明確的裝置記憶體配置與傳輸。
- 統一記憶體以簡化資料存取。
- 記憶體共合與存取模式最佳化。
CUDA串流的非同步執行
- 建立與管理CUDA串流。
- 重疊核處理序執行與資料傳輸。
- 使用CUDA事件進行依賴管理。
- 串流優先權與並發性調整。
編寫自訂CUDA核處理序
- SIMT程式設計模型與warp執行。
- 核處理序啟動配置與網格步進迴圈。
- 執行緒索引與多维網格。
- 錯誤處理與CUDA運行時API檢查。
執行緒階層與執行模型
- 裝置程式碼中的網格、區塊與執行緒。
- warp級原語與投票操作。
- 區塊級同步處理與屏障。
- 佔用率與資源利用率分析。
合作群組實現靈活並行
- cooperative_groups API與群組類型。
- 執行緒區塊瓦片與tiled_partition。
- 網格級別的合作啟動。
- 多網格同步模式。
共用記憶體最佳化技術
- 共用記憶體儲存體與避免儲存體衝突。
- 矩陣運算的分塊策略。
- 將共用記憶體用作使用者管理的快取。
- 使用cuda::shared_memory_mdspan實現多维檢視。
核處理序融合與進階並行模式
- 融合多個核處理序以降低啟動開銷。
- 掃描、按鍵歸約與分段演算法。
- 原子操作與無鎖資料結構。
- 使用warp聚合原子操作提升吞吐量。
使用Nsight Systems進行分析與最佳化
- CPU與GPU活動的時間軸分析。
- 識別記憶體傳輸瓶頸。
- 核處理序效能與佔用率分析。
- 使用Nsight Compute進行迭代最佳化。
CUDA裝置程式碼中的現代C++特性
- 在核處理序中使用Lambdas、constexpr與auto。
- C++17並列演算法與執行策略。
- C++20概念與ranges於裝置上的應用。
- C++23在nvcc與CCCL 3.x中的支援。
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++
機器翻譯