CUDA程序开发——软硬件层级的调度解读

CUDA程序开发——软硬件层级的调度解读

通过阅读文本你将了解到以下内容:

  • CUDA硬件层级
  • CUDA软件层级
  • 软件层级在硬件层级上的具体调度

关键字:SP、SM、Device、Thread、Block、Grid、Warp

想要编写出高性能的CUDA核函数,研究CUDA的软硬件架构是必不可少的。比如在给每一个核函数配置<<<>>>内的启动参数时,你可能在想到底应该分配多少个block,每个block中应该分配多少个thread,这些参数是试出来的,还是有一定的规律可循。如果你想把这个问题搞清楚,不如先从CUDA的软硬件层级开始了解。

1. 软硬件层级

从硬件方面看,CUDA将GPU的处理单元被分为3个层次:流处理器(Streaming Process,SP)、流多处理器(Streaming Multiprocessor,SM)和设备(Device)。

  • SP是最基本的处理单元,也称为CUDA Core,可以将其理解成CPU的一个核,CUDA的kernel函数运行的具体指令就是在SP上处理的。
  • SM由多个SP和一些其他资源组成,不同的架构包含的SP的数量不同,Kepler架构一个SM包含192个SP(这里可以理解成一个SM有192个核)。SM通过线程调度器为SP分发线程,实际可执行的线程要比SP个数多很多。
  • Device由多个SM和一些其他资源组成,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值