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

苏州做网站公司乛 苏州聚尚网络郑州小型网站制作公司

苏州做网站公司乛 苏州聚尚网络,郑州小型网站制作公司,帮忙找人做网站,品牌建设促进中心http://blog.csdn.net/OpenHero/article/details/3520578 关于CUDA的global内存访问的问题#xff0c;怎么是访问的冲突#xff0c;怎样才能更好的访问内存#xff0c;达到更高的速度。下面先看几张图#xff0c;这些图都是CUDA编程手册上的图#xff0c;然后分别对这些…http://blog.csdn.net/OpenHero/article/details/3520578 关于CUDA的global内存访问的问题怎么是访问的冲突怎样才能更好的访问内存达到更高的速度。下面先看几张图这些图都是CUDA编程手册上的图然后分别对这些图做解释来理解硬件1.01.1 以及现在最新的硬件的访问内存的区别。 我们在这里再深入的讲解一下global内存对齐的问题每次执行一条明命令的时候都是会按照32个thread为一个warp一起来执行但是在执行的时候又会按照硬件的条件这里有两个限制条件一个是内存访问的时钟和执行core的时钟不一样第二个是为了细粒度的分支的问题然后就会把16个thread组成的half-warp来一次访问global内存才能让访问内存的性能高一些这个可以理解 就像手册上说的那样如果16个threadhalf-warp访问内存的时候如果每一个thread访问32bits就是4个字节那么就可以合并为一个64bytes的访问手册上这点写得有点让人咋一看不太明白~4bytes32bits*16 64bytes就是这么来的如果每一个thread访问64bits8个bytes那么就可以合并为128bytes的访问这里啦由于合并访问的最大限制是128bytes所以最大也按照128bytes一次访问来合并如果超过就得多次访问或者如果没有按照这样的方式对齐访问也会多次访问下面是1.2device之前的访问的几个图这里要把1.2device以前和以后的分开是因为这里在对齐访问的方式的时候有不同的策略先看1.2device以前的能合并为一次访问的情况 下图是编程手册上的图 这里的每一个thread都是访问的对应的地址是对齐的所以可以合并为一个存储event 下面这个图是没有对齐访问就造成了non-coalesced访问的问题下面可以看图说话 左边的那个好理解中间对应的thread访问的地址交叉了thread3和thread4交叉访问了在硬件1.2版本之前的都会造成Non-Coalesced访问 详细的需要说明的是右边的为什么也造成了Non-Coalesced非对齐访问这个是基础问题大家理解的内存对齐是怎么样的按照固定思路或者教材上强调的都是中间过程的内存访问的对齐但是内存是从offset 0x00000000位置开始的就是偏移量0开始的如果要真的满足内存对齐严格的说起来就需要从内存的0地址开始算起再加上我们知道的global内存的对齐方式有几种4位bytes8bytes16bytes这里说的对齐方式注意区别关系再来看看右边的那个图thread0开始从address128的位置开始向下便宜的位置是132-1284 偏移了416个threads整体访问的是16*464是从132开始的从0算起来132-0 132 132/16 8…4,从整体上讲从0偏移位置开始偏移了4个位置这里的就造成了访问的未对齐这个是从整体角度上讲的和左边的图比较一下那个是按照局部对齐来说的注意理解 继续看图说话 左边的图看看算一下局部的时候偏移了从局部和整体来说都会引起未对齐访问 右边的图自己算一下是不是超出了刚才我说的范围所以造成了内存访问的未对齐情况 前面我们看的图都是1.2版本前的硬件的情况下的内存访问情况现在看看1.2版本以后的硬件 这里解释一下什么叫1.2版本的硬件或许有些朋友也不太了解g80架构的都是1.0或者1.1的硬件架构现在的gtx200系列的都是1.3的架构其实1.2的硬件架构或许是Nvidia的一个内部的没有推出产品可能准备提供给低端的产品但是我想没有推出低端的产品直接就上1.3device了市场需求吧~~如果下一步GTX的架构还是按照老路子不改进的话或许Intel的Lrb上来以后对Nvidia的产品就是一个很大的竞争了 不说废话了先看图 1.2以后的硬件版本弱化了threads之间交叉访问的时候没对齐的情况只要大家都在一次访问的64bytes的一个段里面或者128bytes的一个段里面面这样的段访问那就可以不用多次访问当然如果你16个threads分别跨过了16个段那就得产生16个存储event~记住几个段的定义这里说的段就是我们常常理解的对齐的方式全局的内存访问对齐方式8个bits的是按照32bytes对齐16bits的是按照64bytes对齐32bits和64bits都是按照128bytes对齐 在优化代码的时候这个地方是一个值得注意的部分 API函数里面有对齐访问的接口会按照对齐的方式分配global内存给你不过注意其中的一个offset值的使用这个是为了解决全局情况下的对齐偏移的问题cudaMallocPitch这个函数注意使用~
http://www.zqtcl.cn/news/86986/

相关文章:

  • 培训网站欣赏怎么做网站的分类目录
  • 莆田高端网站建设移动端开发语言
  • 金乡县网站开发甘肃谷歌seo
  • 淘宝内部优惠券网站怎么做惠州市建设局建工办网站
  • 网站为什么会被挂马抚州市建设局网站查询
  • 北京网站设计公司价格用vue.js做网站
  • 新十条优化措施网站建设优化培训
  • 南京模板建站定制网站电子商务平台开发
  • 做网站是用的那个开发软件网页qq登录入口官网官方
  • 淘宝客做网站卖什么好东莞电商页面设计公司
  • 重庆网站推广公司哪家好产品设计怎么写
  • 网站做优化每天一定要更新网站目录结构怎么做
  • 北京手机网站设计电话wordpress的极限
  • 外贸黄页网站贺岁币在建设银行那个网站预约
  • 学做卤菜网站成都建设网站价格
  • Dedecms 手机网站示例爱站关键词挖掘查询工具
  • 番禺区网站优化广州 网站设计
  • 乡镇医院网站建设做网站用什么软件?
  • 怎样免费注册自己网站的域名网站建设与规划案例
  • 网站工作室和网络公司上线后wordpress后台无法登陆
  • 网站开发网站设计案例三门峡河南网站建设
  • 哈尔滨网站优化对策家电网站建设
  • 免费个人网站+上传wordpress方正模板
  • 青岛艺腾网站建设网站 68
  • 部分网站建设管理不规范青岛营销型网站建设
  • 公司网站代做免费建立网站教程
  • 学习怎么做网站中国新闻社山西分社
  • 怎么做网站跳转链接wordpress应用镜像
  • 长沙网站定制wordpress 自定义js
  • 网站的死链jsp做网站 案例