感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
簡介
- 什麼是 OpenACC?
- OpenACC 與 OpenCL、CUDA、SYCL 的比較
- OpenACC 功能與架構概覽
- 設定開發環境
入門
- 在 Visual Studio Code 中建立 OpenACC 專案
- 探索專案結構與檔案
- 編譯並執行程式
- 使用 printf 與 fprintf 顯示輸出結果
OpenACC 指示詞與子句
- 了解 OpenACC 指示詞與子句
- 使用平行指示詞建立平行區域
- 使用 kernels 指示詞以進行編譯器管理的平行化
- 使用 loop 指示詞平行化迴圈
- 以 data 指示詞管理資料移動
- 以 update 指示詞同步化資料
- 以 cache 指示詞提升資料重用率
- 以 routine 指示詞建立裝置函式
- 以 wait 指示詞同步化事件
OpenACC API
- 了解 OpenACC API 的角色
- 查詢裝置資訊與功能
- 設定裝置號碼與類型
- 處理錯誤與例外狀況
- 建立並同步化事件
OpenACC 函式庫與互操作性
- 了解 OpenACC 函式庫與互操作性
- 使用數學、隨機數與複雜數列函式庫
- 與其他模型整合(CUDA、OpenMP、MPI)
- 與 GPU 函式庫整合(cuBLAS、cuFFT)
OpenACC 工具
- 了解 OpenACC 在開發中的應用
- 為 OpenACC 程式進行效能分析與除錯
- 使用 PGI 編譯器、NVIDIA Nsight Systems、Allinea Forge 進行效能分析
最佳化
- 影響 OpenACC 程式效能的因素
- 最佳化資料局部性並減少傳輸
- 最佳化迴圈平行化與合併
- 最佳化核心平行化與合併
- 最佳化向量化與自動調參
總結與下一步
最低要求
- 了解 C/C++ 或 Fortran 語言以及平行程式設計的概念
- 具備電腦架構與記憶體階層的基礎知識
- 熟悉指令列工具與程式碼編輯器
受眾
- 希望學習如何使用 OpenACC 為異構裝置撰寫程式並發揮其平行運算能力的開發人員
- 希望編寫可在不同平台與裝置上執行的可攜式且具擴充性的程式碼的開發人員
- 希望探索異構程式設計高階層面,並提升程式生產力的程式設計師
28 小時