CUDA执行模型

一、CUDA执行模型概述

二、线程束执行

1. 线程束与线程块

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

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

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

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

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

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

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

2. 线程束分化

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

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

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

相关推荐
Java初学者小白4 分钟前
秋招Day18 - MyBatis - 基础
java·数据库·mybatis
大白玉米5 分钟前
TVBOXOS6.0双端APP二开源码完整版全开源源码重构版
java·重构·php
Dcs22 分钟前
Cisco爆出重大漏洞!无需登录即可获取Root权限,攻击者已在野利用!
java
青云交31 分钟前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
java·大数据·边缘计算·工业互联网·分布式存储·paxos·数据协同
屁股割了还要学44 分钟前
【C语言进阶】柔性数组
c语言·开发语言·数据结构·c++·学习·算法·柔性数组
oioihoii1 小时前
C++实战案例:从static成员到线程安全的单例模式
java·c++·单例模式
☞下凡☜1 小时前
C语言(20250722)
linux·c语言·开发语言
whhhhhhhhhw1 小时前
Go语言-fmt包中Print、Println与Printf的区别
开发语言·后端·golang
坚持吧20211 小时前
【无标题】word 中的中文排序
开发语言·c#
_oP_i2 小时前
c# openxml 打开加密 的word读取内容
开发语言·c#·word