CUDA执行模型

一、CUDA执行模型概述

二、线程束执行

1. 线程束与线程块

线程束是SM中基本的执行单元。

当一个线程块的网格被启动后,网格中的线程块分布在SM中。

一旦线程块被调度到一个SM中,线程块中的线程会被进一步划分成线程束。

一个线程束由32个连续的线程组成,在一个线程束中,所有的线程按照单指令多线程方式执行。

所有线程都执行相同的指令,每个线程在私有数据上进行操作。

从逻辑角度看,线程块是线程的集合,可以被组织成一维、二维或三维布局。

从硬件角度看,线程块是一维线程束的集合。在线程块中线程被组织成一维布局,每32个连续线程组织成一个线程束。

2. 线程束分化

GPU是相对简单的设备,没有复杂的分支预测机制。

一个线程束中的所有线程在同一周期中必须执行相同的指令,如果一个线程执行一条指令,那么线程束中的所有线程都必须执行该指令。

为了获得最佳的性能,应该避免在同一个线程束中有不同的执行路径,以确保同一个线程束中所有的线程在一个应用程序中使用同一个控制路径。

相关推荐
朝朝辞暮i2 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
步行cgn2 小时前
Spring 全注解开发详解
java·后端·spring
长河2 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法
java·jvm·算法
code2cat2 小时前
Java进阶篇之LongAdder:把统计更新分散,再读取总和
java·并发编程·原子类·longadder
SHARK_pssm2 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记
凯哥Java2 小时前
写代码怎么避免逻辑漏洞?
java·开发语言·人工智能·自动化
Ivanqhz3 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库
BD_Marathon3 小时前
消息对象中字段的说明
java·前端·python
Ai-_Man3 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
Java后端的Ai之路3 小时前
Python进阶探索23 - Python中的Time与Datetime模块
开发语言·数据库·python·datetime·time