TensorRT及CUDA自学笔记005 GPU架构和线程束

TensorRT及CUDA自学笔记005 GPU架构和线程束

GPU架构

流处理器streaming multiprocessor (SM)

每一个SM包含整数个CUDA core、共享内存\L1缓存(shared memory\L1cache)、注册文件(Register File)、加载和存储单元(Load\Store Units)、特殊函数单元SFU(Special Function Unit)、Warps调度(Warps Scheduler)

Fermi架构

  1. Fermi架构中512个CUDA内核构成16个SM,每个core中包含算数逻辑单元(ALU)和浮点计算单元(FPU)
  2. Fermi架构包含6G全局内存
  3. Fermi架构通过PCIE总线和主机连接
  4. Fermi架构中,每个SM包含16个加载和存储单元
  5. Fermi架构包含四个SFU,包含两个Warps Scheduler,两个Dispatch Unit

其中绿色为CUDA core

线程束(Warps)

左边是编程时的软件模型,右边时线程在物理层面的模型

每个GPU可以并行执行大量的thread,GPU中的每一个core执行一个thread,但是在物理上thread并不是真正的完全同步运行的,core,block总共就那么多,是不能支持过多的thread完全同时运行的,所以,就像排队一样,grid中的block被分配到GPU上的SM上执行,每个SM是先执行完一批thread后在执行下一批thread,多批线程块按顺序地在同一批SM中执行。

当block被分配在SM上时,就会以32个thread为一组进行分割,每一组为一个warp

线程束的数量计算

  1. 每个Warp包含32个thread
  2. 每个warp中只能包含同一个block中的thread(每个block中的所有thread的计算是一样的,只有其用于计算的数据是不同的)

所以我们要用block的维度计算出的thread的数量除以32,再向上取整就可以得到共需要多少个warp(注意不是SM)

相关推荐
初願致夕霞3 分钟前
实现具备C++11现代特性的STL——vector篇(附带简单的航空订票系统实例)
开发语言·c++·rpc
云泽8084 分钟前
C++ 模板进阶全解析:非类型模板参数、模板特化与分离编译详解
开发语言·c++
Pith_6 分钟前
模式识别与机器学习复习笔记(中)
人工智能·笔记·机器学习
黄美美分享8 分钟前
全新升级,小米手机互联服务电脑通用版 V1.1.0.60 新版分享!支持相册/笔记云服务/剪贴板共享!一键同步
笔记·智能手机·电脑
檐下翻书1738 分钟前
在线自定义跨职能流程图工具 PC免费
大数据·人工智能·架构·html·流程图·论文笔记
视***间8 分钟前
突破视觉边界,重构工业安全防线——视程空间VPP SC6N0-IR全景红外摄像系统技术解析与实践赋能
大数据·人工智能·边缘计算·视程空间·ai算力开发板·全景红外相机·air
你要飞10 分钟前
考研线代第五课:特征值基础与相似对角化
笔记·线性代数·考研·矩阵
视***间10 分钟前
视程空间智慧医疗:以空间感知重构精准医疗新范式
大数据·人工智能·边缘计算·智慧医疗·ai算力开发板
丝斯201112 分钟前
AI学习笔记整理(48)——大模型中的向量工程RAG系统
人工智能·笔记·学习
YY_pdd12 分钟前
全面战争三国-mod开发教程(demo,已实证)
经验分享·笔记·学习