感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
介紹
- 什麼是 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 偵錯工具檢查變數、斷點、呼叫堆疊等。
- 在 AMD 裝置上使用 ROCm Debugger 除錯 ROCm 和 HIP 程式
- 在 AMD 裝置上使用 ROCm Profiler 分析 ROCm 和 HIP 程式
最佳化
- 理解影響 ROCm 和 HIP 程式效能的因素
- 使用 ROCm 和 HIP 的交織技術來改善記憶體吞吐量
- 使用 ROCm 和 HIP 的快取與預取技術來降低記憶體延遲
- 使用 ROCm 和 HIP 的共享記憶體和本地記憶體技術來最佳化記憶體存取和頻寬。
- 使用 ROCm 和 HIP 的效能剖析及工具來測量並改善執行時間與資源利用率。
摘要與後續步驟
最低要求
- 具備 C/C++ 語言與平行程式設計概念的知識
- 具備電腦架構和記憶體層次的基礎知識
- 具備使用命令列工具和程式碼編輯器的經驗
目標受眾
- 希望學習如何使用 ROCm 和 HIP 程式設計 AMD GPU 並發揮其平行運算能力的開發者。
- 希望編寫能在不同 AMD 裝置上執行的高效能且具擴展性程式碼的開發者。
- 希望探索 GPU 程式設計底層細節並最佳化程式碼效能的程式設計師。
28 小時