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.
课程大纲
介绍
- 什么是CUDA?
- CUDA 与 OpenCL 与 SYCL
- CUDA 功能和架构概述
- 设置开发环境
开始
- 使用 Visual Studio 代码创建新的 CUDA 项目
- 浏览项目结构和文件
- 编译和运行程序
- 使用 printf 和 fprintf 显示输出
CUDA API
- 了解 CUDA API 在主机程序中的作用
- 使用 CUDA API 查询设备信息和功能
- 使用 CUDA API 分配和释放设备内存
- 使用 CUDA API 在主机和设备之间复制数据
- 使用 CUDA API 启动内核和同步线程
- 使用 CUDA API 处理错误和异常
CUDA C/C++
- 了解 CUDA C/C++ 在设备程序中的作用
- 使用 CUDA C/C++ 编写在 GPU 上执行的内核并操作数据
- 使用 CUDA C/C++ 数据类型、限定符、运算符和表达式
- 使用 CUDA C/C++ 内置函数,如 math、atomic、warp 等。
- 使用 CUDA C/C++ 内置变量,如 threadIdx、blockIdx、blockDim 等。
- 使用 CUDA C/C++ 库,例如 cuBLAS、cuFFT、cuRAND 等。
CUDA 内存模型
- 了解主机和设备内存模型之间的差异
- 使用 CUDA 内存空间,例如全局、共享、常量和本地
- 使用 CUDA 内存对象,例如指针、数组、纹理和表面
- 使用CUDA内存访问模式,如只读、只写、读写等。
- 使用 CUDA 内存一致性模型和同步机制
CUDA 执行模型
- 了解主机和设备执行模型之间的区别
- 使用 CUDA 线程、块和网格来定义并行度
- 使用 CUDA 线程函数,例如 threadIdx、blockIdx、blockDim 等。
- 使用 CUDA 块函数,例如 __syncthreads、__threadfence_block 等。
- 使用 CUDA 网格函数,例如 gridDim、gridSync、协作组等。
调试
- 了解 CUDA 程序中的常见错误和错误
- 使用 Visual Studio 代码调试器检查变量、断点、调用堆栈等。
- 在 Linux 上使用 CUDA-GDB 调试 CUDA 程序
- 使用 CUDA-MEMCHECK 检测内存错误和泄漏
- 使用 NVIDIA Nsight 在 Windows 上调试和分析 CUDA 程序
优化
- 了解影响 CUDA 程序性能的因素
- 使用 CUDA 合并技术提高内存吞吐量
- 使用 CUDA 缓存和预取技术来减少内存延迟
- 使用 CUDA 共享内存和本地内存技术优化内存访问和带宽
- 使用 CUDA 分析和分析工具来衡量和改进执行时间和资源利用率
摘要和后续步骤
要求
- 了解 C/C++ 语言和并行编程概念
- 计算机体系结构和内存层次结构的基础知识
- 具有命令行工具和代码编辑器的经验
观众
- 希望学习如何使用 CUDA 对 NVIDIA GPU 进行编程并利用其并行性的开发人员
- 希望编写可在不同 CUDA 设备上运行的高性能和可扩展代码的开发人员
- 希望探索 GPU 编程的低级方面并优化其代码性能的程序员
28 小时
客户评论 (1)
与各种示例非常互动,在培训开始和结束之间的复杂性进展良好。
Jenny - Andheo
课程 - GPU Programming with CUDA and Python
机器翻译