0Pricing
CUDA Academy icon

CUDA Academy

CPPEnterpriseDesktopAi

用 CUDA C++ 编程 GPU。从线程和内存层级到内核、优化和真实并行计算。

🤖 AI 驱动📚 30 门课程👥 10万+ 学习者⭐ 4.9 分
课程概览

CUDA: 用 C++ 进行 GPU 编程

用 CUDA C++ 编程 GPU。从线程和内存层级到内核、优化和真实并行计算。本课程轨道包含 30 门循序渐进的迷你课程,从绝对初级 (A1) 到高级 (B2),每堂课精炼简洁,配合快速小测验巩固每个概念。

你将学到

从基础知识开始,逐步深入中级和高级主题,每门课程都以前一门为基础。每堂课都讲究实用和精炼,24/7 AI 辅导老师随时帮助你。

如何进行

每门课程分为四堂精炼的课程。每天完成几堂课,你将在数周内而不是数月内掌握整个课程轨道。

开始学习 →

你的学习方式

🎯
互动课程
实时反馈的动手编程练习
🤖
AI 导师
遇到困难时立即获得 AI 帮助
💻
内置编辑器
直接在浏览器中编写并运行代码
🏆
证书
完成课程后获得证书
课程

30 门课程

CUDA Academy 学习路径中的所有课程。

01

GPU 为何擅长并行任务

A14 节课

解释 GPU 是什么,以及为什么在并行问题上,数千个小型核心能胜过少量高速 CPU 核心

02

设置您的 CUDA 工具链

A14 节课PRO

安装 CUDA Toolkit、验证驱动程序,并使用 nvcc 编译您的第一个程序

03

主机与设备:两个世界

A14 节课PRO

区分 CPU 主机代码和 GPU 设备代码,并了解双方可以访问哪些内存

04

编写您的第一个内核

A14 节课PRO

定义、启动并运行一个能在设备内部输出信息的 GPU 内核

05

线程、块与网格

A14 节课PRO

将问题映射到 CUDA 的线程、块和网格层次结构中

06

全局线程索引

A24 节课PRO

计算唯一的全局索引,让每个线程恰好处理一个数据元素

07

管理设备内存

A24 节课PRO

分配和释放 GPU 内存,并了解设备堆

08

使用 cudaMemcpy 移动数据

A24 节课PRO

可靠地在主机和设备之间双向传输数组

09

端到端构建向量加法

A24 节课PRO

在 GPU 上编写完整的 C = A + B 程序,从分配内存到验证结果

10

正确捕获 CUDA 错误

A24 节课PRO

检测并报告 API 调用和内核启动产生的 CUDA 故障

11

了解 CUDA 内存层次结构

B14 节课PRO

在全局、共享、常量、本地内存和寄存器之间选择合适的内存空间

12

合并全局内存访问

B14 节课PRO

安排访问模式,让一个线程束在一次事务中读取连续内存

13

掌握片上共享内存

B14 节课PRO

使用 __shared__ 内存和 __syncthreads 在一个块内共享数据

14

在共享内存中分块处理算法

B14 节课PRO

应用加载—同步—计算的分块模式,复用数据并减少全局内存流量

15

分块矩阵乘法

B14 节课PRO

构建使用共享内存分块的 GEMM,使其性能远超朴素版本

16

正确实现并行归约

B14 节课PRO

使用基于树的归约在 GPU 上高效地求数组元素之和

17

使用原子操作实现安全并发

B14 节课PRO

使用原子操作更新共享结果,避免竞态条件

18

使用 CUDA 流重叠任务

B14 节课PRO

使用非默认流并发运行内核和数据传输

19

异步传输与页锁定内存

B14 节课PRO

使用页锁定主机内存和流中的异步复制加速传输

20

使用统一内存简化开发

B14 节课PRO

使用 cudaMallocManaged,让主机和设备共享同一个指针

21

调优占用率与启动配置

B24 节课PRO

选择块大小并限制资源,以最大化 SM 占用率

22

使用 Nsight 分析内核

B24 节课PRO

利用 Nsight Systems 和 Nsight Compute 指标找出性能瓶颈

23

线程束级原语与洗牌

B24 节课PRO

使用洗牌和投票内置函数在一个线程束内交换数据,无需共享内存

24

高级内核优化

B24 节课PRO

应用 ILP、循环展开和向量化加载,充分释放峰值性能

25

跨多个 GPU 扩展

B24 节课PRO

将任务分配到多个 GPU 上,并使用 P2P 在它们之间直接移动数据

26

使用 cuBLAS 与 Thrust 加速

B24 节课PRO

调用 NVIDIA 调优过的库执行 GEMM、排序和并行算法

27

动态并行与 CUDA 图

B24 节课PRO

从设备启动内核,并将任务捕获为可复用的 CUDA 图

28

编程张量核心

B24 节课PRO

通过 WMMA API 使用混合精度张量核心,快速执行矩阵运算

29

使用 cuda-gdb 与 Sanitizer 调试

B24 节课PRO

使用 CUDA 调试工具排查崩溃、竞态和内存错误

30

综合项目:GPU 图像处理流程

B24 节课PRO

将内核、流和性能分析结合起来,构建真正由 GPU 加速的图像处理器

常见问题

常见问题解答

CUDA Academy 课程免费吗?

免费。你可以免费开始 CUDA Academy 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。

学习 CPP 需要有先前的经验吗?

不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 CPP 基础也可以开始。

我在 CoddyKit 上怎样学习 CPP?

学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。

完成 CUDA Academy 后能获得证书吗?

可以。PRO 学员可以参加考试,获得 CUDA Academy 课程的可分享的完成证书,其中包含可验证的代码。

我能在手机上学习 CPP 吗?

可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 CPP,进度会自动同步。

立即开始 CUDA Academy

加入数千名学习者,通过 AI 驱动的课程掌握编程。

免费开始 →浏览所有课程