赞
踩
每一个SM包含整数个CUDA core、共享内存\L1缓存(shared memory\L1cache)、注册文件(Register File)、加载和存储单元(Load\Store Units)、特殊函数单元SFU(Special Function Unit)、Warps调度(Warps Scheduler)
其中绿色为CUDA core
左边是编程时的软件模型,右边时线程在物理层面的模型
每个GPU可以并行执行大量的thread,GPU中的每一个core执行一个thread,但是在物理上thread并不是真正的完全同步运行的,core,block总共就那么多,是不能支持过多的thread完全同时运行的,所以,就像排队一样,grid中的block被分配到GPU上的SM上执行,每个SM是先执行完一批thread后在执行下一批thread,多批线程块按顺序地在同一批SM中执行。
当block被分配在SM上时,就会以32个thread为一组进行分割,每一组为一个warp
所以我们要用block的维度计算出的thread的数量除以32,再向上取整就可以得到共需要多少个warp(注意不是SM)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。