bank conflict

news2024/11/25 20:30:37

前置知识:

  • shared memory 被分成 32 个 bank
  • 一个 warp 32 个线程
  • 每个 bank 4 byte
  • 如果同一 warp 中不同线程访问同一 bank 的不同地址则发生 bank conflict

请注意需要是一个 warp 中的不同线程!如果一个线程访问 shared memory 的两个元素,而这两个元素是同一 bank 的不同地址时,不会发生 bank conflict。

比如下面的代码:

blockDim.x 为 256,sdata 为 shared memory。第一个框中的代码会发生 bank conflict,比如在第一次循环中第一个 warp 的 0 号线程访问 0, 1 元素,而第一个 warp 的 16 号线程会访问 32, 33 元素,而 0 和 32 属于同一 bank, 16 和 33 属于同一 bank,所以发生 bank conflict。

请注意第二个框的代码为什么不会发生 bank conflict!因为尽管第一个 warp 的 0 号线程访问共享内存中 0 和 128 元素,这两个是同一 bank 的不同地址,但是这是一个线程发出的请求,只需要一次事务就能完成(个人理解),所以不会发生 bank conflict(需要不同线程访问统一 bank 的不同地址才会发生 bank conflict)。后面的线程同理。

下面看一个特殊情况,一个线程存储 4 个浮点数,根据下图可以看到 0 号线程和 8 号线程在访问统一存储体的不同地址,按理是会发生 bank conflict 的,但是却没有

看看专家的回复:一个线程存储四个 float 的话,一个 warp 就是 4 * 128 byte 了,而 GPU 最大事务的大小是 128 bytes,所以你的这个 warp 就会被分成 4 次事务,T0-T7 是一次事务,T8-T15是一次事务。。 而 T0-T7 没有发生 bank conflict,别的事务同理,所以不会发生 bank conflict。

参考资料:

【BBuf的CUDA笔记】三,reduce优化入门学习笔记 - 知乎 

How to understand the bank conflict of shared_mem - CUDA Programming and Performance - NVIDIA Developer Forums

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1426414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ArcGIS Pro】从0开始

1.导入excel,需要安装驱动程序 安装用于 Microsoft Excel 文件的驱动程序 https://pro.arcgis.com/zh-cn/pro-app/latest/help/data/excel/prepare-to-work-with-excel-in-arcgis-pro.htm 2.修改投影坐标系 点到地图图标上,右键才能设置坐标系。 3.…

MSVC++远程调试

1. 介绍 MSVC的调试功能非常强大,可以下断点,单步调试,查看堆栈变量信息等。实际用于生产的电脑环境复杂,更容易发生Bug。生产电脑,由于各种原因有些可能无法安装MSVC用来现场调试。基于打印日志,查看日志…

Elasticsearch:将文档级安全性 (DLS) 添加到你的内部知识搜索

作者:来自 Elastic Sean Story 你的企业很可能淹没在内部数据中。 你拥有问题跟踪、笔记记录、会议记录、维基页面、视频录制、聊天以及即时消息和私信。 并且不要忘记电子邮件! 难怪如此多的企业都在尝试创造工作场所搜索体验 - 为员工提供集中、一站…

如何部署Docker Registry并实现无公网ip远程连接本地镜像仓库

文章目录 1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址 Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)…

java程序读取并控制串口设备

监听串口,接收它们发过来的数据,进行处理。 一、概况 前不久做的一个项目,需要读取水下传感器的数据。这些传感器通过串口与外界交互。我们写了一个java程序,接收传感器传送的数据,同时也下发命令,控制部…

车载电子电器架构 —— IP地址获取策略

车载电子电器架构 —— IP地址获取策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自…

DHCP简介

定义 动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。即使规模较小的网络,通过DHCP也可以使后续增加网络设备变得简单快捷。 DHCP是在BOOTP(BOOTstrap Protoc…

WiFi 7 的核心要点

目录 WiFi 7 是什么? WiFi 7 的主要feature功能: 320Mhz channel 4K QAM Multi-Link Operation (MLO),多链路操作 512 block ACK OFDMA:multiple RUs to single STA. 总结:性能是第一优先级,WiFi 7&#xf…

Java的JVM学习一

一、java中的内存结构如何划分 栈和堆的区别: 栈负责处理运行,堆负债处理存储。 区域名称作用虚拟机栈用于存储正在执行的每个Java方法,以及其方法的局部变量表等。局部变量表存放了便器可知长度的各种基本数据类型,对象引用&am…

Vue3_基础使用

vue2的选项式与vue3的组合式区别: 选项式:vue2中数据与方法计算属性等等,针对一个数据的处理在不同的配置中,当业务复杂时很难维护,修改起来也不好查找。 vue3的组合式:将针对数据的方法计算属性等等放在一…

开源编辑器:ONLYOFFICE文档又更新了!

办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…

2024数学建模美赛赛题翻译速览来了!

美赛6点已经开赛了。 先带来美赛翻译速览吧,图片形式的,如果想要文档形式的可以直接点击领取: 免费资料​pan.baidu.com/s/1IjAMTI7V3i_GWexVUp9DrQ?pwdsmpp A: B: C: D: E: F&a…

鸿蒙开发-UI-页面路由

鸿蒙开发-UI-组件 鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 文章目录 一、基本概念 二、页面跳转 1.router基本概念 2.使用场景 3.页面跳转参数传递 三、页面返回 1.普通页面返回 2.页面返回前增加一个询问框 1.系统默认询问框 2.自定义询问框 总…

在Windows系统中执行DOS命令

目录 一、用菜单的形式进入DOS窗口 二、通过IE浏览器访问DOS窗口 三、复制、粘贴命令行 四、设置窗口风格 1.颜色 2.字体 3.布局 4.选项 五、Windows系统命令行 由于Windows系统彻底脱离了DOS操作系统,所以无法直接进入DOS环境,只能通过第三方软…

UE4学习笔记 FPS游戏制作3 添加武器

文章目录 章节目标为骨骼添加武器挂载点添加武器 章节目标 本章节为手部添加一个武器挂载点,并挂载一个武器 为骨骼添加武器挂载点 添加挂载点需要以一个动画片段为基础,为骨骼添加挂载点。 首先找到我们需要的动画片段,通常是idle 双击打…

8、应急响应-战前溯源反制主机蜜罐系统HFishHIDSElkeidWazuh

用途:个人学习笔记,欢迎指正 目录 背景: 一、潮源反制-平台部署-蜜罐-Hfish 二、溯源反制-平台部署-HIDS-Wazuh 三、溯源反制-平台部署-HlDS-Elkeid-hub 背景: 攻击者对服务器存在着各种威胁行为,作为安全人员&am…

React实现组件扩展机制

在java中,SPI机制是Java中提供的一种服务发现机制。同样,前端也很需要这种机制,这样可以做到组件可插拔,可替换,减少相互冗余。 快速使用 1.扩展点使用 通过使用Extension组件定义扩展点,通过name标记扩展…

数据结构—动态查找表

动态查找介绍 1. 动态查找的引入:当查找表以线性表的形式组织时,若对查找表进行插入、删除或排序操作,就必须移动大量的记录,当记录数很多时,这种移动的代价很大。 2. 动态查找表的设计思想:表结构本身是…

亚信安慧的AntDB数据库:稳定可靠的保障

亚信安慧AntDB数据库在运营商自主可控替换项目中的成功应用,具有极其重要的意义。该数据库的落地,不仅为这一项目注入了强大的支持力量,还在更大程度上提升了整体的运营效能。作为一种高效可靠的数据库解决方案,AntDB引入了先进的…

k8s存储之PV、PVC

在k8s集群中,资源存储会散落到各个工作节点上,这样对用资源调用很不方便,那么k8s是如何实现存储资源共享的呢,本文浅尝辄止的探讨一下,k8s是通过pv、pvc实现的。 一、PV、PVC的概念 1、持久卷(PV) pv是Pe…