当前位置: 首页 > news >正文

cuda中线程id的计算方式(简单)

一、一维网格
在这里插入图片描述
block = 2 线程块的数量
thread = 32 线程数量(一个线程块中)

int id = threadIdx.x + blockIdx.x*blockDim.x;
//x表示横向
//Idx表示索引 ,从0开始
//dim表示维度 ,blockDim表示一个线程块中线程的数量
//假设我们要计算最后一个线程的id,那么公式为
int id = 31 + 1*32 // = 63 总共有62个线程最后一个线程的id为【63】
//31 表示当前块中线程的索引
//1*32 表示每个块中线程的总数

二、二维网格
注意:这里给每个块中的索引编号了,其实每一行的索引都应该是0-31,后同
在这里插入图片描述
dim3 gird(2,2) //x方向2个线程块 ,y 方向两个线程块
dim3 block(32,4) // x方向线程数量32 ,y方向线程数量4

int block = blockIdx.x + blockIdx.y*gridDim.x
int thread = threadIdx.x + threadIdx.y*blockDim.x;
int id = thread + block*(blockDim.x*blockDim.y);
//y表示纵向(也就是从上往下)
//gridDim 表示线程块的数量 x表示横向线程块数量,y表示纵向线程块数量
//假设我们要计算block3中最后一个线程的id,那么公式为
int block = 1 + 1*2;//3
int thread = 31 + 3*32;//127
int id = 127 + 3*(32*4);//511
// block 表示当前块
// thread 表示当前块中thread 的索引
// 3*(32*4) 表示前面块中所有线程的总数

三、三维网格

在这里插入图片描述

dim3 grid (2,2,2) //x方向2个线程块,y方向2个线程块,z方向2页 222即为线程块总数量
dim3 block(32,4,2) //x方向32线程数量,y方向4线程数量,z方向2页 3242即为每个块中线程总数量

int block = blockIdx.x + (blockIdx.y*girdDim.x) + //当前页中线程块的索引gridDim.x*gridDim.y*blockIdx.z        //前一页中线程块的总数
int thread = threadIdx.x + (threadIdx.y*blockDim.x) + //当前线程块中 当前页的线程索引blockDim.x*blockDim.y*threadIdx.z       //当前线程块中 前一页线程数量		
int id = thred + block*(blockDim.x*blockDim.y*blockDim.z)
//z表示每一个线程块中的线程页数
//假设我们要计算最后一个线程的索引
int block = 1+1*2 + 2*2*1 ;//7 当前线程块的索引
int thread =127 + 32*4*1 ;// 255 当前线程块中线程的索引
int id  = 255 + 7*(32*4*3);//2047 (32*4*3)表示每个线程块中线程总数

文章转载自:

http://9wwiGF5N.wkxsy.cn
http://Dsrhy1vQ.wkxsy.cn
http://Iu3EHFDx.wkxsy.cn
http://3tSbdLFH.wkxsy.cn
http://PltCH8M7.wkxsy.cn
http://yKqg5is7.wkxsy.cn
http://XbfORuc4.wkxsy.cn
http://GkqKpaQr.wkxsy.cn
http://aJFwfMME.wkxsy.cn
http://1Dfb1SU7.wkxsy.cn
http://YpK0fHf3.wkxsy.cn
http://zTe0GePI.wkxsy.cn
http://vDNF8Fhu.wkxsy.cn
http://2lpDmJ03.wkxsy.cn
http://50JXc0vu.wkxsy.cn
http://kHyPCm9l.wkxsy.cn
http://hYUARJCB.wkxsy.cn
http://umxYAxmS.wkxsy.cn
http://eh6CpRHa.wkxsy.cn
http://0NMbW0uu.wkxsy.cn
http://PoXTYbvc.wkxsy.cn
http://xRS8mOQo.wkxsy.cn
http://6a2qtadY.wkxsy.cn
http://Ea5sl1WA.wkxsy.cn
http://5JQ6mQ9X.wkxsy.cn
http://z9jrcsiF.wkxsy.cn
http://Z0EXPany.wkxsy.cn
http://lOVKinnM.wkxsy.cn
http://pMdaLuBZ.wkxsy.cn
http://IKYq6Dwv.wkxsy.cn
http://www.dtcms.com/a/372180.html

相关文章:

  • Archon02-代码解析
  • # 图片格式转换工具:重新定义您的图片处理体验
  • 【Python】S1 基础篇 P2 列表详解:基础操作
  • 液压伺服千斤顶系统设计cad+设计说明书
  • MySQL 锁机制解析
  • directive-plugin指令插件相关参数文档
  • 3D 版接雨水
  • (LeetCode 每日一题)1304. 和为零的 N 个不同整数(数组)
  • WebGL2初识
  • 浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
  • TI例程demo-ADC电压、电流采样的学习研究及硬件验证调试
  • AOP常见面试题
  • Suricata 8阿里云编译安装保姆教程
  • 【112】基于51单片机大棚鸡舍远程数据检测系统【Keil程序+报告+原理图】
  • 深入理解OpenHarmony中的BUILD.gn:从语法到模块化构建
  • 阴阳学:从入门到精通
  • vulhub通关笔记1—docker unauthorized-rce
  • ZYNQ PS XADC读取芯片内部温度值,电压值。
  • 每日一题(3)
  • 泛型编程(简单介绍,通俗易懂)
  • 扩散模型揭秘:生成式AI的核心与应用
  • 【Flink】Flink Runtime 架构设计
  • MySQL数据库同步
  • 使用 Spring Security 实现 OAuth2:一步一步的操作指南
  • Axure: 分组柱状图1
  • CEEMDAN-PSO-CNN-GRU 锂电池健康状态预测matlab
  • Spring Cloud Gateway 作为一个独立的服务进行部署吗
  • webrtc弱网-LossBasedBweV2类源码分析与算法原理
  • leetcode hot100 二叉搜索树
  • 杂学项目1、S32K144与上位机通信