Course Code: gpuprogcuda
Duration: 28 hours
Prerequisites:
  • 瞭解 C/C++ 語言和並行程式設計概念
  • 計算機體系結構和記憶體層次結構的基礎知識
  • 具有命令行工具和代碼編輯器的經驗

觀眾

  • 希望學習如何使用 CUDA 對 NVIDIA GPU 進行程式設計並利用其並行性的開發人員
  • 希望編寫可在不同 CUDA 設備上運行的高性能和可擴展代碼的開發人員
  • 希望探索 GPU 程式設計的低級方面並優化其代碼性能的程式師
Overview:

CUDA 是 GPU 程式設計的開放標準,它使代碼能夠在 NVIDIA GPU 上運行,NVIDIA GPU 廣泛用於高性能計算、人工智慧 (AI)、遊戲和圖形。CUDA 向程式師公開硬體細節,並完全控制並行化過程。但是,這也需要對設備架構、記憶體模型、執行模型和優化技術有很好的理解。

這種由講師指導的現場培訓(在線或現場)面向希望使用 CUDA 對 NVIDIA GPU 進行程式設計並利用其並行性的初級到中級開發人員。

在本次培訓結束時,參與者將能夠:

  • 設置一個開發環境,其中包括 CUDA 工具包、NVIDIA GPU 和 Visual Studio 代碼。
  • 創建一個基本的 CUDA 程式,該程式在 GPU 上執行向量加法並從 GPU 記憶體中檢索結果。
  • 使用 CUDA API 查詢設備資訊、分配和釋放設備記憶體、在主機和設備之間複製數據、啟動內核和同步線程。
  • 使用 CUDA C/C++ 語言編寫在 GPU 上執行並操作數據的內核。
  • 使用 CUDA 內建函數、變數和庫來執行常見任務和操作。
  • 使用 CUDA 記憶體空間(例如全域、共用、常量和本地)來優化數據傳輸和記憶體訪問。
  • 使用 CUDA 執行模型來控制定義並行度的線程、塊和網格。
  • 使用 CUDA-GDB、CUDA-MEMCHECK 和 NVIDIA Nsight 等工具調試和測試 CUDA 程式。
  • 使用合併、緩存、預取和分析等技術優化 CUDA 程式。

課程形式

  • 互動講座和討論。
  • 大量的練習和練習。
  • 在即時實驗室環境中動手實施。

課程自定義選項

  • 要申請本課程的定製培訓,請聯繫我們進行安排。
  • 96% de clients satisfaits
Course Outline:

介紹

  • 什麼是CUDA?
  • CUDA 與 OpenCL 與 SYCL
  • CUDA 功能和架構概述
  • 設置開發環境

開始

  • 使用 Visual Studio 代碼創建新的 CUDA 專案
  • 瀏覽項目結構和檔
  • 編譯和運行程式
  • 使用 printf 和 fprintf 顯示輸出

CUDA API

  • 瞭解 CUDA API 在主機程式中的作用
  • 使用 CUDA API 查詢設備資訊和功能
  • 使用 CUDA API 分配和釋放設備記憶體
  • 使用 CUDA API 在主機和設備之間複製數據
  • 使用 CUDA API 啟動內核和同步線程
  • 使用 CUDA API 處理錯誤和異常

CUDA C/C++

  • 瞭解 CUDA C/C++ 在設備程式中的作用
  • 使用 CUDA C/C++ 編寫在 GPU 上執行的內核並操作數據
  • 使用 CUDA C/C++ 資料類型、限定符、運算符和表示式
  • 使用 CUDA C/C++ 內置函數,如 math、atomic、warp 等。
  • 使用 CUDA C/C++ 內置變數,如 threadIdx、blockIdx、blockDim 等。
  • 使用 CUDA C/C++ 庫,例如 cuBLAS、cuFFT、cuRAND 等。

CUDA 記憶體模型

  • 瞭解主機和設備記憶體模型之間的差異
  • 使用 CUDA 記憶體空間,例如全域、共用、常量和本地
  • 使用 CUDA 記憶體物件,例如指標、陣列、紋理和表面
  • 使用CUDA記憶體訪問模式,如唯讀、只寫、讀寫等。
  • 使用 CUDA 記憶體一致性模型和同步機制

CUDA 執行模型

  • 瞭解主機和設備執行模型之間的區別
  • 使用 CUDA 線程、塊和網格來定義並行度
  • 使用 CUDA 線程函數,例如 threadIdx、blockIdx、blockDim 等。
  • 使用 CUDA 塊函數,例如 __syncthreads、__threadfence_block 等。
  • 使用 CUDA 網格函數,例如 gridDim、gridSync、協作組等。

調試

  • 瞭解 CUDA 程式中的常見錯誤和錯誤
  • 使用 Visual Studio 代碼調試器檢查變數、斷點、調用堆疊等。
  • 在 Linux 上使用 CUDA-GDB 調試 CUDA 程式
  • 使用 CUDA-MEMCHECK 檢測記憶體錯誤和洩漏
  • 使用 NVIDIA Nsight 在 Windows 上調試和分析 CUDA 程式

優化

  • 了解影響 CUDA 程式性能的因素
  • 使用 CUDA 合併技術提高記憶體輸送量
  • 使用 CUDA 快取技術來減少記憶體延遲
  • 使用 CUDA 共用記憶體和本地記憶體技術優化記憶體訪問和頻寬
  • 使用 CUDA 分析和分析工具來衡量和改進執行時間和資源利用率

摘要和後續步驟

Sites Published:

United Arab Emirates - GPU Programming with CUDA

Qatar - GPU Programming with CUDA

Egypt - GPU Programming with CUDA

Saudi Arabia - GPU Programming with CUDA

South Africa - GPU Programming with CUDA

Brasil - GPU Programming with CUDA

Canada - GPU Programming with CUDA

中国 - GPU Programming with CUDA

香港 - GPU Programming with CUDA

澳門 - GPU Programming with CUDA

台灣 - GPU Programming with CUDA

USA - GPU Programming with CUDA

Österreich - GPU Programming with CUDA

Schweiz - GPU Programming with CUDA

Deutschland - GPU Programming with CUDA

Czech Republic - GPU Programming with CUDA

Denmark - GPU Programming with CUDA

Estonia - GPU Programming with CUDA

Finland - GPU Programming with CUDA

Greece - GPU Programming with CUDA

Magyarország - GPU Programming with CUDA

Ireland - GPU Programming with CUDA

Luxembourg - GPU Programming with CUDA

Latvia - GPU Programming with CUDA

España - GPU Programming with CUDA

Italia - GPU Programming with CUDA

Lithuania - GPU Programming with CUDA

Nederland - GPU Programming with CUDA

Norway - GPU Programming with CUDA

Portugal - GPU Programming with CUDA

România - GPU Programming with CUDA

Sverige - GPU Programming with CUDA

Türkiye - GPU Programming with CUDA

Malta - GPU Programming with CUDA

Belgique - GPU Programming with CUDA

France - GPU Programming with CUDA

日本 - GPU Programming with CUDA

Australia - GPU Programming with CUDA

Malaysia - GPU Programming with CUDA

New Zealand - GPU Programming with CUDA

Philippines - GPU Programming with CUDA

Singapore - GPU Programming with CUDA

Thailand - GPU Programming with CUDA

Vietnam - GPU Programming with CUDA

India - GPU Programming with CUDA

Argentina - GPU Programming with CUDA

Chile - GPU Programming with CUDA

Costa Rica - GPU Programming with CUDA

Ecuador - GPU Programming with CUDA

Guatemala - GPU Programming with CUDA

Colombia - GPU Programming with CUDA

México - GPU Programming with CUDA

Panama - GPU Programming with CUDA

Peru - GPU Programming with CUDA

Uruguay - GPU Programming with CUDA

Venezuela - GPU Programming with CUDA

Polska - GPU Programming with CUDA

United Kingdom - GPU Programming with CUDA

South Korea - GPU Programming with CUDA

Pakistan - GPU Programming with CUDA

Sri Lanka - GPU Programming with CUDA

Bulgaria - GPU Programming with CUDA

Bolivia - GPU Programming with CUDA

Indonesia - GPU Programming with CUDA

Kazakhstan - GPU Programming with CUDA

Moldova - GPU Programming with CUDA

Morocco - GPU Programming with CUDA

Tunisia - GPU Programming with CUDA

Kuwait - GPU Programming with CUDA

Oman - GPU Programming with CUDA

Slovakia - GPU Programming with CUDA

Kenya - GPU Programming with CUDA

Nigeria - GPU Programming with CUDA

Botswana - GPU Programming with CUDA

Slovenia - GPU Programming with CUDA

Croatia - GPU Programming with CUDA

Serbia - GPU Programming with CUDA

Bhutan - GPU Programming with CUDA

Nepal - GPU Programming with CUDA

Uzbekistan - GPU Programming with CUDA