Introduction to GPU Programming ( gpuprog | 21 hours )
- 了解 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