感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
簡介
- 什麼是 GPU 程式設計?
- 為什麼要使用 GPU 程式設計?
- GPU 程式設計的挑戰與權衡取捨為何?
- 有哪些 GPU 程式設計的架構?
- 為您的應用程式選擇合適的架構
OpenCL
- 什麼是 OpenCL?
- OpenCL 的優勢與劣勢為何?
- 為 OpenCL 設定開發環境
- 建立執行向量加法的基礎 OpenCL 程式
- 使用 OpenCL API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心(kernels)以及同步線程
- 使用 OpenCL C 語言撰寫在裝置上執行的核心並操作資料
- 使用 OpenCL 內建函數、變數和程式庫執行常見任務與運算
- 使用 OpenCL 記憶體空間(如全域、區域、常數和私有空間)來最佳化資料傳輸與記憶體存取
- 使用 OpenCL 執行模型控制定義平行性的工作項目(work-items)、工作群組(work-groups)和 ND-ranges
- 使用 CodeXL 等工具進行 OpenCL 程式的除錯與測試
- 使用組合式記憶體存取、快取、預取和效能剖析(profiling)等技術來最佳化 OpenCL 程式
CUDA
- 什麼是 CUDA?
- CUDA 的優勢與劣勢為何?
- 為 CUDA 設定開發環境
- 建立執行向量加法的基礎 CUDA 程式
- 使用 CUDA API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心(kernels)以及同步線程
- 使用 CUDA C/C++ 語言撰寫在裝置上執行的核心並操作資料
- 使用 CUDA 內建函數、變數和程式庫執行常見任務與運算
- 使用 CUDA 記憶體空間(如全域、共用、常數和區域空間)來最佳化資料傳輸與記憶體存取
- 使用 CUDA 執行模型控制定義平行性的線程、區塊和網格
- 使用 CUDA-GDB、CUDA-MEMCHECK 和 NVIDIA Nsight 等工具進行 CUDA 程式的除錯與測試
- 使用組合式記憶體存取、快取、預取和效能剖析(profiling)等技術來最佳化 CUDA 程式
ROCm
- 什麼是 ROCm?
- ROCm 的優勢與劣勢為何?
- 為 ROCm 設定開發環境
- 建立執行向量加法的基礎 ROCm 程式
- 使用 ROCm API 查詢裝置資訊、配置與釋放裝置記憶體、在主機與裝置間複製資料、啟動核心(kernels)以及同步線程
- 使用 ROCm C/C++ 語言撰寫在裝置上執行的核心並操作資料
- 使用 ROCm 內建函數、變數和程式庫執行常見任務與運算
- 使用 ROCm 記憶體空間(如全域、區域、常數和私有空間)來最佳化資料傳輸與記憶體存取
- 使用 ROCm 執行模型控制定義平行性的線程、區塊和網格
- 使用 ROCm Debugger 和 ROCm Profiler 等工具進行 ROCm 程式的除錯與測試
- 使用組合式記憶體存取、快取、預取和效能剖析(profiling)等技術來最佳化 ROCm 程式
比較
- 比較 OpenCL、CUDA 和 ROCm 的功能、效能與相容性
- 使用基準測試與指標評估 GPU 程式
- 學習 GPU 程式設計的最佳實踐與技巧
- 探討 GPU 程式設計的當前與未來趨勢及挑戰
摘要與後續步驟
最低要求
- 具備 C/C++ 語言與平行程式設計概念的知識
- 基本的電腦架構與記憶體階層概念
- 有命令列工具與程式碼編輯器的使用經驗
適用對象
- 希望學習如何使用不同架構進行 GPU 程式設計,並比較其功能、效能與相容性的開發者。
- 希望編寫可移植且具有擴展性,能在不同平臺和裝置上執行的程式碼的開發者。
- 希望探索 GPU 程式設計與最佳化的權衡取捨與挑戰的程式設計師。
28 小時