感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。        
        
        
            感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。        
    課程簡介
介紹
- 什麼是OpenCL?
- OpenCL vs CUDA vs SYCL
- OpenCL功能和架構概述
- 設置開發環境
入門
- 使用Visual Studio Code創建新的OpenCL項目
- 探索項目結構和文件
- 編譯並運行程序
- 使用printf和fprintf顯示輸出
OpenCL API
- 理解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程序中的常見錯誤和bug
- 使用Visual Studio Code調試器檢查變量、斷點、調用棧等
- 使用CodeXL在AMD設備上調試和分析OpenCL程序
- 使用Intel VTune在Intel設備上調試和分析OpenCL程序
- 使用NVIDIA Nsight在NVIDIA設備上調試和分析OpenCL程序
優化
- 理解影響OpenCL程序性能的因素
- 使用OpenCL向量數據類型和向量化技術提高算術吞吐量
- 使用OpenCL循環展開和循環平鋪技術減少控制開銷並增加局部性
- 使用OpenCL局部內存和局部內存函數優化內存訪問和帶寬
- 使用OpenCL性能分析和性能分析工具測量並改進執行時間和資源利用率
總結與下一步
最低要求
- 瞭解C/C++語言和並行編程概念
- 具備計算機架構和內存層次結構的基本知識
- 有使用命令行工具和代碼編輯器的經驗
受衆
- 希望學習如何使用OpenCL編程異構設備並利用其並行性的開發者
- 希望編寫可在不同平臺和設備上運行的便攜且可擴展代碼的開發者
- 希望探索異構編程的低級方面並優化代碼性能的程序員
             28 時間:
        
        
