聯繫我們

課程簡介

簡介

  • 什麼是 OpenACC?
  • OpenACC 與 OpenCL、CUDA、SYCL 的比較
  • OpenACC 功能與架構概述
  • 配置開發環境

快速上手

  • 在 Visual Studio Code 中建立 OpenACC 項目
  • 探索項目結構與文件
  • 編譯並運行程序
  • 使用 printf 和 fprintf 顯示輸出

OpenACC 指令和子句

  • 理解 OpenACC 指令和子句
  • 使用平行指令建立平行區域
  • 使用內核指令進行編譯器管理的平行運算
  • 使用循環指令實現循環平行化
  • 使用數據指令管理數據遷移
  • 使用更新指令同步數據
  • 通過快取指令提高數據重用率
  • 使用常規指令創建設備函數
  • 使用等待指令同步事件

OpenACC API

  • 理解 OpenACC API 的作用
  • 查詢設備信息及能力
  • 設置設備數量與類型
  • 處理錯誤和異常
  • 創建並同步事件

OpenACC 庫與互操作性

  • 理解 OpenACC 庫與互操作性
  • 使用數學、隨機數及複雜庫
  • 整合其他模型(CUDA、OpenMP、MPI)
  • 與 GPU 庫集成(cuBLAS、cuFFT)

OpenACC 工具

  • 理解開發中的 OpenACC 工具
  • 分析及除錯 OpenACC 程序
  • 使用 PGI Compiler、NVIDIA Nsight Systems、Allinea Forge 進行性能分析

優化

  • 影響 OpenACC 程序性能的相關因素
  • 優化數據局部性並減少遷移
  • 優化循環平行化與融合
  • 優化內核平行化與融合
  • 優化向量化及自動調參

總結和下一步

最低要求

  • 理解 C/C++ 或 Fortran 語言及平行編程概念
  • 具備計算機架構及內存層次結構的基本知識
  • 熟悉命令行工具和代碼編輯器

受眾

  • 希望學習如何使用 OpenACC 程式設計異構設備並發揮其平行運算能力的開發者
  • 希望編寫可在不同平台及設備上運行的可移植且具擴展性的代碼的開發者
  • 希望探索異構編程的高級層面並優化生產力的程式設計師
 28 小時

課程分類