What happens when you run a CUDA kernel?
13 days ago
- #CUDA
- #Kernel-Launch
- #GPU-Execution
- CUDA程序由nvcc编译为主机代码和设备代码,其中设备代码从PTX转换为SASS。
- 主机代码使用存根打包内核参数,并通过CUDA运行时和驱动触发GPU,涉及ioctl调用和门铃寄存器。
- GPU通过工作分配器将块分配给SM来执行内核,使用编译器编码的控制位调度线程束以管理依赖和停顿。
- 内存访问被合并,利用缓存和DRAM,对于算术强度低的内核,性能通常受内存带宽限制。
- 完成信号通过信号量传递,允许异步执行并将数据传回主机进行输出。