GPU編程與CUDA培訓
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 分析和分析工具來衡量和改進執行時間和資源利用率
摘要和後續步驟
最低要求
- 瞭解 C/C++ 語言和並行程式設計概念
- 計算機體系結構和記憶體層次結構的基礎知識
- 具有命令行工具和代碼編輯器的經驗
觀眾
- 希望學習如何使用 CUDA 對 NVIDIA GPU 進行程式設計並利用其並行性的開發人員
- 希望編寫可在不同 CUDA 設備上運行的高性能和可擴展代碼的開發人員
- 希望探索 GPU 程式設計的低級方面並優化其代碼性能的程式師
需要幫助選擇合適的課程嗎?
GPU編程與CUDA培訓 - Enquiry
GPU編程與CUDA - 咨詢詢問
咨詢詢問
相關課程
使用Huawei Ascend和CANN開發AI應用程式
21 時間:Huawei Ascend 是一系列专为高性能推理和训练设计的AI处理器。
本课程为讲师指导的培训(线上或线下),面向中级AI工程师和数据科学家,旨在帮助他们使用华为的Ascend平台和CANN工具包开发和优化神经网络模型。
在本培训结束时,参与者将能够:
- 设置和配置CANN开发环境。
- 使用MindSpore和CloudMatrix工作流开发AI应用。
- 使用自定义运算符和分块优化Ascend NPU的性能。
- 将模型部署到边缘或云环境。
课程形式
- 互动讲座和讨论。
- 在示例应用中动手使用Huawei Ascend和CANN工具包。
- 专注于模型构建、训练和部署的指导练习。
课程定制选项
- 如需根据您的基础设施或数据集定制本课程,请联系我们安排。
使用CANN和Ascend AI處理器部署AI模型
14 時間:CANN(Neural Networks計算架構)是華爲的AI計算堆棧,用於在Ascend AI處理器上部署和優化AI模型。
本次由講師指導的培訓(線上或線下)面向中級AI開發人員和工程師,旨在幫助他們使用CANN工具包及MindSpore、TensorFlow或PyTorch等工具,將訓練好的AI模型高效部署到Huawei Ascend硬件上。
通過本次培訓,學員將能夠:
- 瞭解CANN架構及其在AI部署流程中的作用。
- 將來自流行框架的模型轉換爲與Ascend兼容的格式。
- 使用ATC、OM模型轉換和MindSpore等工具進行邊緣和雲端推理。
- 診斷部署問題並優化Ascend硬件上的性能。
課程形式
- 互動式講座和演示。
- 使用CANN工具和Ascend模擬器或設備進行動手實驗。
- 基於真實AI模型的實際部署場景。
課程定製選項
- 如需爲本課程定製培訓,請聯繫我們安排。
GPU Programming 關於Biren AI加速器
21 時間:Biren AI 加速器是專爲 AI 和高性能計算(HPC)工作負載設計的高性能 GPU,支持大規模訓練和推理。
本課程爲講師主導的培訓(線上或線下),面向中級到高級開發者,旨在教授如何使用 Biren 的專有 GPU 棧進行編程和優化,並與基於 CUDA 的環境進行實際對比。
在本課程結束時,學員將能夠:
- 理解 Biren GPU 架構和內存層次結構。
- 搭建開發環境並使用 Biren 的編程模型。
- 轉換並優化基於 CUDA 的代碼以適用於 Biren 平臺。
- 應用性能調優和調試技術。
課程形式
- 互動式講座與討論。
- 在示例 GPU 工作負載中實踐使用 Biren SDK。
- 專注於移植和性能調優的指導練習。
課程定製選項
- 如需根據您的應用棧或集成需求定製本課程,請聯繫我們安排。
Cambricon MLU Development with BANGPy and Neuware
21 時間:Cambricon MLUs (Machine Learning 单元) 是专为边缘和数据中心场景中的推理和训练优化的AI芯片。
本次由讲师指导的培训(线上或线下)面向中级开发者,旨在帮助他们使用BANGPy框架和Neuware SDK在Cambricon MLU硬件上构建和部署AI模型。
通过本次培训,参与者将能够:
- 设置和配置BANGPy和Neuware开发环境。
- 开发和优化基于Python和C++的模型,适用于Cambricon MLUs。
- 将模型部署到运行Neuware运行时的边缘和数据中心设备。
- 将ML工作流与MLU特定的加速功能集成。
课程形式
- 互动式讲座和讨论。
- 动手实践,使用BANGPy和Neuware进行开发和部署。
- 指导练习,专注于优化、集成和测试。
课程定制选项
- 如需根据您的Cambricon设备型号或使用场景定制本次培训,请联系我们安排。
CANN AI 框架開發者入門
7 時間:CANN(Neural Networks的計算架構)是華爲的AI計算工具包,用於在Ascend AI處理器上編譯、優化和部署AI模型。
本次由講師指導的培訓(線上或線下)面向初級的AI開發者,旨在幫助他們瞭解CANN如何融入從訓練到部署的模型生命週期,以及它如何與MindSpore、TensorFlow和PyTorch等框架協作。
在培訓結束時,參與者將能夠:
- 理解CANN工具包的用途和架構。
- 搭建包含CANN和MindSpore的開發環境。
- 將簡單的AI模型轉換並部署到Ascend硬件上。
- 爲未來的CANN優化或集成項目打下基礎。
課程形式
- 互動式講座和討論。
- 實踐實驗,包含簡單模型部署。
- 逐步講解CANN工具鏈和集成點。
課程定製選項
- 如需定製本課程,請聯繫我們安排。
CANN 用於 Edge AI 部署
14 時間:華爲的Ascend CANN工具包能夠在邊緣設備(如Ascend 310)上實現強大的AI推理。CANN提供了在計算和內存受限的環境中編譯、優化和部署模型所需的必要工具。
本次由講師指導的培訓(線上或線下)面向希望使用CANN工具鏈在Ascend邊緣設備上部署和優化模型的中級AI開發人員和集成人員。
培訓結束後,學員將能夠:
- 使用CANN工具爲Ascend 310準備和轉換AI模型。
- 使用MindSpore Lite和AscendCL構建輕量級推理管道。
- 在計算和內存受限的環境中優化模型性能。
- 在實際邊緣用例中部署和監控AI應用。
課程形式
- 互動講座與演示。
- 針對邊緣特定模型和場景的實踐操作。
- 在虛擬或物理邊緣硬件上進行即時部署示例。
課程定製選項
- 如需爲本課程定製培訓,請聯繫我們進行安排。
理解華為AI計算堆疊:從CANN到MindSpore
14 時間:華爲的AI技術棧——從底層的CANN SDK到高層的MindSpore框架——提供了一個緊密集成的AI開發和部署環境,專爲Ascend硬件優化。
本次由講師指導的培訓(線上或線下)面向初級到中級的技術專業人員,旨在幫助他們理解CANN和MindSpore組件如何協同工作,以支持AI生命週期管理和基礎設施決策。
培訓結束後,學員將能夠:
- 理解華爲AI計算棧的分層架構。
- 瞭解CANN如何支持模型優化和硬件級部署。
- 評估MindSpore框架和工具鏈,並與行業替代方案進行比較。
- 將華爲的AI技術棧定位到企業或雲/本地環境中。
課程形式
- 互動講座與討論。
- 即時系統演示和基於案例的講解。
- 可選的指導實驗,涵蓋從MindSpore到CANN的模型流程。
課程定製選項
- 如需爲本課程定製培訓,請聯繫我們安排。
使用CANN SDK優化神經網絡性能
14 時間:CANN SDK(Neural Networks 的計算架構)是華為的 AI 計算基礎,允許開發者在 Ascend AI 處理器上微調和優化已部署的神經網絡性能。
這是一個由講師主導的培訓(線上或線下),旨在針對高級 AI 開發者和系統工程師,他們希望使用 CANN 的先進工具集(包括 Graph Engine、TIK 和自定義算子開發)來優化推理性能。
培訓結束時,參與者將能夠:
- 了解 CANN 的運行時架構和性能生命周期。
- 使用性能分析工具和 Graph Engine 進行性能分析和優化。
- 使用 TIK 和 TVM 創建和優化自定義算子。
- 解決內存瓶頸並提高模型吞吐量。
課程形式
- 互動式講座和討論。
- 實時性能分析和算子調優的實踐實驗室。
- 使用邊緣案例部署示例的優化練習。
課程定制選項
- 如需為此課程請求定制培訓,請聯繫我們進行安排。
CANN SDK for Computer Vision and NLP Pipelines
14 時間:CANN SDK(Neural Networks 的计算架构)为计算机视觉和自然语言处理(NLP)中的实时AI应用提供了强大的部署和优化工具,特别是在Huawei Ascend硬件上。
本课程为讲师指导的培训(线上或线下),面向中级AI从业者,旨在帮助他们使用CANN SDK构建、部署和优化视觉与语言模型,以应对实际生产用例。
培训结束后,学员将能够:
- 使用CANN和AscendCL部署和优化CV与NLP模型。
- 使用CANN工具转换模型并将其集成到实时管道中。
- 优化检测、分类和情感分析等任务的推理性能。
- 为边缘或云端部署场景构建实时CV/NLP管道。
课程形式
- 互动讲座与演示。
- 动手实验:模型部署与性能分析。
- 使用真实CV和NLP用例设计实时管道。
课程定制选项
- 如需为本课程定制培训,请联系我们进行安排。
使用CANN TIK和TVM构建自定义AI算子
14 時間:CANN TIK(張量指令內核)和Apache TVM能夠對Huawei Ascend硬件的AI模型操作符進行高級優化和定製。
本次由講師指導的培訓(線上或線下)面向高級系統開發者,旨在幫助他們使用CANN的TIK編程模型和TVM編譯器集成,構建、部署和調優AI模型的自定義操作符。
培訓結束後,參與者將能夠:
- 使用TIK DSL爲Ascend處理器編寫和測試自定義AI操作符。
- 將自定義操作符集成到CANN運行時和執行圖中。
- 使用TVM進行操作符調度、自動調優和基準測試。
- 調試和優化自定義計算模式的指令級性能。
課程形式
- 互動講座與演示。
- 使用TIK和TVM管道進行實際操作符編碼。
- 在Ascend硬件或模擬器上進行測試和調優。
課程定製選項
- 如需爲本課程定製培訓,請聯繫我們安排。
Migrating CUDA Applications to Chinese GPU Architectures
21 時間:中國的GPU架構,如Huawei Ascend、Biren和Cambricon MLU,提供了專為本地AI和HPC市場量身定制的CUDA替代方案。
這項由講師指導的培訓(線上或線下)旨在為高級GPU程式設計師和基礎設施專家提供遷移和優化現有CUDA應用程序,以便在中國硬件平台上部署的能力。
培訓結束後,參與者將能夠:
- 評估現有CUDA工作負載與中國芯片替代方案的兼容性。
- 將CUDA代碼庫移植到華為CANN、Biren SDK和Cambricon BANGPy環境中。
- 比較性能並識別跨平台的優化點。
- 解決跨架構支持和部署中的實際挑戰。
課程形式
- 互動式講座和討論。
- 實踐代碼翻譯和性能比較實驗。
- 專注於多GPU適應策略的指導練習。
課程定制選項
- 如需根據您的平台或CUDA項目定制培訓,請聯繫我們安排。
Performance Optimization on Ascend, Biren, and Cambricon
21 時間:Ascend、Biren 和 Cambricon 是中國領先的 AI 硬體平台,各自提供獨特的加速和性能分析工具,用於生產規模的 AI 工作負載。
這項由講師指導的培訓(線上或線下)針對高級 AI 基礎設施和性能工程師,旨在優化跨多個中國 AI 晶片平台的模型推理和訓練工作流程。
在培訓結束時,參與者將能夠:
- 在 Ascend、Biren 和 Cambricon 平台上進行模型基準測試。
- 識別系統瓶頸和記憶體/計算效率低下的問題。
- 應用圖層級、核心層級和操作層級的優化。
- 調整部署管道以提高吞吐量和減少延遲。
課程形式
- 互動式講座和討論。
- 在每個平台上實際使用性能分析和優化工具。
- 專注於實際調整情境的指導練習。
課程定制選項
- 如需根據您的性能環境或模型類型定制此課程,請聯繫我們安排。