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

高性能计算-深入理解共享内存 bankConflict 以及解决方案

1. 背景知识

  • 常说的 bankConflict 指的在共享内存的 store load 过程中产生。

  • 共享内存位于 L1TexCache 上,使用场景通常为从 GlobalMemeory store to SharedM,sharedM load to register。

  • 共享内存的硬件实现:为实现高带宽,共享内存被划分大小相等的存储体,这些模块可以被同时访问。

  • 共享内存的访存原理:如果 n 个数据请求落在n 个不同的存储体(逻辑上叫bank),可以被同时处理,相当于获得单个存储体带宽 n 倍的整体带宽。

2. BankConflict

  • 首先一个warp 的所有线程对共享内存访问的一个内存事务可以是非连续的地址;

  • 如果一次内存事务中不同线程访问数据在一个存储体(包含一个bank不同字节的情况)就会引发串行访问,此时发生 m 路 bankConflict,需要 m 个内存事务请求。

  • 如下图,一个warp 非连续访存不同 bank(存储体),只需要一个访存事务:

image

  • 如下图,如果一个warp 访存同一个bank(存储体),则会产生 bankConflict,在第18号存储体发生串行访问,需要 4 个内存事务:

image

3. 解决方案

  • padding
  • bank_B 的元素在 padding 后的数组中列坐标计算:
  • A: 共享内存的原数据每行占用 bank 数量;
  • P: 行末 Padding bank 数量;
  • B: 数据在原数组中的 bank 坐标;
  • Yi: 元素在 padding 后数组列坐标;
  • i:数据的 bank 标记循环次数(i≥0)。

\[Y_{i} = (i*32 + B) \bmod (A+P) \]

  • Padding 参数 P 的选择:无论对共享内存连续访问还是非连续访问,通常设置为最小值 1;
  • swizzle:混合布局。将共享内存原来的存放地址进行转换,得到新的物理存放地址。避免bankconflict。
  • 算法原理:将地址行列坐标做异或运算的结果覆盖原坐标中的列坐标数据。
  • 将矩阵每8个连续元素分块, 比如 16 * 64大小的矩阵,如下图:
    image
  • addr 地址末三位为tile 内的位置,一行8个元素,只需要定位到 tile 起始位置,所以一定为 000;中间三位为块的列坐标,前三位为块的行坐标。
  • 对于gaddr 在共享内存的原地址addr: B 表示列需要的二进制位数,M 表示一个块内的元素索引需要的二进制位数,S 表示 addr 地址按块划分的行列坐标需要位移的二进制位数=M。
template<uint32_t B,uint32_t M,uint32_t S>
__device__ __forceinline__ uint32_t swizzle(uint32_t srcAddr)
{//行列坐标值取后三位进行异或运算//掩码用来获取行坐标uint32_t mask = (1 << B - 1) << M;uint32_t addr = ((srcAddr >> S) & mask) ^ srcAddr;return addr;
}
http://www.jsqmd.com/news/34962/

相关文章:

  • git base多标签解决方案
  • 详细介绍:LSTM与GRU:解决RNN梯度消失问题的利器(含代码)
  • MySQL索引(二):覆盖索引、最左前缀原则与索引下推详解
  • 2025年广东RBA验厂认证机构权威推荐榜单:BSCI验厂认证/智能工厂申报/BSCI验厂认证实力机构精选
  • 2025年交通信号灯定制厂家权威推荐榜单:红绿灯交通信号灯/机动车信号灯/太阳能信号灯源头厂家精选
  • 2025年啤酒厂设备实力厂家权威推荐榜单:精酿啤酒设备/精酿啤酒厂设备/啤酒设备/啤酒生产设备源头厂家精选
  • 2025年村口村牌石实力厂家权威榜单:入村口村牌石/村标石/村牌石源头厂商精选
  • 一对一直播软件源码,为什么 Java 不支持类多重继承? - 云豹科技
  • Claude Code 体验:让 AI 成为你的编程搭档,效率翻倍指南
  • 2025年铟铋锡合金权威榜单:铟板/铟条/铟方块源头厂商精选
  • 2025年连接器厂家权威推荐榜:USB连接器,电池连接器,TYPE-C连接器,防水TYPE-C/USB连接器优质供应商精选
  • 2025年插座厂家权威推荐榜:耳机插座,DC插座,防水耳机插座源头企业综合测评与选购指南
  • 2025年轻触开关厂家推荐排行榜,检测开关,轻触开关,防水轻触开关,微型轻触开关公司最新精选榜单
  • 2025年墙面隔热涂料权威榜单:厂房隔热材料/外墙隔热涂料/储罐保温隔热涂料实力厂商精选
  • 2025年CNC加工厂家权威推荐排行榜:CNC精密加工/加工中心CNC/cnc电脑锣加工/铝板cnc加工/精密CNC加工公司推荐
  • 噬菌体文库构建全流程详解:从基因获取到噬菌体富集
  • 2025年蒸发器源头厂家权威推荐榜单: 刮板式/刮板式薄膜/双效/废水/多效/横管降膜/MVR/MVR废水/横管降膜蒸发器及蒸发设备生产厂家精选
  • hav-cs50-merge-00
  • OCX与C# 之四:C#中使用OCX
  • 《Qt应用开发》笔记p5 - 教程
  • 2025年结合型井盖实力厂家权威榜单:结合井盖/铝合金井盖/彩色井盖实力厂商精选
  • 2025 11 8
  • 2025 年 11 月氧气分析仪厂家推荐排行榜,在线式氧气,固定式氧气,便携式氧气,手持式氧气,工业氧气分析仪公司推荐
  • 2025年储罐生产厂家权威推荐榜单:卧式/不锈钢/玻璃钢/化工/lng/立式/钢衬/四氟/衬四氟/钢衬四氟/硫酸/液氮储罐源头厂家精选
  • 自建 vs 托管:TCO 与运维边界对比
  • 2025 年 11 月护栏厂家推荐排行榜,道路护栏,桥梁护栏,市政护栏,锌钢护栏,阳台护栏公司推荐
  • 2025 年 11 月润滑油厂家推荐排行榜,工业润滑油,汽车润滑油,发动机润滑油,甲醇发动机润滑油,全合成润滑油公司推荐
  • 2025 年 11 月氮氧化物检测仪厂家推荐排行榜,在线式氮氧化物,固定式氮氧化物,便携式氮氧化物,手持式氮氧化物检测仪公司推荐
  • 2025年套管实力厂家权威推荐榜单:自卷式/双层/开口式护/密封式/螺纹式/20#/自熄/和新/方形/对接/自卷套管源头厂家精选
  • 中转