课程大纲

介绍

  • 什么是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 分析和分析工具来衡量和改进执行时间和资源利用率

总结和下一步

要求

  • 了解 C/C++ 语言和并行编程概念
  • 计算机体系结构和内存层次结构的基础知识
  • 具有命令行工具和代码编辑器的经验

观众

  • 希望了解如何使用 ROCm 和 HIP 对 AMD GPU 进行编程并利用其并行性的开发人员
  • 希望编写可在不同 AMD 设备上运行的高性能和可扩展代码的开发人员
  • 希望探索 GPU 编程的低级方面并优化其代码性能的程序员
 28 小时

人数


每位参与者的报价

客户评论 (2)

即将举行的公开课程