聯繫我們

課程簡介

簡介

  • 什麼是 GPU 程式設計?
  • 為什麼要使用 GPU 程式設計?
  • GPU 程式設計的挑戰與權衡取捨為何?
  • 有哪些 GPU 程式設計的架構?
  • 為您的應用程式選擇合適的架構

OpenCL

  • 什麼是 OpenCL?
  • OpenCL 的優勢與劣勢為何?
  • 為 OpenCL 設定開發環境
  • 建立執行向量加法的基礎 OpenCL 程式
  • 使用 OpenCL API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心(kernels)以及同步線程
  • 使用 OpenCL C 語言撰寫在裝置上執行的核心並操作資料
  • 使用 OpenCL 內建函數、變數和程式庫執行常見任務與運算
  • 使用 OpenCL 記憶體空間(如全域、區域、常數和私有空間)來最佳化資料傳輸與記憶體存取
  • 使用 OpenCL 執行模型控制定義平行性的工作項目(work-items)、工作群組(work-groups)和 ND-ranges
  • 使用 CodeXL 等工具進行 OpenCL 程式的除錯與測試
  • 使用組合式記憶體存取、快取、預取和效能剖析(profiling)等技術來最佳化 OpenCL 程式

CUDA

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

ROCm

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

比較

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

摘要與後續步驟

最低要求

  • 具備 C/C++ 語言與平行程式設計概念的知識
  • 基本的電腦架構與記憶體階層概念
  • 有命令列工具與程式碼編輯器的使用經驗

適用對象

  • 希望學習如何使用不同架構進行 GPU 程式設計,並比較其功能、效能與相容性的開發者。
  • 希望編寫可移植且具有擴展性,能在不同平臺和裝置上執行的程式碼的開發者。
  • 希望探索 GPU 程式設計與最佳化的權衡取捨與挑戰的程式設計師。
 28 小時

人數


每位參與者的報價

即將到來的課程

課程分類