感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
簡介
- 什麼是 ROCm?
- 什麼是 HIP?
- ROCm 與 CUDA、OpenCL 的比較
- ROCm 和 HIP 的功能與架構概述
- 設定開發環境
初級入門
- 使用 Visual Studio Code 建立新的 ROCm 專案
- 探索專案結構與檔案
- 編譯並執行程式
- 使用 printf 和 fprintf 顯示輸出結果
ROCm API
- 了解 ROCm API 在主機程式中的角色
- 使用 ROCm API 查詢裝置資訊與能力
- 使用 ROCm API 配置與釋放裝置記憶體
- 使用 ROCm API 在主機與裝置間複製資料
- 使用 ROCm API 啟動核心並同步執行緒
- 使用 ROCm API 處理錯誤與例外情況
HIP 語言
- 了解 HIP 語言在裝置程式中的角色
- 使用 HIP 語言編寫在 GPU 上執行的核心並操作資料
- 使用 HIP 資料類型、限定詞、運算子與表示式
- 使用 HIP 內建函式、變數和函式庫來完成常見任務與操作
ROCm 和 HIP 記憶體模型
- 了解主機與裝置記憶體模型的差異
- 使用 ROCm 和 HIP 的記憶體空間,如全域、共用、常數和本地
- 使用 ROCm 和 HIP 的記憶體物件,如指標、陣列、紋理與表面
- 使用 ROCm 和 HIP 的記憶體存取模式,如唯讀、唯寫、讀寫等
- 使用 ROCm 和 HIP 的記憶體一致性模型與同步機制
ROCm 和 HIP 執行模型
- 了解主機與裝置執行模型的差異
- 使用 ROCm 和 HIP 的執行緒、區塊和網格來定義平行性
- 使用 ROCm 和 HIP 的執行緒函式,如 hipThreadIdx_x、hipBlockIdx_x、hipBlockDim_x 等
- 使用 ROCm 和 HIP 的區塊函式,如 __syncthreads、__threadfence_block 等
- 使用 ROCm 和 HIP 的網格函式,如 hipGridDim_x、hipGridSync、協作群組等
除錯
- 了解 ROCm 和 HIP 程式中常見的錯誤與問題
- 使用 Visual Studio Code 除錯器檢查變數、中斷點、呼叫堆疊等
- 使用 ROCm Debugger 在 AMD 裝置上除錯 ROCm 和 HIP 程式
- 使用 ROCm Profiler 分析 AMD 裝置上的 ROCm 和 HIP 程式
最佳化
- 了解影響 ROCm 和 HIP 程式效能的因素
- 使用 ROCm 和 HIP 的聯合存取技術來提升記憶體頻寬
- 使用 ROCm 和 HIP 的快取與預取技術來降低記憶體延遲
- 使用 ROCm 和 HIP 的共用記憶體和本地記憶體技術來最佳化記憶體存取與頻寬
- 使用 ROCm 和 HIP 的效能分析工具來測量並改善執行時間與資源利用率
摘要與下一步
最低要求
- 具備 C/C++ 語言與平行程式設計概念的基礎
- 具備電腦架構與記憶體階層的基本知識
- 具有命令列工具與程式碼編輯器的使用經驗
受眾對象
- 希望學習如何使用 ROCm 和 HIP 進行 AMD GPU 程式設計並發揮其平行運算潛力的開發者
- 希望編寫能在不同 AMD 裝置上運行的高效能與可擴展程式碼的開發者
- 希望探索 GPU 程式設計的底層細節並最佳化程式碼效能的程式設計師
28 小時