課程簡介

简介

  • 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程序
  • 使用ROCm API查询设备信息,分配和释放设备内存,在主机和设备之间复制数据,启动内核并同步线程
  • 使用ROCm C/C++语言编写在设备上执行并操作数据的内核
  • 使用ROCm内置函数、变量和库执行常见任务和操作
  • 使用ROCm内存空间(如全局、局部、常量和私有)优化数据传输和内存访问
  • 使用ROCm执行模型控制定义并行性的线程、块和网格
  • 使用ROCm Debugger和ROCm Profiler等工具调试和测试ROCm程序
  • 使用合并、缓存、预取和性能分析等技术优化ROCm程序

对比

  • 比较OpenCL、CUDA和ROCm的特性、性能和兼容性
  • 使用基准测试和指标评估GPU程序
  • 学习GPU编程的最佳实践和技巧
  • 探索GPU编程的当前和未来趋势与挑战

总结与下一步

最低要求

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

受众

  • 希望学习如何使用不同框架进行GPU编程,并比较其特性、性能和兼容性的开发者
  • 希望编写可在不同平台和设备上运行的便携且可扩展代码的开发者
  • 希望探索GPU编程和优化的权衡与挑战的程序员
 28 時間:

人數


每位參與者的報價

Provisional Upcoming Courses (Require 5+ participants)

課程分類