Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
課程簡介
简介
- 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 時間: