- 瞭解 C/C++ 語言和並行程式設計概念
- 計算機體系結構和記憶體層次結構的基礎知識
- 具有命令行工具和代碼編輯器的經驗
觀眾
- 希望學習 GPU 程式設計基礎知識以及開發GPU應用程式的主要框架和工具的開發人員
- 希望編寫可在不同平臺和設備上運行的可移植和可擴展代碼的開發人員
- 希望探索 GPU 程式設計和優化的好處和挑戰的程式師
GPU 程式設計是一種利用 GPU 的並行處理能力來加速需要高性能計算的應用程式的技術,例如人工智慧、遊戲、圖形和科學計算。有幾種框架和工具可以實現 GPU 程式設計,每種框架和工具都有自己的優點和缺點。一些最受歡迎的是 OpenCL、CUDA、ROCm 和 HIP。
這種以講師為主導的現場培訓(現場或遠端)針對的是希望學習GPU程式設計基礎知識以及開發GPU應用程式的主要框架和工具的初級到中級開發人員。
- 在培訓結束時,參與者將能夠:
瞭解 CPU 和 GPU 計算之間的區別以及 GPU 程式設計的好處和挑戰。 - 為他們的 GPU 應用程式選擇正確的框架和工具。
- 創建一個基本的 GPU 程式,該程式使用一個或多個框架和工具執行向量加法。
- 使用相應的 API、語言和庫來查詢設備資訊、分配和解除分配設備記憶體、在主機和設備之間複製數據、啟動內核以及同步線程。
- 使用相應的記憶體空間(如全域、本地、常量和專用)來優化數據傳輸和記憶體訪問。
- 使用相應的執行模型(如工作項、工作組、線程、塊和網格)來控制並行度。
- 使用 CodeXL 、 CUDA-GDB 、 CUDA-MEMCHECK 和 NVIDIA Nsight 等工具調試和測試 GPU 程式。
- 使用合併、緩存、預取和分析等技術優化 GPU 程式。
課程形式
- 互動講座和討論。
- 大量的練習和練習。
- 在現場實驗室環境中動手實施。
課程自定義選項
- 如需申請本課程的定製培訓,請聯繫我們進行安排。
介紹
- 什麼是 GPU 程式設計?
- 為什麼要使用 GPU 程式設計?
- GPU 程式設計的挑戰和權衡是什麼?
- GPU 程式設計的框架和工具是什麼?
- 為您的應用程式選擇正確的框架和工具
OpenCL
- 什麼是OpenCL?
- OpenCL的優點和缺點是什麼?
- 為 OpenCL 設置開發環境
- 創建一個執行向量加法的基本 OpenCL 程式
- 使用 OpenCL API 查詢設備資訊、分配和釋放設備記憶體、在主機和設備之間複製數據、啟動內核和同步線程
- 使用 OpenCL C 語言編寫在設備上執行的內核並操作數據
- 使用 OpenCL 內置函數、變數和庫執行常見任務和操作
- 使用 OpenCL 記憶體空間(例如全域、本地、常量和專用)來優化數據傳輸和記憶體訪問
- 使用 OpenCL 執行模型來控制定義並行度的工作項、工作組和 ND 範圍
- 使用 CodeXL 等工具調試和測試 OpenCL 個程式
- 使用合併、緩存、預取和分析等技術優化 OpenCL 個程式
CUDA的
- 什麼是CUDA?
- CUDA的優缺點是什麼?
- 設置 CUDA 的開發環境
- 創建一個執行向量加法的基本 CUDA 程式
- 使用 CUDA API 查詢設備資訊、分配和釋放設備記憶體、在主機和設備之間複製數據、啟動內核和同步線程
- 使用 CUDA C/C++ 語言編寫在設備上執行的內核並操作數據
- 使用 CUDA 內建函數、變數和庫執行常見任務和操作
- 使用 CUDA 記憶體空間(例如全域、共用、常量和本地)來優化數據傳輸和記憶體訪問
- 使用 CUDA 執行模型來控制定義並行度的線程、塊和網格
- 使用 CUDA-GDB、CUDA-MEMCHECK 和 NVIDIA Nsight 等工具調試和測試 CUDA 程式
- 使用合併、緩存、預取和分析等技術優化 CUDA 程式
中華民國
- 什麼是ROCm?
- ROCm的優缺點是什麼?
- 為 ROCm 設定開發環境
- 創建執行向量加法的基本 ROCm 程式
- 使用 ROCm API 查詢設備資訊、分配和釋放裝置記憶體、在主機和設備之間複製數據、啟動內核和同步線程
- 使用 ROCm C/C++ 語言編寫在設備上執行的內核並操作數據
- 使用 ROCm 內建函數、變數和庫執行常見任務和操作
- 使用 ROCm 記憶體空間(如全域、本地、常量和專用)來優化數據傳輸和記憶體訪問
- 使用 ROCm 執行模型來控制定義並行度的線程、塊和網格
- 使用 ROCm Debugger 和 ROCm Profiler 等工具調試和測試 ROCm 程式
- 使用合併、緩存、預取和分析等技術優化 ROCm 程式
臀部
- 什麼是HIP?
- HIP的優點和缺點是什麼?
- 設置 HIP 的開發環境
- 創建執行向量加法的基本 HIP 程式
- 使用 HIP 語言編寫在設備上執行的內核並操作數據
- 使用 HIP 內置函數、變數和庫執行常見任務和操作
- 使用 HIP 記憶體空間(如全域、共用、常量和本地)來優化數據傳輸和記憶體訪問
- 使用 HIP 執行模型來控制定義並行度的線程、塊和網格
- 使用 ROCm Debugger 和 ROCm Profiler 等工具調試和測試 HIP 程式
- 使用合併、緩存、預取和分析等技術優化 HIP 程式
比較
- 比較 OpenCL、CUDA、ROCm 和 HIP 的功能、性能和相容性
- 使用基準和指標評估 GPU 個程式
- 學習 GPU 程式設計的最佳實踐和技巧
- 探索 GPU 程式設計的當前和未來趨勢和挑戰
總結和下一步
United Arab Emirates - Introduction to GPU Programming
Qatar - Introduction to GPU Programming
Egypt - Introduction to GPU Programming
Saudi Arabia - Introduction to GPU Programming
South Africa - Introduction to GPU Programming
Brasil - Introduction to GPU Programming
Canada - Introduction to GPU Programming
中国 - Introduction to GPU Programming
香港 - Introduction to GPU Programming
澳門 - Introduction to GPU Programming
台灣 - Introduction to GPU Programming
USA - Introduction to GPU Programming
Österreich - Introduction to GPU Programming
Schweiz - Introduction to GPU Programming
Deutschland - Introduction to GPU Programming
Czech Republic - Introduction to GPU Programming
Denmark - Introduction to GPU Programming
Estonia - Introduction to GPU Programming
Finland - Introduction to GPU Programming
Greece - Introduction to GPU Programming
Magyarország - Introduction to GPU Programming
Ireland - Introduction to GPU Programming
Luxembourg - Introduction to GPU Programming
Latvia - Introduction to GPU Programming
España - Introduction to GPU Programming
Italia - Introduction to GPU Programming
Lithuania - Introduction to GPU Programming
Nederland - Introduction to GPU Programming
Norway - Introduction to GPU Programming
Portugal - Introduction to GPU Programming
România - Introduction to GPU Programming
Sverige - Introduction to GPU Programming
Türkiye - Introduction to GPU Programming
Malta - Introduction to GPU Programming
Belgique - Introduction to GPU Programming
France - Introduction to GPU Programming
日本 - Introduction to GPU Programming
Australia - Introduction to GPU Programming
Malaysia - Introduction to GPU Programming
New Zealand - Introduction to GPU Programming
Philippines - Introduction to GPU Programming
Singapore - Introduction to GPU Programming
Thailand - Introduction to GPU Programming
Vietnam - Introduction to GPU Programming
India - Introduction to GPU Programming
Argentina - Introduction to GPU Programming
Chile - Introduction to GPU Programming
Costa Rica - Introduction to GPU Programming
Ecuador - Introduction to GPU Programming
Guatemala - Introduction to GPU Programming
Colombia - Introduction to GPU Programming
México - Introduction to GPU Programming
Panama - Introduction to GPU Programming
Peru - Introduction to GPU Programming
Uruguay - Introduction to GPU Programming
Venezuela - Introduction to GPU Programming
Polska - Introduction to GPU Programming
United Kingdom - Introduction to GPU Programming
South Korea - Introduction to GPU Programming
Pakistan - Introduction to GPU Programming
Sri Lanka - Introduction to GPU Programming
Bulgaria - Introduction to GPU Programming
Bolivia - Introduction to GPU Programming
Indonesia - Introduction to GPU Programming
Kazakhstan - Introduction to GPU Programming
Moldova - Introduction to GPU Programming
Morocco - Introduction to GPU Programming
Tunisia - Introduction to GPU Programming
Kuwait - Introduction to GPU Programming
Oman - Introduction to GPU Programming
Slovakia - Introduction to GPU Programming
Kenya - Introduction to GPU Programming
Nigeria - Introduction to GPU Programming
Botswana - Introduction to GPU Programming
Slovenia - Introduction to GPU Programming
Croatia - Introduction to GPU Programming
Serbia - Introduction to GPU Programming
Bhutan - Introduction to GPU Programming