聯繫我們

課程簡介

介紹

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

OpenCL

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

CUDA

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

ROCm

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

HIP

  • 什麼是 HIP?
  • HIP 的優勢與缺點是什麼?
  • 設定 HIP 開發環境
  • 建立執行向量加法的基礎 HIP 程式
  • 使用 HIP 語言編寫在裝置上執行並處理資料的核心
  • 使用 HIP 內建函式、變數和函式庫執行常見任務和操作
  • 使用 HIP 記憶體空間(如全域、共享、常數和局部),最佳化資料傳輸和記憶體存取
  • 使用 HIP 執行模型控制定義平行運算的線程、區塊和網格
  • 使用 ROCm Debugger 和 ROCm Profiler 等工具除錯和測試 HIP 程式
  • 使用合并(coalescing)、快取(caching)、預取(prefetching)和分析(profiling)等技術最佳化 HIP 程式

比較

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

總結與後續步驟

最低要求

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

適用對象

  • 希望學習 GPU 程式設計基礎知識,以及開發 GPU 應用程式主要框架與工具的開發人員。
  • 希望撰寫可在不同平台與裝置上執行的可攜式與可擴展程式碼的開發人員。
  • 希望探索 GPU 程式設計的優勢、挑戰及最佳化的程式設計師。
 21 小時

課程分類