当前位置: 移动技术网 > IT编程>开发语言>.net > cuda程序以及硬件的映射

cuda程序以及硬件的映射

2020年09月29日  | 移动技术网IT编程  | 我要评论
一个网格中,多个块,每个块的大小和维度是一样的,每个线程--->cuda core或者 sp(stream processor)block-->SM。SM 可以调度多个线程块,一个kernel 的各个线程块被分配多个SM, grid 是逻辑层 ,SM 是执行的物理层。每个SM 有自己的共享内存、寄存器 ,L1 cache 以及其他功能的硬件。一个程序的块不能被映射到不同的SM上,一个block 只能被一个SM调度。SM 采用 SIMT采用单指令多线程的架构(将多维t...

 

一个网格中,多个块,每个块的大小和维度是一样的,每个线程--->cuda core或者 sp(stream processor)

 block-->SM。

SM 可以调度多个线程块,一个kernel 的各个线程块被分配多个SM, grid 是逻辑层 ,SM 是执行的物理层。每个SM 有自己的共享内存、寄存器 ,L1 cache 以及其他功能的硬件。一个程序的块不能被映射到不同的SM上,一个block 只能被一个SM调度。

 

SM 采用 SIMT采用单指令多线程的架构(将多维thread 排成一维),是以wrap为最小的调度单位,每个线程有独立地址计数器,也有寄存器状态,以及独立的执行路径。线程束中的线程从同一程序地址开始执行,但是可能会遇到不同的分支路径,另外一些线程可能不执行,只能进入等待状态。线程束的分化会造成程序性能的下降。

每个wrap中使用的内存、寄存器资源不能太多,否则,每个Sm上处于活跃状态的wrap会比较少。block 的大小一般设为32的倍数。

本文地址:https://blog.csdn.net/xieshangxin/article/details/108868568

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网