- 瞭解 C/C++ 語言和並行程式設計概念
- 計算機體系結構和記憶體層次結構的基礎知識
- 具有命令行工具和代碼編輯器的經驗
觀眾
- 希望學習如何使用 CUDA 對 NVIDIA GPU 進行程式設計並利用其並行性的開發人員
- 希望編寫可在不同 CUDA 設備上運行的高性能和可擴展代碼的開發人員
- 希望探索 GPU 程式設計的低級方面並優化其代碼性能的程式師
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
介紹
- 什麼是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 分析和分析工具來衡量和改進執行時間和資源利用率
摘要和後續步驟
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