聯繫我們

課程簡介

簡介

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

OpenCL

  • OpenCL 是什麼?
  • OpenCL 的優點和缺點為何?
  • 設定 OpenCL 的開發環境
  • 建立執行向量相加的基本 OpenCL 程式
  • 使用 OpenCL API 查詢裝置資訊、配置與釋放裝置記憶體、複製主機與裝置之間的資料、啟動核心以及同步執行緒
  • 使用 OpenCL C 語言編寫在裝置上執行的核心程式碼以處理資料
  • 使用 OpenCL 內建函式、變數和函式庫完成常見任務和運算
  • 使用 OpenCL 記憶體空間,如全域、區域、常數和私有等,最佳化資料傳輸和記憶體存取
  • 使用 OpenCL 執行模型控制定義平行性的工作項目、工作群組和 ND-ranges
  • 使用 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 程式

比較分析

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

總結與下一步

最低要求

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

目標受眾

  • 希望學習如何使用不同的框架進行 GPU 程式設計,並比較其功能、效能和相容性的開發人員。
  • 希望編寫能在不同平臺和裝置上運行的可攜式和可擴展程式碼的開發人員。
  • 想要探索 GPU 程式設計與最佳化的權衡與挑戰的程式設計師。
 28 小時

課程分類