CUDA执行模型

一、CUDA执行模型概述

二、线程束执行

1. 线程束与线程块

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

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

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

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

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

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

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

2. 线程束分化

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

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

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

相关推荐
柯南二号3 分钟前
【后端】SpringBoot用CORS解决无法跨域访问的问题
java·spring boot·后端
martian66511 分钟前
信创生态核心技术栈:数据库与中间件
开发语言·中间件·系统架构·系统安全·创业创新
Bl_a_ck36 分钟前
开发环境(Development Environment)
开发语言·前端·javascript·typescript·ecmascript
每天一个秃顶小技巧1 小时前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
purrrew1 小时前
【Java ee初阶】初始网络
java·网络
程序员Bears2 小时前
从零打造个人博客静态页面与TodoList应用:前端开发实战指南
java·javascript·css·html5
Helibo442 小时前
GESPC++六级复习
java·数据结构·算法
serve the people2 小时前
解决osx-arm64平台上conda默认源没有提供 python=3.7 的官方编译版本的问题
开发语言·python·conda
柒七爱吃麻辣烫3 小时前
在Linux中安装JDK并且搭建Java环境
java·linux·开发语言
极小狐3 小时前
极狐GitLab 容器镜像仓库功能介绍
java·前端·数据库·npm·gitlab