NVIDIA 認證課程

使用多個 GPU 加速 CUDA C++ 應用程式
Fundamentals of Accelerated Computing with CUDA C/C++

在高效能運算、資料科學、生物資訊學和深度學習領域中,需要大量運算的 CUDA® C++ 應用程式可透過使用多個 GPU 加速,增加吞吐量和/或縮短總執行時間。與並行的重疊運算和記憶體傳輸搭配使用時,可以運用多個 GPU 擴充運算,無須增加記憶體傳輸的成本。對於在雲端或在 NVIDIA DGX™ 系統上擁有多 GPU 伺服器的組織,這些技術都能讓你從 GPU 加速的應用程式達到最佳效能。而在跨多個節點擴充應用程式之前,重要的是要先實作這些單一節點的多 GPU 技術。

此實作坊將介紹如何編寫 CUDA C++ 應用程式,藉以在單一節點中有效且正確運用所有可用的 GPU、大幅提升應用程式的效能,並且以最符合成本效益的方式使用多個 GPU 的系統。

學習目標

參加本實作坊可學會:

  • 同時使用 CUDA Streams 將記憶體搬移與 GPU 運算重疊
  • 在單一節點上運用所有可用的 GPU,進而在所有可用的 GPU 上擴充工作負載
  • 將複製/運算重疊與多個 GPU 搭配使用
  • 利用 NVIDIA Nsight™ System 視覺分析工具時間軸,觀察改善的機會以及實作坊中所涵蓋之技術造成的影響

實作坊大綱

時程 程序項目
15 分鐘   概覽
  • 認識講師
  • 在 learn.nvidia.com/join 建立帳號
15 分鐘   使用 JupyterLab
  • 熟悉 GPU 加速的互動式 JupyterLab 環境。
15 分鐘   應用程式概覽
  • 瞭解單一 GPU CUDA C++ 應用程式以開始課程。
  • 觀察在 Nsight System 上單一 GPU CUDA C++ 應用程式目前的效能表現。
90 分鐘   CUDA Stream 介紹
  • 瞭解控制並行 CUDA Stream 行為的規則。
  • 使用多個 CUDA Stream 來同步執行 H2D/D2H 的記憶體傳輸。
  • 運用多個 CUDA Stream 啟動 GPU 核心。
  • 在 Nsight System 視覺分析工具時間軸檢視表中觀察多個 Stream。
60 分鐘 休息時間
90 分鐘   使用 CUDA Stream 複製/運算重疊
  • 瞭解有效執行複製/運算重疊的重要概念。
  • 探索強大的索引策略,藉以在應用程式中靈活運用複製/運算重疊。
  • 重構單一 GPU 的 CUDA C++ 應用程式以執行複製/運算重疊。
  • 查看 Nsight Systems 視覺分析工具時間軸中的複製/運算重疊。
60 分鐘   在 CUDA C++ 使用多個 GPU
  • 瞭解在採用 CUDA C++ 的單一節點上有效使用多個 GPU 的重要概念。
  • 探索強大的索引策略,藉以在應用程式中靈活運用多個 GPU。
  • 重構單一 GPU 的 CUDA C++ 應用程式以運用多個 GPU。
  • 在 Nsight Systems 視覺分析工具時間軸中查看多個 GPU 的使用情況。
15 分鐘 休息時間
60 分鐘   使用多個 GPU 複製/運算重疊
  • 瞭解在多個 GPU 上有效執行複製/運算重疊的重要概念。
  • 探索強大的索引策略,藉以在多個 GPU 上靈活運用複製/運算重疊。
  • 重構單一 GPU 的 CUDA C++ 應用程式,藉以在多個 GPU 上執行複製/運算重疊。
  • 觀察在多個 GPU 上複製/運算重疊為效能帶來的益處。
  • 在 Nsight Systems 視覺分析工具時間軸中,查看多個 GPU 上的複製/運算重疊。
30 分鐘 課程測驗
30 分鐘   最後回顧
  • 回顧學習重點。
  • 學習從 DLI 基礎環境容器建立自己的訓練環境。
  • 填寫實作坊調查問卷。

實作坊詳情

時間: 8 小時

必備基礎能力:

  • CUDA C/C++ 應用程式的專業程式設計經驗,包括使用 nvcc 編譯器、啟動核心、網格跨步循環、H2D/D2H 記憶體傳輸,以及 CUDA 錯誤訊息處理
  • 熟悉 Linux 命令列
  • 使用 makefile 編寫 C/C++ 程式碼的經驗

技術: CUDA C++、Nsight System

認證證書: 完成測驗後,參與者將會收到 NVIDIA DLI 認證證書,證明他們具有相關主題的能力,支援其專業職涯成長。