1.CUDA软件基础架构

2025-07-25T13:36:49.png

2.模型训练/推理场景下的CUDA软件架构

2025-07-25T13:41:11.png

3.CUDA线程模型

3.1 线程模型图

2025-07-25T13:55:30.png

3.2 如何组织线程

层级组成关系核心功能
线程最小执行单元执行单一指令
线程束32线程 = 1线程束GPU调度单位
线程块N线程束 = 1块共享内存,块内线程协作
网格M线程块 = 1网格管理全部计算任务

4.CUDA内存模型

4.1 内存模型图

2025-07-25T13:55:56.png

GPU内存使用

内存类型物理位置作用域生命周期使用场景使用方式访问速度容量
寄存器GPU核心单个线程线程生命周期线程私有变量、循环索引、临时计算结果自动分配(声明局部变量)
例:int local_var = 0;
★★★★★ (最快)每线程约256个
本地内存显存 (DRAM)单个线程线程生命周期大型结构体/数组、寄存器溢出备用空间自动分配(寄存器不足时)
例:float large_array[1000];
★★☆受显存限制
共享内存GPU芯片 (SRAM)线程块内所有线程块生命周期块内线程通信、数据复用__shared__ 声明
例:__shared__ float s_data[32];
需同步:__syncthreads()
★★★★☆每SM约100KB
常量内存显存 (DRAM)全局应用生命周期只读常量(如数学常数、配置参数)__constant__ 声明
主机端用 cudaMemcpyToSymbol 复制数据
★★★☆ (缓存加速)64 KB
纹理内存显存 (DRAM)全局应用生命周期图像处理、空间局部性访问、插值计算通过纹理对象绑定
例:texture<float, 2> tex;
读取:tex2D(tex, x, y)
★★★★ (缓存优化)受显存限制
全局内存显存 (DRAM)全局应用生命周期主数据存储、跨块通信cudaMalloc 分配
例:float *d_array;
cudaMalloc(&d_array, size);
★★☆ (最慢)主显存容量 (GB级)
L1/L2缓存GPU芯片 (SRAM)全局硬件自动管理自动缓存全局/本地内存访问热点自动启用(可通过编译选项调整)
例:-Xptxas -dlcm=ca (L1缓存)
★★★★☆L1: 128KB/SM
L2: 共享 (MB级)
分类: CUDA 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录