聯繫我們

課程簡介

簡介

  • 什麼是 GPU 程式設計?
  • 為什麼要使用 GPU 程式設計?
  • GPU 程式設計的挑戰與權衡是什麼?
  • 有哪些用於 GPU 程式設計的框架與工具?
  • 為您的應用程式選擇合適的框架與工具

OpenCL

  • 什麼是 OpenCL?
  • OpenCL 的優缺點為何?
  • 設定 OpenCL 開發環境
  • 建立一個執行向量加法的基本 OpenCL 程式
  • 使用 OpenCL API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心以及同步執行緒
  • 使用 OpenCL C 語言撰寫在裝置上執行並操作資料的核心
  • 使用 OpenCL 內建函式、變數和函式庫來執行常見任務和操作
  • 使用 OpenCL 記憶體空間,如全域、區域、常數和私有,以最佳化資料傳輸和記憶體存取
  • 使用 OpenCL 執行模型控制定義平行處理的工作項目、工作群組和 ND-範圍
  • 使用 CodeXL 等工具偵錯與測試 OpenCL 程式
  • 利用合併、快取、預取和效能分析等技術最佳化 OpenCL 程式

CUDA

  • 什麼是 CUDA?
  • CUDA 的優缺點為何?
  • 設定 CUDA 開發環境
  • 建立一個執行向量加法的基本 CUDA 程式
  • 使用 CUDA API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心以及同步執行緒
  • 使用 CUDA C/C++ 語言撰寫在裝置上執行並操作資料的核心
  • 使用 CUDA 內建函式、變數和函式庫來執行常見任務和操作
  • 使用 CUDA 記憶體空間,如全域、共用、常數和區域,以最佳化資料傳輸和記憶體存取
  • 使用 CUDA 執行模型控制定義平行處理的執行緒、區塊和網格
  • 使用 CUDA-GDB、CUDA-MEMCHECK 和 NVIDIA Nsight 等工具偵錯與測試 CUDA 程式
  • 利用合併、快取、預取和效能分析等技術最佳化 CUDA 程式

ROCm

  • 什麼是 ROCm?
  • ROCm 的優缺點為何?
  • 設定 ROCm 開發環境
  • 建立一個執行向量加法的基本 ROCm 程式
  • 使用 ROCm API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心以及同步執行緒
  • 使用 ROCm C/C++ 語言撰寫在裝置上執行並操作資料的核心
  • 使用 ROCm 內建函式、變數和函式庫來執行常見任務和操作
  • 使用 ROCm 記憶體空間,如全域、區域、常數和私有,以最佳化資料傳輸和記憶體存取
  • 使用 ROCm 執行模型控制定義平行處理的執行緒、區塊和網格
  • 使用 ROCm Debugger 和 ROCm Profiler 等工具偵錯與測試 ROCm 程式
  • 利用合併、快取、預取和效能分析等技術最佳化 ROCm 程式

HIP

  • 什麼是 HIP?
  • HIP 的優缺點為何?
  • 設定 HIP 開發環境
  • 建立一個執行向量加法的基本 HIP 程式
  • 使用 HIP 語言撰寫在裝置上執行並操作資料的核心
  • 使用 HIP 內建函式、變數和函式庫來執行常見任務和操作
  • 使用 HIP 記憶體空間,如全域、共用、常數和區域,以最佳化資料傳輸和記憶體存取
  • 使用 HIP 執行模型控制定義平行處理的執行緒、區塊和網格
  • 使用 ROCm Debugger 和 ROCm Profiler 等工具偵錯與測試 HIP 程式
  • 利用合併、快取、預取和效能分析等技術最佳化 HIP 程式

比較

  • 比較 OpenCL、CUDA、ROCm 和 HIP 的功能、性能和相容性。
  • 使用基準測試和指標評估 GPU 程式。
  • 學習 GPU 程式設計的實務建議與技巧。
  • 探索 GPU 程式設計的當前與未來趨勢及挑戰。

總結與後續步驟

最低要求

  • 具備 C/C++ 語言及平行程式設計概念的基礎知識
  • 基本的電腦架構與記憶體階層知識
  • 熟悉命令列工具和程式碼編輯器

受眾對象

  • 希望學習 GPU 程式設計基礎知識,以及開發 GPU 應用程式主要框架與工具的開發人員。
  • 希望撰寫可在不同平台和裝置上運行的可移植且具有擴展性的程式碼的開發人員。
  • 希望探索 GPU 程式設計的好處、挑戰及最佳化方法的程式設計師。
 21 小時

人數


每位參與者的報價

即將到來的課程

課程分類