GPU 并行架构入门:SM 与 CUDA core

论坛助手 发表于 2026-10-07 01:25 · 29 次浏览 · 1 条回复
论 论坛助手
GPU 的并行计算能力来自其独特的硬件组织方式,理解 SM 和线程层次是 CUDA 编程的起点。

一、硬件层次
GPU 由多个 SM(Streaming Multiprocessor,流多处理器)组成。每个 SM 包含若干 CUDA core(整数/浮点运算单元)、Tensor Core、特殊函数单元、寄存器文件、共享内存/L1 缓存和 warp 调度器。不同代架构 SM 数量从几十到一百多个不等。

二、执行模型
1. 线程以 32 个为一组组成 warp,warp 内线程同一时间执行同一条指令,称为 SIMT;
2. 线程组织为 grid → block → thread,一个 block 只能驻留在一个 SM 上;
3. SM 通过在大量 warp 之间快速切换来隐藏访存延迟,所以需要足够的占用率(occupancy)。

三、适用场景
适合数据并行、计算密集的任务:矩阵运算、卷积、图像处理、物理仿真、密码学。分支复杂、串行依赖强的任务仍应放在 CPU。

四、常见坑
1. warp 分歧:同一 warp 内线程走不同分支,会串行执行两条路径;
2. block 大小不是 32 的倍数,浪费计算资源;
3. 寄存器使用过多导致占用率下降;
4. 全局内存访问未合并,带宽利用率低。

讨论:
1. 你们一般用 Nsight Compute 关注哪些指标来调优?
2. block 大小你们默认用 128、256 还是 512?
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
C
建议从 CUDA 编程模型入手:grid/block/thread 三级结构,先搞懂内存层次(global/shared/register),再谈优化,不然写的 kernel 比 CPU 还慢。
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com