CUDA执行模型

一、CUDA执行模型概述

二、线程束执行

1. 线程束与线程块

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

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

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

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

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

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

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

2. 线程束分化

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

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

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

相关推荐
LYOBOYI1233 分钟前
qt的事件传播机制
java·前端·qt
PM老周9 分钟前
产品路线图怎么做:从愿景到里程碑的 6 步落地法
开发语言·安全·阿里云·团队开发·个人开发
短剑重铸之日13 分钟前
《深入解析JVM》第四章:JVM 调优
java·jvm·后端·面试·架构
whltaoin15 分钟前
25年12月26日-福州某科技公司一面面试原题
java·linux·docker·面试·职场和发展·k8s·springboot
小陈phd16 分钟前
Python MCP 工具开发入门:Server、Client 和 LLM 集成
开发语言·python·github
Yang-Never18 分钟前
Android 内存泄漏 -> ViewModel持有Activity/Fragment导致的内存泄漏
android·java·开发语言·kotlin·android studio
剑之所向18 分钟前
c# 中间表
开发语言·c#
fanruitian19 分钟前
SpringBoot 调用springai ollama
java·spring boot·后端
蓝影铁哥21 分钟前
浅谈5款Java微服务开发框架
java·linux·运维·开发语言·数据库·微服务·架构
程芯带你刷C语言简单算法题26 分钟前
Day39~实现一个算法确定将一个二进制整数翻转为另一个二进制整数,需要翻转的位数
c语言·开发语言·学习·算法·c