禅城网站开发济宁专业建网站

diannao/2026/1/24 11:16:20/文章来源:
禅城网站开发,济宁专业建网站,装修图片,响应式页面怎么写相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 第一百篇博客#xff0c;写点不一样的。 当核函数在主机端被调用时#xff0c;它会被转移到设备端执行#xff0c;此时设备会根据核函数的调用格式产生对应的线程(…相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 第一百篇博客写点不一样的。  当核函数在主机端被调用时它会被转移到设备端执行此时设备会根据核函数的调用格式产生对应的线程(thread)并且每个线程都执行核函数指定的语句。 CUDA提供了线程的层次结构以便于组织线程自顶而下可以分为线程格、线程块和线程。由一个内核启动的所有线程统称为一个线程格(grid)同一线程格中的所有线程共享相同的全局内存空间。一个线程格由多个线程块(block)构成一个线程块由包含若干线程同一线程块内的线程可以通过以下两种方式协作而不同线程块内线程不能协作。 同步共享内存 线程通过下面两个核函数的预置变量来区分彼此预置变量代表着CUDA在运行时为每一个进程都分配了这两个变量基于这两个变量可以将一块数据分给不同的进程处理。 blockIdx线程块在线程格内的索引threadIdx线程在线程块中的索引 这两个变量是由一个名为uint3的结构定义的这实际上就是CUDA内置的一个包含三个无符号整数的结构体如下所示。 //这个定义在vector_types.h头文件中 struct __device_builtin__ uint3 {unsigned int x, y, z; };typedef __device_builtin__ struct uint3 uint3; 根据定义这两个变量可以通过下面的方式访问结构的成员。 blockIdx.x //线程块索引的x分量 blockIdx.y //线程块索引的y分量 blockIdx.z //线程块索引的y分量 threadIdx.x //线程索引的x分量 threadIdx.y //线程索引的y分量 threadIdx.z //线程索引的z分量 为什么这两个结构都是三个分量因为CUDA最多支持组织三维的层次结构即线程块在线程格中的分布最多有三个维度而线程在线程块中的分布最多有三个维度。CUDA使用了下面两个预置变量来保存层次结构的维度大小。 blockDim线程块的维度大小用线程块中的线程数来表示gridDim线程格的维度大小用线程格中的线程块数来表示 这两个预置变量是由一个名为dim3的结构定义的这实际上也是CUDA内置的一个包含三个无符号整数的结构体如下所示。 //这个定义在vector_types.h头文件中 struct __device_builtin__ dim3 {unsigned int x, y, z; #if defined(__cplusplus) #if __cplusplus 201103L__host__ __device__ constexpr dim3(unsigned int vx 1, unsigned int vy 1, unsigned int vz 1) : x(vx), y(vy), z(vz) {}__host__ __device__ constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {}__host__ __device__ constexpr operator uint3(void) const { return uint3{x, y, z}; } #else__host__ __device__ dim3(unsigned int vx 1, unsigned int vy 1, unsigned int vz 1) : x(vx), y(vy), z(vz) {}__host__ __device__ dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {}__host__ __device__ operator uint3(void) const { uint3 t; t.x x; t.y y; t.z z; return t; } #endif #endif /* __cplusplus */ };typedef __device_builtin__ struct dim3 dim3; 根据定义这两个变量可以通过下面的方式访问结构的成员。 blockDim.x //线程块x方向的维度大小 blockDim.y //线程块y方向的维度大小 blockDim.z //线程块z方向的维度大小 gridDim.x //线程格x方向的维度大小 gridDim.y //线程格y方向的维度大小 gridDim.z //线程格z方向的维度大小 通常情况下一个线程格拥有两个维度即一个线程块拥有三个维度。如果维度数小于3则多余的维度对应的Dim变量成员会被初始化为1。 需要特别说明的是上面谈到的四个预置变量只有在核函数内部也可以说设备端才能访问到。而在主机端为了调用核函数可以自行定义dim3数据类型的变量这些在主机端定义的变量在核函数内部是不可访问的。 下面的程序验证了如何使用这些预置变量以及自行定义dim3数据类型的变量。 #include cuda_runtime.h #include stdio.h__global__ void checkIndex(void) //定义核函数显示本进程的预置变量 {printf(threadIdx:(%d, %d, %d)\n, threadIdx.x, threadIdx.y, threadIdx.z);printf(blockIdx:(%d, %d, %d)\n, blockIdx.x, blockIdx.y, blockIdx.z);printf(blockDim:(%d, %d, %d)\n, blockDim.x, blockDim.y, blockDim.z);printf(gridDim:(%d, %d, %d)\n, gridDim.x, gridDim.y, gridDim.z);}int main(int argc, char **argv) {//定义数据量int nElem 6;//定义了两个dim类型的变量block和grid用于核函数调用dim3 block(3); //注意这里使用了构造函数创建结构变量dim3 grid((nElem block.x - 1) / block.x);//显示block和grid的分量值printf(grid.x %d grid.y %d grid.z %d\n, grid.x, grid.y, grid.z);printf(block.x %d block.y %d block.z %d\n, block.x, block.y, block.z);//使用block和grid进行核函数调用checkIndexgrid, block();//复位设备端cudaDeviceReset();return(0); } 因为printf函数只支持Fermi架构以上的GPU架构所以在编译时需要指定架构为sm_20或以上如下所示默认情况下nvcc会产生它所支持的最低版本架构的代码。 $nvcc -archsm_20 checkDimension.cu -o check $./check 程序的输出如下所示。  grid.x 2 grid.y 1 grid.z 1 block.x 3 block.y 1 block.z 1 threadIdx:(0, 0, 0) threadIdx:(1, 0, 0) threadIdx:(2, 0, 0) threadIdx:(0, 0, 0) threadIdx:(1, 0, 0) threadIdx:(2, 0, 0) blockIdx:(0, 0, 0) blockIdx:(0, 0, 0) blockIdx:(0, 0, 0) blockIdx:(1, 0, 0) blockIdx:(1, 0, 0) blockIdx:(1, 0, 0) blockDim:(3, 1, 1) blockDim:(3, 1, 1) blockDim:(3, 1, 1) blockDim:(3, 1, 1) blockDim:(3, 1, 1) blockDim:(3, 1, 1) gridDim:(2, 1, 1) gridDim:(2, 1, 1) gridDim:(2, 1, 1) gridDim:(2, 1, 1) gridDim:(2, 1, 1) gridDim:(2, 1, 1) 写在最后这是我的第100篇博客回想从写第一篇博客到现在也只有短短10个月但是发博客似乎已经成为了我的习惯希望自己能一直坚持下去努力提升自己的技术 最后的最后感谢我的父母和小李同学一直以来的支持与帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建网站价格仪陇建设局网站

手动修改7zip图标理论知识制作ico图标文件替换资源重建图标缓存效果图替换文件7-Zip的自带图标是公认的丑,所以网上有很多7-Zip的图标美化工具,用的最多的就是 7-Zip Theme Manager,自带很多主题,但是最近我再使用7zTM修改图标是却…

毕业设计网站开发做网站宁夏

以太网报文格式:IP 报文格式:UDP 报文格式:校验和函数:/*******************************************************功能:校验和函数参数:buf: 需要校验数据的首地址nword: 需要校验数据长度的一半返回值&am…

建站魔方极速网站建设三亚房产网站建设

结构 struct 结构是使用struct关键字定义的 结构与类相似,但有两大区别: 1.结构属于值类型,而类属于引用类型; 2.结构是隐式密封的,也就是不可继承的,而一般的类不是隐式密封的. 其他区别: 3.结构中不能再定义无参数构造函数或析构函数,而类中可以 4.结构中普通字段不能直接赋值…

网站备案幕布可以ps么淘宝网页设计与制作教程

本文涉及知识点 贪心 回溯 字符串 LeetCode2014. 重复 K 次的最长子序列 给你一个长度为 n 的字符串 s ,和一个整数 k 。请你找出字符串 s 中 重复 k 次的 最长子序列 。 子序列 是由其他字符串删除某些(或不删除)字符派生而来的一个字符串…

哪个网站做动图重庆免费微网站

第85套: 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除&#xf…

网站开发职位介绍宁波建设网站公司

作者 | 侯淼淼 出品 | 《新程序员》当人们提及“程序员”这一职业的时候,大多数人的第一想法往往是高薪。然而近年来,随着造车势力的兴起,新一轮的高薪岗位抢人大战正式打响。2021年以来,一汽、东风等传统车厂招聘岗位数量持…

太平洋网站开发做自行车车队网站的名字大全

10 月 5 日凌晨,Vue.js 框架的作者兼核心开发者尤雨溪公布了尚处于 Pre-Alpha 状态的 Vue 3 源码。说学不动的童鞋抓紧剩余的假期时间撸一遍源码吧 : D作者表示,Vue 3 主要的架构改进、优化和新功能均已完成,剩下的主要任务是完成一些 Vue 2 …

个人网站创建平台广元市城乡规划建设监察大队网站

近年来,CTV(联网电视)在数字营销界正迅速崛起,成为最受青睐和增长迅猛的推广形式之一。 随着更多联网设备的普及,越来越多观众正在从传统电视快速转移到流媒体环境,对传统电视广告取而代之的便是 CTV 广告。据 eMarketer 数据显示,未来四年,CTV 市值将从今年的 250 亿美元增长到…

东营网站设计制作遵义市和城乡建设局网站

每天学习一个Linux命令之passwd 简介 passwd是Linux下用于修改用户密码的命令。它允许系统管理员或用户修改自己的密码,提供了很多选项以满足不同的需求。 命令选项 passwd命令有以下可用选项: -a:显示密码的更改时间和上一次更改密码的…

秦皇岛哪里做网站深圳十佳工业设计公司有哪些

xodr的geoReference标签介绍 经纬度投影 xodr文件projlatlong&#xff0c;说明需要使用经纬度投影代表x,y,z <geoReference>projlatlong ellpsWGS84 datumWGS84</geoReference>xodr文件projtmerc&#xff0c;说明需要使用横轴墨卡托投影(将经纬度投影转为墨卡托投…

快站怎么搭建淘客链接无锡软件网站开发公司

前言 过完年了&#xff0c;准备实习的你是已经在实习了&#xff0c;还是已经辞职回家过年&#xff0c;准备年后重新找工作呢&#xff0c;又或者是准备2021年春招&#xff1f; 那么还没没踏出校门或者是刚出校门没多久的同学们该如何准备前端校招的面试呢&#xff1f; 学习路线…

鄞州网站建设公司做好公司网站

vue3官方文档&#xff1a;Vue3 vue3创建应用实例 creatApp(根组件) vue3挂载全局组件、router、store use() 简介OptionsAPI与CompositionAPI的区别 1、OptionsAPI数据、方法、计算属性等&#xff0c;是分散在data、methods、computed中的&#xff0c;若想新增或者修改一…

苏州网站建设找哪家上海app开发推荐中伟科

当我们开始着手写一本Asterisk书的时候&#xff08;大概五年前&#xff09;&#xff0c;我们确信Asterisk将会从根本上改变通讯行业。今天&#xff0c;我们预言的这场革命几乎就要完成了。Asterisk现在是世界上最成功的PBX&#xff0c;并且是通讯行业的公认技术&#xff08;尽管…

电商平台网站开发过程是什么域名展示网站源码

Linux 下安装 Git 1 参考2 安装2.1 通过 yum方式安装&#xff08;不推荐&#xff09;2.2 通过源码编译安装&#xff08;推荐&#xff09; 3 配置SSH 1 参考 Linux 下安装 Git 2 安装 2.1 通过 yum方式安装&#xff08;不推荐&#xff09; 在Linux上安装git仅需一行命令即可…

建网站的宽带多少钱医院建设官方网站必要性

相信各位在进行uni-app开发的时候会遇到各种关于异步回调问题&#xff0c;例如要传code给后端以换取session_key&#xff0c;在这之前需要先调用 uni.login&#xff0c;所以执行的顺序是必须同步等待的。在写这篇文章之前对于整体的流程概念需要做一个梳理&#xff0c;以便能更…

wordpress插件配置文件东莞营销网站建设优化

第一个程序就遇到这么恶心的bug&#xff0c;也查了很多类似的问题是什么情况&#xff0c;后来无意中菜解决了这个bug&#xff0c;确实也是devicps下面加一个参数&#xff0c;但是找了半天 这是我遇到这个问题的解决办法。其他解决办法如下&#xff1a; https://blog.51cto.com…

建设网站需要从哪方面考虑免费百度seo引流

前言 TCP&#xff08;传输控制协议&#xff09;是互联网协议&#xff08;IP&#xff09;中的一种重要传输层协议&#xff0c;用于在通信的计算机之间建立可靠的、有序的和错误校验的数据传输。在TCP连接中&#xff0c;数据传输是双向的&#xff0c;因此需要一种机制来开始和结…

企业网站的制作公司网站打开的速度慢

1. 安装 安装 Nginx 1.1去官网下直接下载&#xff0c;解压缩 start nginx就可以使了&#xff0c;常用命令&#xff1a; start nginx # 启动 nginx -s reload # 修改配置后重新加载生效 nginx -s reopen # 重新打开日志文件 nginx -t # 配置文件检测是否正确 1.2 安装Jenkins…

成都设计公司网站企业管理培训课程机构

文章目录599. 两个列表的最小索引总和521. 最长特殊序列 Ⅰ645. 错误的集合小彩蛋599. 两个列表的最小索引总和 假设Andy和Doris想在晚餐时选择一家餐厅&#xff0c;并且他们都有一个表示最喜爱餐厅的列表&#xff0c;每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索…

以学校为目标做网站策划书自己可以学着做网站吗

CSS入门1_CSS概要1.1_CSS引入方式2_CSS选择器3_字体样式3.1_字体属性3.2_字体类型&#xff1a;font-family3.3_字体大小&#xff1a;font-size3.4_字体粗细&#xff1a;font-weight3.5_字体颜色&#xff1a;color3.6_总结4_文本样式4.1_文本样式属性4.2_首行缩进&#xff1a;te…