課程簡介

介紹

  • 什麼是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調試器和ROCm分析器等工具調試和測試ROCm程序
  • 使用合併、緩存、預取和分析等技術優化ROCm程序

比較

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

總結與下一步

最低要求

  • 瞭解C/C++語言和並行編程概念
  • 具備計算機架構和內存層次結構的基礎知識
  • 有使用命令行工具和代碼編輯器的經驗

受衆

  • 希望學習如何使用不同框架進行GPU編程並比較其特性、性能和兼容性的開發者
  • 希望編寫可在不同平臺和設備上運行的便攜且可擴展代碼的開發者
  • 希望探索GPU編程和優化的權衡與挑戰的程序員
 28 時間:

課程分類