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

济南酷火网站建设太原汽车网站建设

济南酷火网站建设,太原汽车网站建设,做网站百度关键排名,离线 wordpressCUDA C编程笔记 第四章 全局内存4.4 核函数可达到的带宽4.4.2.4 对角转置【为每个线程分配更独立的任务】 【图】【补图说明】 待解决的问题: 第四章 全局内存 4.4 核函数可达到的带宽 4.4.2.4 对角转置【为每个线程分配更独立的任务】 前置条件场景&#xff1a…

CUDA C编程笔记

  • 第四章 全局内存
    • 4.4 核函数可达到的带宽
        • 4.4.2.4 对角转置【为每个线程分配更独立的任务】
  • 【图】
  • 【补图+说明】

待解决的问题:

第四章 全局内存

4.4 核函数可达到的带宽

4.4.2.4 对角转置【为每个线程分配更独立的任务】

前置条件场景:启用线程块的网格时,线程块会被分配给SM。每个块有唯一的标识符bid,可以按行优先的顺序标注:

int bid = blockIdx.y * gridDim.x + blockIdx.x;//块的标识bid

当启用核函数时,线程块的ID决定分配给SM的顺序,如果所有SM都被占用,剩余的线程块等待有SM空余再分配。但由于线程块完成的速度和顺序不确定,因此可能最初相连的bid也会变得不连续。

下图是笛卡尔坐标系(直角)和对角块坐标系下的块标识顺序。

【图】

对角块坐标系用于确定一维线程块的ID,但访问数据时仍用笛卡尔坐标系。

对角坐标————笛卡尔坐标(直角)的转换

(直角坐标)block_x = (blockIdx.x + blockIdx.y) % gridDim.x;【blockIdx.x对角坐标】
(直角坐标)block_y = blockIdx.x;【blockIdx.y对角坐标】

核函数起始部分:对角坐标到直角坐标的映射计算+直角坐标计算线程索引ix、iy
借助合并读取+交叉写入——>实现转置

//3.对角转置————基于行
//①对角坐标系转直角坐标系②直角坐标系算线程索引ix、iy③转置
__global__ void transposeDiagonalRow(float *out, float *in, const int nx, const int ny){unsigned int blk_y = blockIdx.x;//blk_y直角坐标系,blockIdx.x对角坐标系unsigned int blk_x = (blockIdx.x+blockIdx.y) % gridDim.x;//blk_x直角坐标系,blockIdx.y对角坐标系unsigned int ix = blockDim.x * blk_x + threadIdx.x;//用直角坐标算线程索引unsigned int iy = blockDim.y * blk_y + threadIdx.y;if(ix < nx && iy < ny){out[ix*ny + iy] = in[iy*nx + ix];}
}//3.对角转置————基于列
//在基于行的基础上对换in和out的下标
__global__ void transposeDiagonalRow(float *out, float *in, const int nx, const int ny){unsigned int blk_y = blockIdx.x;//blk_y直角坐标系,blockIdx.x对角坐标系unsigned int blk_x = (blockIdx.x+blockIdx.y) % gridDim.x;//blk_x直角坐标系,blockIdx.y对角坐标系unsigned int ix = blockDim.x * blk_x + threadIdx.x;//用直角坐标算线程索引unsigned int iy = blockDim.y * blk_y + threadIdx.y;if(ix < nx && iy < ny){out[iy*nx + ix] = in[ix*ny + iy];}
}case 6:3.对角转置----基于行kernel = &transposeDiagonalRow;kernelName = "DiagonalRow       ";break;case 7:3.对角转置----基于列kernel = &transposeDiagonalCol;kernelName = "DiagonalCol       ";break;

输出结果如下:

~/cudaC/unit4$ ./4-6.1transposeNsys 6 对角转置-基于行
./4-6.1transposeNsys starting transpose at device 0: NVIDIA GeForce RTX 3090 with matrix nx 2048 ny 2048 with kernel 6
warmup         elapsed 0.000563 sec
DiagonalRow        elapsed 0.000075 sec <<< grid (128,128) block (16,16)>>> effective bandwidth 448.208557 GB~/cudaC/unit4$ ./4-6.1transposeNsys 7 对角转置-基于列
./4-6.1transposeNsys starting transpose at device 0: NVIDIA GeForce RTX 3090 with matrix nx 2048 ny 2048 with kernel 7
warmup         elapsed 0.000561 sec
DiagonalCol        elapsed 0.000064 sec <<< grid (128,128) block (16,16)>>> effective bandwidth 525.139893 GB

查询可得,理论峰值带宽为936 GB/s
基于行的对角是理论峰值的48%↑
基于列的对角是理论峰值的56%↓

结果:对角使得基于行性能提高↑,但使得基于列下降,基于列还是直角坐标性能好

基于行性能提升的原因:DRAM的并行访问
DRAM分区完成发送给全局内存的请求,设备内存中连续的256字节区域分配到连续的分区。使用直角坐标把线程块映射到——>数据块时,全局内存访问无法均匀分配到整个DRAM分区,发生“分区冲突”:内存请求在部分分区内排队等待,但另一部分分区一直空闲未被调用。
对角坐标映射造成了线程块——>数据块的非线性映射,交叉访问不太可能落到一个独立的分区,这导致速度提升。

最佳性能,一般是(所有活跃warp并发访问的)全局内存被均匀地划分。

【补图+说明】


文章转载自:

http://5ayAUzXu.rfjmy.cn
http://m9qq0tVa.rfjmy.cn
http://F5iGo3Ua.rfjmy.cn
http://e6aD06PM.rfjmy.cn
http://1L4Hd2js.rfjmy.cn
http://hdT0rPuJ.rfjmy.cn
http://HUX45wmm.rfjmy.cn
http://CnVvQGZl.rfjmy.cn
http://Emo7saUv.rfjmy.cn
http://bDOWFZeA.rfjmy.cn
http://9Mf7z6Pl.rfjmy.cn
http://MOpxDVHp.rfjmy.cn
http://5Y9oolXe.rfjmy.cn
http://BL7H08Bo.rfjmy.cn
http://JinObHmk.rfjmy.cn
http://Pi5wMTf7.rfjmy.cn
http://95W6RKC4.rfjmy.cn
http://qn6VW05z.rfjmy.cn
http://jcaVOM4F.rfjmy.cn
http://8EHIQPJJ.rfjmy.cn
http://ilGgMAQd.rfjmy.cn
http://sGIdrqYT.rfjmy.cn
http://peQbtai7.rfjmy.cn
http://uo2Lw2C1.rfjmy.cn
http://EMpIzVfS.rfjmy.cn
http://uc6palyx.rfjmy.cn
http://dAVOHYDY.rfjmy.cn
http://3rKNmf8d.rfjmy.cn
http://2ZlQooYV.rfjmy.cn
http://x9DfcFn8.rfjmy.cn
http://www.dtcms.com/wzjs/651390.html

相关文章:

  • 关于1-6月网站建设工作通报网站一定备案
  • 网站建设圣诞素材北京梵客家装官网
  • 手机网站微信登录接口宁波外贸公司
  • wordpress还能打开吗优化官网咨询
  • 网站建设需要哪些方面Wordpress怎么連結mysql
  • 建设数码产品网站的策划书贵州省兴义市建设局网站首页
  • 网站备案客户资料郑州网站推广价格信息
  • 阿里云服务器 wordpressseo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技
  • 最新网站网址永久发布做网站阿里云记录值怎么填
  • 成都高端网站建设哪家好制作网站登录
  • 东莞企业网站找谁网络运营师
  • 一级做a免费体验区不用下载网站卢氏八建公司最新抖音
  • 供求网站建设推动高质量发展的必要性
  • 团购网站模板编辑首页广播电台网站建设方案
  • 仿银行网站 asp中铁三局招聘文员要求身材好
  • 长沙网站策划神经网络跟网络架构
  • 深圳网站设计公司yx成都柚米科技15ui培训心得体会总结
  • dw如何建设网站深圳建筑设计平台网站
  • 家教网站如何做wordpress本地安装教程
  • 外贸平台都有什么网站杭州网站设计网页
  • 360网站提交收录入口下载的网站模板怎么用
  • 视频网站会员系统怎么做网站设计的基本步骤
  • 邵阳市建设网站衡水学校网站建设
  • 网站建设制作视频广州机械网站建设
  • 做网站公司长沙公司食堂设计图
  • 网站留言短信通知网站死链删除
  • 广州花都网站开发wordpress自定义登陆页面跳转
  • 网页设计建立站点步骤阿里巴巴运营思路
  • 软件技术网站怎么做网站分享设计
  • 苏州网站建设丶好先生科技应用商店网站源码