聯繫我們

課程簡介

簡介

  • 什麼是 ROCm?
  • 什麼是 HIP?
  • ROCm vs CUDA vs OpenCL
  • ROCm 和 HIP 功能與架構概述
  • ROCm for Windows vs ROCm for Linux

安裝

  • 在 Windows 上安裝 ROCm
  • 驗證安裝並檢查裝置相容性
  • 更新或卸載 Windows 上的 ROCm
  • 排除常見安裝問題

入門

  • 使用 Visual Studio Code 在 Windows 上建立新的 ROCm 專案
  • 探索專案結構與檔案
  • 編譯並執行程式
  • 使用 printf 和 fprintf 顯示輸出

ROCm API

  • 在主機程式中使用 ROCm API
  • 查詢裝置資訊與功能
  • 配置和釋放裝置記憶體
  • 在主机與裝置間複製資料
  • 啟動核心並同步執行緒
  • 處理錯誤與例外狀況

HIP 語言

  • 在裝置程式中使用 HIP 語言
  • 編寫可在 GPU 上執行的核心並操作資料
  • 使用資料類型、限定詞、運算子及表達式
  • 使用內建函數、變數及程式庫

ROCm 和 HIP 記憶體模型

  • 使用不同的記憶體空間,如全域、共用、常數和本地
  • 使用不同的記憶體物件,如指標、陣列、紋理及表面
  • 使用不同的記憶體存取模式,如唯讀、寫入及讀寫等
  • 使用記憶體一致性模型和同步機制

ROCm 和 HIP 執行模型

  • 使用不同的執行模型,如執行緒、區塊及網格
  • 使用執行緒函數,如 hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x 等
  • 使用區塊函數,如 __syncthreads, __threadfence_block 等
  • 使用網格函數,如 hipGridDim_x, hipGridSync, cooperative groups 等

除錯

  • 在 Windows 上除錯 ROCm 和 HIP 程式
  • 使用 Visual Studio Code 除錯器檢查變數、中斷點、呼叫堆疊等
  • 使用 ROCm Debugger 在 AMD 裝置上除錯 ROCm 和 HIP 程式
  • 使用 ROCm Profiler 分析 AMD 裝置上的 ROCm 和 HIP 程式

最佳化

  • 在 Windows 上最佳化 ROCm 和 HIP 程式
  • 使用合併存取技術提升記憶體頻寬
  • 使用快取和預取技術降低記憶體延遲
  • 使用共用記憶體和本地記憶體技術最佳化記憶體存取與頻寬
  • 使用效能分析及分析工具來測量並改善執行時間與資源利用率

總結與下一步

最低要求

  • 具備 C/C++ 語言及平行程式設計概念的知識
  • 具備電腦架構及記憶體階層的基本知識
  • 有使用命令列工具和程式碼編輯器的經驗
  • 熟悉 Windows 作業系統和 PowerShell

適合對象

  • 希望學習如何在 Windows 上安裝和使用 ROCm,對 AMD GPU 進行程式設計並發揮其平行運算能力的開發人員。
  • 希望編寫能在不同 AMD 裝置上運行的高效能、可擴展程式碼的開發人員。
  • 希望探索 GPU 程式設計的底層面向並最佳化程式碼效能的程式設計師。
 21 小時

課程分類