2026.9.14
1.什么是CUDA
来自维基百科
CUDA(Compute Unified Devices Architecture,统一计算架构)是由英伟达(NVIDIA)所推出的一个并行计算平台,是该公司对于GPGPU的正式名称。透过这个技术,用户可利用NVIDIA的GPU进行图像处理之外的运算。
2.CPU、GPU协同工作
· 主机 (Host):指的是你电脑里的CPU 以及它直接管理的内存(通常叫主存/内存条)。它是整个电脑的“指挥官”,负责跑操作系统、处理逻辑、调度任务。
· 设备 (Device):指的是你插在主板上的 GPU(显卡)。它相当于一个“超级计算打工仔”,专门负责处理海量并行计算任务。
处理流程:
- 数据拷贝:CPU内存→GPU内存
- 加载GPU程序并执行
- 结果拷贝:GPU内存→CPU内存
3.GPU内核函数
__global__关键字声明内核函数,功能:
- 在设备(device 也就是GPU)上运行
- 被主机(host)代码调用(也可被其它设备代码调用)
设备代码 即运行在GPU上的代码
nvcc 编译器:它就像一个交通警察。它会把你的代码拆成两部分:
- 带global的代码给 NVIDIA 自己的编译器处理,最终变成 GPU 能懂的机器码。
- 像 main() 这种普通的 C++ 代码,交给普通的编译器(比如 gcc、cl.exe)处理,变成 CPU(主机) 能懂的代码。
4.CUDA内存管理
CPU与GPU内存是分离的。Device指针指向GPU内存,Host指针指向CPU内存。
- 通常传递给CPU/GPU
各自的代码 - 通常无法在
另一个地方解引用
总结:谁的指针给谁用(物理上内存是分离的)
- CUDA有API来处理设备内存
API(应用程序接口),让 CPU 可以通过这些“专属通道”去指挥 GPU 的内存。