課程簡介

介紹

  • 什麼是OpenCL?
  • OpenCL 與 CUDA 與 SYCL
  • OpenCL 功能和體系結構概述
  • 設置開發環境

開始

  • 使用 Visual Studio 代碼創建新的 OpenCL 專案
  • 瀏覽項目結構和檔
  • 編譯和運行程式
  • 使用 printf 和 fprintf 顯示輸出

OpenCL 原料葯

  • 瞭解 OpenCL API 在主機程式中的作用
  • 使用 OpenCL API 查詢設備資訊和功能
  • 使用 OpenCL API 建立上下文、命令佇列、緩衝區、內核和事件
  • 使用 OpenCL API 對命令進行排隊,例如讀取、寫入、複製、映射、取消映射、執行和等待
  • 使用 OpenCL API 處理錯誤和異常

OpenCL C

  • 瞭解 OpenCL C 在設備程式中的作用
  • 使用 OpenCL C 編寫在設備上執行並操作數據的內核
  • 使用 OpenCL C 數據類型、限定符、運算符和表達式
  • 使用 OpenCL C 內置函數,如數學、幾何、關係等。
  • 使用 OpenCL C 擴展和庫,例如 atomic、image、cl_khr_fp16 等。

OpenCL 記憶體模型

  • 瞭解主機和設備記憶體模型之間的差異
  • 使用 OpenCL 記憶體空間,例如全域、局部、常量和專用
  • 使用 OpenCL 記憶體物件,例如緩衝區、圖像和管道
  • 使用 OpenCL 記憶體訪問模式,如只讀、只寫、讀寫等。
  • 使用 OpenCL 記憶體一致性模型和同步機制

OpenCL 執行模型

  • 瞭解主機和設備執行模型之間的區別
  • 使用 OpenCL 工作項、工作組和 ND 範圍定義並行度
  • 使用 OpenCL 工作項函數,例如 get_global_id、get_local_id、get_group_id 等。
  • 使用 OpenCL 工作組函數,例如 barrier、work_group_reduce、work_group_scan 等。
  • 使用 OpenCL 設備功能,如 get_num_groups、get_global_size、get_local_size 等。

調試

  • 瞭解 OpenCL 程式中的常見錯誤和錯誤
  • 使用 Visual Studio 代碼調試器檢查變數、斷點、調用堆疊等。
  • 使用 CodeXL 調試和分析 AMD 設備上的 OpenCL 個程式
  • 使用英特爾 VTune 調試和分析英特爾裝置上的 OpenCL 個程式
  • 使用 NVIDIA Nsight 調試和分析 NVIDIA 設備上的 OpenCL 個程式

優化

  • 了解影響 OpenCL 程式性能的因素
  • 使用 OpenCL 向量數據類型和向量化技術提高算術輸送量
  • 使用 OpenCL 循環展開和迴圈平鋪技術來減少控制開銷並增加局部性
  • 使用 OpenCL 本地記憶體和本地記憶體函數來優化記憶體訪問和頻寬
  • 使用 OpenCL 分析和分析工具來衡量和改進執行時間和資源利用率

摘要和後續步驟

最低要求

  • 瞭解 C/C++ 語言和並行程式設計概念
  • 計算機體系結構和記憶體層次結構的基礎知識
  • 具有命令行工具和代碼編輯器的經驗

觀眾

  • 希望學習如何使用 OpenCL 對異構設備進行程式設計並利用其並行性的開發人員
  • 希望編寫可在不同平臺和設備上運行的可移植和可擴展代碼的開發人員
  • 希望探索異構程式設計的低級方面並優化其代碼性能的程式師
 28 時間:

人數



每位參與者的報價

客戶評論 (1)

相關課程

課程分類