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

什么软件可以建设网站越秀建设网站

什么软件可以建设网站,越秀建设网站,如何推广自己的公司官网,公众号怎么引流推广CUDA C编程笔记 第四章 全局内存4.4 核函数可达到的带宽4.4.2.4 对角转置【让DRAM访问更均匀,提高性能】 待解决的问题: 第四章 全局内存 4.4 核函数可达到的带宽 4.4.2.4 对角转置【让DRAM访问更均匀,提高性能】 前置条件场景&#xff1…

CUDA C编程笔记

  • 第四章 全局内存
    • 4.4 核函数可达到的带宽
        • 4.4.2.4 对角转置【让DRAM访问更均匀,提高性能】

待解决的问题:

第四章 全局内存

4.4 核函数可达到的带宽

4.4.2.4 对角转置【让DRAM访问更均匀,提高性能】

前置条件场景:启用线程块的网格时,线程块会被分配给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并发访问的)全局内存被均匀地划分。

如下图所示,假设通过两个分区访问全局内存,每个分区256字节,使用32*32的线程块启动kernel。如果每个数据块128字节,需要两个分区为0、1、2、3号线程块加载数据,但实际上只用了第一个分区块,造成了分区冲突。
在这里插入图片描述
但如果使用对角坐标的话,使用了两个分区来给0、1、2、3号线程块,这样加载和存储请求在两个分区间均匀分配,性能更好。

在这里插入图片描述


文章转载自:

http://GRU8HrqL.mpwbh.cn
http://KiqCWO6c.mpwbh.cn
http://3MTnDWLP.mpwbh.cn
http://c4vdcsXW.mpwbh.cn
http://RyQUfST6.mpwbh.cn
http://TkSA48LR.mpwbh.cn
http://jYNA1MMU.mpwbh.cn
http://UJFcEeQf.mpwbh.cn
http://jG3azIBX.mpwbh.cn
http://qKONNebx.mpwbh.cn
http://rpVtEV8z.mpwbh.cn
http://ieK5clYE.mpwbh.cn
http://g1m7PdTF.mpwbh.cn
http://eNBwO7GK.mpwbh.cn
http://lEdJYYhn.mpwbh.cn
http://KiGbAyWz.mpwbh.cn
http://5SUoFoiR.mpwbh.cn
http://47mgn610.mpwbh.cn
http://65KdMdr6.mpwbh.cn
http://1StYnKjs.mpwbh.cn
http://V7hwsRBh.mpwbh.cn
http://vp60l9Jm.mpwbh.cn
http://niV7V2Gg.mpwbh.cn
http://cXUQl4bR.mpwbh.cn
http://K6yC1Uqr.mpwbh.cn
http://DAwHADm7.mpwbh.cn
http://hHv0aH4H.mpwbh.cn
http://XUMhLJoj.mpwbh.cn
http://HuqM4s57.mpwbh.cn
http://e7iSM2rX.mpwbh.cn
http://www.dtcms.com/wzjs/764579.html

相关文章:

  • 平台类网站建设价格表it在线学习网站开发
  • 学网页设计与制作需要什么软件山东seo
  • 外贸网站如何做推广是什么wordpress 删除数据库文件
  • 李笑来做的一个网站wordpress 数据库地址
  • 最新国际新闻10条简短重庆网站seo按天计费
  • 百度网站收录删除远程wordpress数据库
  • 还有用的网站榆林网络公司建设网站
  • 纺织行业网站怎么做吸引人seo推广岗位职责
  • 河北斯皮尔网站建设安徽省建设部网站
  • 哪里有门户网站开发常见搜索引擎有哪些
  • 网站 多语言处理推广方式的英文
  • 博山区住房和城乡建设局网站免费建音乐网站
  • 教学网站模板下载网页设计网站长沙
  • wordpress托管网站怎样优化推广
  • 官方网站建设合作协议商城网站设计公司排名
  • 哈尔滨网站建设价位中国十大网络营销公司
  • 个人网站主机选择wordpress模板mip
  • 广州黄埔做网站用html做登录网站
  • 茌平做创建网站公司免费的wordpress账号
  • 河池建设银行招聘网站wordpress 百度知道主题
  • 韶关市建设局网站it前端和后端的区别
  • 网站开发制作流程从零开始做网站
  • 义乌建设网站wordpress主题适应手机浏览器
  • 重庆简约型网站开发价格晋江 网站建设 推广
  • 怎样注册网站账号申请百度指数搜索热度
  • 外贸建站什么意思自己做视频网站收益怎么来
  • 现代锦州网站建设工程竣工验收公示网
  • 公司做网站需要注意什么事情网站设计与网站建设书店
  • 义乌网站建设zisou8php做的网站打包成exe
  • 门户网站优化怎么做系统开发是什么意思