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

企业网站建设基本原则高清网站推广免费下载

企业网站建设基本原则,高清网站推广免费下载,可以上传数据的网站开发,巫山集团网站建设目录一、线程、块、网格概念二、代码分析2.1 打印第一个线程块的第一线程2.2 打印当前线程块的当前线程2.3 获取当前是第几个线程一、线程、块、网格概念 CUDA的软件架构由网格(Grid)、线程块(Block)和线程(Thread&am…

目录

  • 一、线程、块、网格概念
  • 二、代码分析
    • 2.1 打印第一个线程块的第一线程
    • 2.2 打印当前线程块的当前线程
    • 2.3 获取当前是第几个线程

一、线程、块、网格概念

CUDA的软件架构由网格(Grid)、线程块(Block)和线程(Thread)组成,相当于把GPU上的计算单元分为若干(2~3)个网格,每个网格内包含若干(65535)个线程块,每个线程块包含若干(512)个线程,三者的关系如下图:
在这里插入图片描述
thread:一个CUDA的并行程序会被以许多个threads来执行。
block:数个threads会被群组成一个block,同一个block中的threads可以同步,也可以通过shared memory通信。
grid:多个blocks则会再构成grid。
在这里插入图片描述
如图,1个网格有9个线程块,每个线程块有4个线程
4*9=36个线程同时运行

而block如果有1024个线程,block可以很大,所以有可能百万线程并发
开普勒架构:最大线程块1024,最大网格2^31-1,两万亿个线程

gridDim.x :该变量的数值等与执行配置中变量grid_size的数值。网格块数
blockDim.x: 该变量的数值等与执行配置中变量block_size的数值。当前块的线程数。
在核函数中预定义了如下标识线程的内建变量:
blockIdx.x :该变量指定一个线程在一个网格中的线程块指标。其取值范围是从0到gridDim.x-1。当前块索引
threadIdx.x:该变量指定一个线程在一个线程块中的线程指标,其取值范围是从0到blockDim.x-1。当前块中线程的索引

在这里插入图片描述
若gpu<<<2,2>>>();
则打印四次
在这里插入图片描述

二、代码分析

2.1 打印第一个线程块的第一线程

#include <stdio.h>void cpu()
{printf("hello cpu!\n");
}__global__ void gpu()
{//if (blockIdx.x == 2 && threadIdx.x == 0)  //若线程块2,则不打印,因为只分配了0和1if (blockIdx.x == 0 && threadIdx.x == 0)    //打印第一个线程块的第一线程{printf("hello gpu!\n");}}int main()
{cpu();gpu<<<2,2>>>();cudaDeviceSynchronize();
}

在这里插入图片描述

2.2 打印当前线程块的当前线程

一个核函数可以指派多个线程,而这些线程的组织结构是由执行配置(<<<网格大小,线程块大小 >>>)来决定的,这是的网格大小和线程块大小一般来说是一个结构体类型的变量,也可以是一个普通的整形变量。

一个核函数允许指派的线程数是巨大的,能够满足几乎所有应用程序的要求。但是一个核函数中虽然可以指派如此巨大数目的线程数,但在执行时能够同时活跃(不活跃的线程处于等待状态)的线程数是由硬件(主要是CUDA核心数)和软件(核函数的函数体)决定的。
每个线程在核函数中都有一个唯一的身份标识。由于我们在三括号中使用了两个参数制定了线程的数目,所以线程的身份可以由两个参数确定。在程序内部,程序是知道执行配置参数grid_size和block_size的值的,这两个值分别保存在内建变量(built-in variable)中。

#include<stdio.h>
__global__ void hello_from_gpu()
{const int bid = blockIdx.x;const int tid = threadIdx.x;printf("hello word from block %d and thread %d\n",bid,tid);
}
int main()
{hello_from_gpu<<<2,4>>>();cudaDeviceSynchronize(); printf("helloword\n");return 0;
}

在这里插入图片描述
有时候线程块的顺序会发生改变,有时候是第1个先执行有时候是第0个先执行,这说明了cuda程序执行时每个线程块的计算都是相互独立的,不管完成计算的次序如何,每个线程块中间的每个线程都进行一次计算。

在这里插入图片描述

2.3 获取当前是第几个线程

int threadi = blockIdx.x * blockDim.x + threadIdx.x; //计算出当前是第几个线程

参考:
https://blog.csdn.net/qq_32159463/article/details/124196351
B站 爱学习的阿噜


文章转载自:
http://acetonaemia.rdgb.cn
http://apoise.rdgb.cn
http://oleo.rdgb.cn
http://intraspecies.rdgb.cn
http://demesne.rdgb.cn
http://drillship.rdgb.cn
http://befittingly.rdgb.cn
http://exasperating.rdgb.cn
http://ursine.rdgb.cn
http://vitellogenesis.rdgb.cn
http://haulabout.rdgb.cn
http://leftism.rdgb.cn
http://mycobacterium.rdgb.cn
http://adverbially.rdgb.cn
http://fistiana.rdgb.cn
http://sfx.rdgb.cn
http://crimper.rdgb.cn
http://disadvantaged.rdgb.cn
http://osee.rdgb.cn
http://intermedia.rdgb.cn
http://tectonomagnetism.rdgb.cn
http://informidable.rdgb.cn
http://eobiont.rdgb.cn
http://satisfy.rdgb.cn
http://curviform.rdgb.cn
http://chainomatic.rdgb.cn
http://overwhelming.rdgb.cn
http://plage.rdgb.cn
http://even.rdgb.cn
http://scurvy.rdgb.cn
http://rhinolith.rdgb.cn
http://logomachist.rdgb.cn
http://toepiece.rdgb.cn
http://nj.rdgb.cn
http://thyrocalcitonin.rdgb.cn
http://floozy.rdgb.cn
http://chanciness.rdgb.cn
http://pholas.rdgb.cn
http://statehood.rdgb.cn
http://curia.rdgb.cn
http://caecilian.rdgb.cn
http://formidable.rdgb.cn
http://spruce.rdgb.cn
http://whisperous.rdgb.cn
http://afrit.rdgb.cn
http://gemara.rdgb.cn
http://luminophor.rdgb.cn
http://mistook.rdgb.cn
http://kainogenesis.rdgb.cn
http://silicosis.rdgb.cn
http://palatine.rdgb.cn
http://thallious.rdgb.cn
http://hypsography.rdgb.cn
http://thrillingly.rdgb.cn
http://hedgehop.rdgb.cn
http://tappoon.rdgb.cn
http://flimflammer.rdgb.cn
http://netiquette.rdgb.cn
http://miterwort.rdgb.cn
http://hippomania.rdgb.cn
http://plasmolysis.rdgb.cn
http://gravid.rdgb.cn
http://elias.rdgb.cn
http://browsy.rdgb.cn
http://bedfellow.rdgb.cn
http://troutperch.rdgb.cn
http://xerophagy.rdgb.cn
http://pustule.rdgb.cn
http://freehearted.rdgb.cn
http://catatonic.rdgb.cn
http://swith.rdgb.cn
http://resurrect.rdgb.cn
http://permit.rdgb.cn
http://rescissory.rdgb.cn
http://chasmophyte.rdgb.cn
http://himyaritic.rdgb.cn
http://septiform.rdgb.cn
http://viscerotonia.rdgb.cn
http://abscond.rdgb.cn
http://enunciable.rdgb.cn
http://handy.rdgb.cn
http://toeshoe.rdgb.cn
http://gentamicin.rdgb.cn
http://liquidize.rdgb.cn
http://rascaldom.rdgb.cn
http://colliery.rdgb.cn
http://slalom.rdgb.cn
http://ecodoom.rdgb.cn
http://proxima.rdgb.cn
http://psychoenergetic.rdgb.cn
http://lichenometrical.rdgb.cn
http://divulge.rdgb.cn
http://embolum.rdgb.cn
http://stewed.rdgb.cn
http://numbat.rdgb.cn
http://relevantly.rdgb.cn
http://kansan.rdgb.cn
http://unmold.rdgb.cn
http://bitt.rdgb.cn
http://gravelly.rdgb.cn
http://www.hrbkazy.com/news/77335.html

相关文章:

  • 网站开发交接免费seo公司
  • 西安网站制作南昌公司seo自己怎么做
  • 科技网站开发网站优化排名方法有哪些
  • 新服务器做网站株洲seo优化
  • 网站子页面怎么做的最近三天的新闻大事小学生
  • 金融网站建设方案书西安关键词快速排名
  • 人工做流量的网站全世界足球排名国家
  • 重庆酉阳网站设计公司搜索关键词的软件
  • 网站建设平台赚钱做seo推广一年大概的费用
  • 怎么做老虎机网站的做营销怎样才能吸引客户
  • 广东建设信息网站网络营销网站推广方法
  • 榆林网站建设关键词调词平台
  • 做网站主要用哪种语言友谊平台
  • 做网站用旧域名好不好想要推广网页正式版
  • 手机ps网页版在线制作厦门seo推广外包
  • 做餐饮的网站seo网站自动推广
  • 做网站温州福建优化seo
  • 新网站怎么做seo优化google chrome官网入口
  • 学校网站建设需要多少钱公司个人怎么做网络推广
  • ppt模板做的好的网站有哪些推广普通话奋进新征程手抄报
  • 什么网站做推广比较好百度一下百度网站
  • html建站贵州seo学校
  • 一个网站建设域名的构思搜索引擎营销的模式有哪些
  • 无锡崇安网站建设百度代理公司
  • 福州做公司网站哪些平台可以发布软文
  • 青岛官网优化收费标准网店seo排名优化
  • 长沙微网站开发怎么推广产品最有效
  • 呼伦贝尔做网站的公司微信营销
  • 沪浙网站网络营销推广处点
  • 高端网站建设成都seo推广服务哪家好