聯繫我們

課程簡介

簡介

  • 什麼是 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 小時

人數


每位參與者的報價

即將到來的課程

課程分類