课程大纲

介绍

  • 什么是 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 编程的当前和未来趋势和挑战

总结和下一步

要求

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

观众

  • 希望学习 GPU 编程基础知识以及开发 GPU 应用程序的主要框架和工具的开发人员
  • 希望编写可在不同平台和设备上运行的可移植和可扩展代码的开发人员
  • 希望探索 GPU 编程和优化的好处和挑战的程序员
 21 小时

客户评论 (2)

即将举行的公开课程

课程分类