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

做网站需要阿里云吗太原百度seo排名软件

做网站需要阿里云吗,太原百度seo排名软件,前端页面模板,昌平做网站的公司title: 【CUDA 基础】5.4 合并的全局内存访问 categories: - CUDA - Freshman tags: - 合并 - 转置 toc: true date: 2018-06-04 21:34:22 Abstract: 本文介绍使用共享内存进行矩阵转置以减少内存的交叉访问Keywords: 合并,转置 开篇废话 没废话,看以前的…

title: 【CUDA 基础】5.4 合并的全局内存访问
categories:
- CUDA
- Freshman
tags:
- 合并
- 转置
toc: true
date: 2018-06-04 21:34:22

weixingongzhonghao.jpg
Abstract: 本文介绍使用共享内存进行矩阵转置以减少内存的交叉访问
Keywords: 合并,转置

开篇废话

没废话,看以前的废话感觉自己像个傻瓜。。就像以后看我正在写的文字一样。
还记得我们矩阵转置的例子么,在全局内存部分介绍的:4.4核函数可达到的带宽
在4.4中我们当时只有共享内存这一种工具可以使用,为了达到最高效率,我们要配合一级缓存,二级缓存进行编程,来提高转置的效率,因为转置只能在行读取列写入或者列读取行写入之间选择一个,这样就必然会引发非合并的访问,虽然我们利用一级缓存的性质可以提高性能,但是我们今天会介绍我们的新工具共享内存,在共享内存中完成转置后写入全局内存,这样就可以避免交叉访问了。

基准转置内核

在介绍我们的神奇共享内存之前,我们最好先研究出来一下我们的问题的极限在哪,换句话说,我们需要清楚的知道我们最慢的情况(最简单的方式能达到的速度)以及最快的理论速度,理论速度可能会达不到,但是可以接近,最慢速度肯定可以超越,你永远可以写出更慢的程序,所以我们用最简单的方法作为下界,而用正行读取,然后不经变换的写入来作为上限,这一招我们在前面使用过,就是在4.4中,那次我们突破极限了(哈哈,很有可能是计时有问题),但是正常来讲,极限是最好的参考值。
完整的代码在github:https://github.com/Tony-Tan/CUDA_Freshman(欢迎随手star? )
上限:

__global__ void copyRow(float * in,float * out,int nx,int ny)
{int ix=threadIdx.x+blockDim.x*blockIdx.x;int iy=threadIdx.y+blockDim.y*blockIdx.y;int idx=ix+iy*nx;if (ix<nx && iy<ny){out[idx]=in[idx];}
}

下限是我们的too young too naive版本,就是最常规的方法:

__global__ void transformNaiveRow(float * in,float * out,int nx,int ny)
{int ix=threadIdx.x+blockDim.x*blockIdx.x;int iy=threadIdx.y+blockDim.y*blockIdx.y;int idx_row=ix+iy*nx;int idx_col=ix*ny+iy;if (ix<nx && iy<ny){out[idx_col]=in[idx_row];}
}

这两段代码中第一段并没有转置的功能,只是为了测试上限,第二段是naive的转置,前面也讲过,这里就直接贴结果了
copyRow的cpu计时和nvprof结果:
re-1
transformNaiveRow的cpu计时和nvprof结果:

re-2

我们可以得到下表:

核函数CPU计时nvprof计时
copyRow0.001442 s1.4859 ms
transformNaiveRow0.003964 s3.9640 ms

可以看出计cpu计时还是比较准的,在数据量比较大情况下,我们现在的矩阵大小是 212×2122^{12}\times 2^{12}212×212 的大小。
然后是加载和存储全局内存请求的平均事务数(越少越好)
copyRow:
re-3

transformNaiveRow:
re-4

接着我们就开始用共享内存进行操作了。

使用共享内存的矩阵转置

完整内容 https://face2ai.com/CUDA-F-5-4-合并的全局内存访问/

转载于:https://www.cnblogs.com/face2ai/p/9756610.html

http://www.lbrq.cn/news/2778679.html

相关文章:

  • 结合七牛云做视频网站福州关键词排名优化
  • 哪个网站专做民宿软件开发
  • 做网站的一些话术chatgpt 链接
  • 建设部电教中心网站seo自学网免费
  • wordpress内置播放器百度搜索seo
  • 中国进出口贸易官网网站建设优化哪家公司好
  • 营销网站建站公司转让如何进行app推广
  • 做教案找资料有哪些网站站长之家关键词查询
  • wordpress会员制网站自己开一个培训机构流程
  • 网站开发主管岗位职责说明书福州网站优化公司
  • 国家查企业信息查询平台移动网站优化排名
  • 做毕设的网站如何在外贸平台推广
  • 做网站的厉害还是黑网站的厉害拼多多代运营一般多少钱
  • 莞城网站推广自助建站系统代理
  • 河北建设集团有限公司 信息化网站网络营销软文范文
  • 蓝鸟E4A做网站程序网页制作官方网站
  • 佛山java web网站开发营销型网站建设专家
  • 百浪科技做网站怎么样html网页制作软件有哪些
  • 企业网站的建立联系方式东莞有哪些做推广的网站
  • 成品网站价格表b2b平台有哪些平台
  • 哈尔滨网站建设模板策划电商运营培训课程
  • 男科免费咨询短视频搜索优化
  • 网站数据统计怎么做搜索引擎营销方法
  • 免费建设个人手机网站系统优化工具
  • 做网站用什么字体比较好企业网站seo推广
  • 做网站能赚钱吗知乎网络营销推广平台有哪些
  • 成都有哪些网站建设的公司网推技巧
  • 网站建设协议需要注意的问题百度广告优化师
  • php动态网站怎么做的如何注册网站平台
  • 库尔勒网站全免费建立自己的网站
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(17):文法+单词第5回3-复习
  • 决策树剪枝及数据处理
  • STL——string的使用(快速入门详细)
  • BeeWorks 私有化会议系统:筑牢企业会议安全防线,赋能高效协同
  • thingsboard 服务器在2核CPU、2G内存资源配置下如何调优提速,适合开发/演示
  • [辩论] TDD(测试驱动开发)