- 了解 C/C++ 语言和并行编程概念
- 计算机体系结构和内存层次结构的基础知识
- 具有命令行工具和代码编辑器的经验
观众
- 希望了解如何使用 ROCm 和 HIP 对 AMD GPU 进行编程并利用其并行性的开发人员
- 希望编写可在不同 AMD 设备上运行的高性能和可扩展代码的开发人员
- 希望探索 GPU 编程的低级方面并优化其代码性能的程序员
ROCm 是一个用于 GPU 编程的开源平台,支持 AMD GPU,还提供与 CUDA 和 OpenCL 的兼容性。ROCm 使程序员了解硬件细节,并完全控制并行化过程。但是,这也需要对设备架构、内存模型、执行模型和优化技术有很好的理解。
HIP 是一种 C++ 运行时 API 和内核语言,允许您编写可在 AMD 和 NVIDIA GPU 上运行的可移植代码。 HIP 在原生 GPU API(如 ROCm 和 CUDA)上提供了一个精简的抽象层,并允许您利用现有的 GPU 库和工具。
这种以讲师为主导的现场培训(现场或远程)针对希望使用ROCm和HIP对AMD GPU进行编程并利用其并行性的初级到中级开发人员。
在培训结束时,参与者将能够:
- 设置包含 ROCm 平台、AMD GPU 和 Visual Studio 代码的开发环境。
- 创建一个基本的 ROCm 程序,该程序对 GPU 执行向量加法并从 GPU 存储器中检索结果。
- 使用 ROCm API 查询设备信息、分配和释放设备内存、在主机和设备之间复制数据、启动内核和同步线程。
- 使用 HIP 语言编写在 GPU 上执行的内核并操作数据。
- 使用 HIP 内置函数、变量和库来执行常见任务和操作。
- 使用 ROCm 和 HIP 内存空间(如全局、共享、常量和本地)来优化数据传输和内存访问。
- 使用 ROCm 和 HIP 执行模型来控制定义并行度的线程、块和网格。
- 使用 ROCm Debugger 和 ROCm Profiler 等工具调试和测试 ROCm 和 HIP 程序。
- 使用合并、缓存、预取和分析等技术优化 ROCm 和 HIP 程序。
课程形式
- 互动讲座和讨论。
- 大量的练习和练习。
- 在现场实验室环境中动手实施。
课程自定义选项
- 如需申请本课程的定制培训,请联系我们进行安排。
介绍
- 什么是ROCm?
- 什么是HIP?
- ROCm 与 CUDA 与 OpenCL
- ROCm 和 HIP 功能和体系结构概述
- 设置开发环境
开始
- 使用 Visual Studio 代码创建新的 ROCm 项目
- 浏览项目结构和文件
- 编译和运行程序
- 使用 printf 和 fprintf 显示输出
ROCm API
- 了解 ROCm API 在主机程序中的作用
- 使用 ROCm API 查询设备信息和功能
- 使用 ROCm API 分配和解除分配设备内存
- 使用 ROCm API 在主机和设备之间复制数据
- 使用 ROCm API 启动内核和同步线程
- 使用 ROCm API 处理错误和异常
HIP 语言
- 了解 HIP 语言在设备程序中的作用
- 使用 HIP 语言编写在 GPU 上执行的内核并操作数据
- 使用 HIP 数据类型、限定符、运算符和表达式
- 使用 HIP 内置函数、变量和库执行常见任务和操作
ROCm 和 HIP 存储器模型
- 了解主机和设备内存模型之间的差异
- 使用 ROCm 和 HIP 内存空间,例如全局、共享、常量和本地
- 使用 ROCm 和 HIP 内存对象,例如指针、数组、纹理和表面
- 使用 ROCm 和 HIP 内存访问模式,如只读、只写、读写等。
- 使用 ROCm 和 HIP 内存一致性模型和同步机制
ROCm 和 HIP 执行模型
- 了解主机和设备执行模型之间的区别
- 使用 ROCm 和 HIP 线程、块和网格来定义并行度
- 使用 ROCm 和 HIP 线程功能,例如 hipThreadIdx_x、hipBlockIdx_x、hipBlockDim_x 等。
- 使用 ROCm 和 HIP 块功能,如 __syncthreads、__threadfence_block 等。
- 使用 ROCm 和 HIP 网格功能,例如 hipGridDim_x、hipGridSync、协作组等。
调试
- 了解 ROCm 和 HIP 程序中的常见错误和错误
- 使用 Visual Studio 代码调试器检查变量、断点、调用堆栈等。
- 使用 ROCm 调试器调试 AMD 设备上的 ROCm 和 HIP 程序
- 使用 ROCm Profiler 分析 AMD 设备上的 ROCm 和 HIP 程序
优化
- 了解影响 ROCm 和 HIP 程序性能的因素
- 使用 ROCm 和 HIP 合并技术提高内存吞吐量
- 使用 ROCm 和 HIP 缓存和预取技术来减少内存延迟
- 使用 ROCm 和 HIP 共享内存和本地内存技术来优化内存访问和带宽
- 使用 ROCm 和 HIP 分析和分析工具来衡量和改进执行时间和资源利用率
总结和下一步
United Arab Emirates - AMD GPU Programming
Saudi Arabia - AMD GPU Programming
South Africa - AMD GPU Programming
Österreich - AMD GPU Programming
Deutschland - AMD GPU Programming
Czech Republic - AMD GPU Programming
Magyarország - AMD GPU Programming
Luxembourg - AMD GPU Programming
Lithuania - AMD GPU Programming
Nederland - AMD GPU Programming
Portugal - AMD GPU Programming
Belgique - AMD GPU Programming
Australia - AMD GPU Programming
Malaysia - AMD GPU Programming
New Zealand - AMD GPU Programming
Philippines - AMD GPU Programming
Singapore - AMD GPU Programming
Thailand - AMD GPU Programming
Argentina - AMD GPU Programming
Costa Rica - AMD GPU Programming
Guatemala - AMD GPU Programming
Colombia - AMD GPU Programming
Venezuela - AMD GPU Programming
United Kingdom - AMD GPU Programming
South Korea - AMD GPU Programming
Pakistan - AMD GPU Programming
Sri Lanka - AMD GPU Programming
Bulgaria - AMD GPU Programming
Indonesia - AMD GPU Programming
Kazakhstan - AMD GPU Programming
Slovakia - AMD GPU Programming
Botswana - AMD GPU Programming