GPU学习笔记

引言

GPU是面向大吞吐量设计的,异构众核,适用于计算密集型任务。
CPU很多性能消耗在把数据在存储单元中搬来搬去,而GPU主要性能用于计算。
p.s.数据在内存中搬来搬去很消耗性能

硬件架构

CPU
可以看到,CPU中控制单元很大,内存单元很大,而GPU中,很多计算单元。
有些资料上解释计算单元主要是由ALU构成的,而ALU是通过门电路组合而成,计算单元由称为sp,CUDA核

一些名词解释

SP(streaming processor)
最基本的处理单元,也称为CUDA core。最后具体的指令和任务都是在SP上处理的。GPU进行并行计算,也就是很多个SP同时做处理。

SM(streaming multiprocessor)
多个SP加上其他的一些资源组成一个SM,也叫GPU大核,其他资源如:warp scheduler,register,shared memory等。SM可以看做GPU的心脏(对比CPU核心),register和shared memory是SM的稀缺资源。CUDA将这些资源分配给所有驻留在SM中的threads。因此,这些有限的资源就使每个SM中active warps有非常严格的限制,也就限制了并行能力。如下图是一个SM的基本组成,其中每个绿色小块代表一个SP。
Warp
一个SP可以执行一个thread,但是实际上并不是所有的thread能够在同一时刻执行。Nvidia把32个threads组成一个warp,warp是调度和运行的基本单元。warp中所有threads并行的执行相同的指令。一个warp需要占用一个SM运行,多个warps需要轮流进入SM。由SM的硬件warp scheduler负责调度。目前每个warp包含32个threads(Nvidia保留修改数量的权利)。所以,一个GPU上resident thread最多只有 SM*warp个
在这里插入图片描述

软件架构

一些名词解释

Kernel
在GPU上调用的函数成为CUDA核函数(Kernel function),核函数会被GPU上的多个线程执行。
Grid
由一个单独的Kernel启动的所有线程组成一个Grid,Grid中所有线程共享global memory。Grid由很多Block组成,可以是多维。
Block
一个Grid由许多Block组成,block由许多线程组成 ,也可以是多维。Block内部的多个线程可以同步,可以访问共享内存
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值