首页 > 系统相关 >内存可见于内存可用

内存可见于内存可用

时间:2023-12-09 14:55:58浏览次数:36  
标签:可用 Cache 写入 可见 L2 内存 SM L1

在GPU执行过程中有责任保证接下来访问的这块内存是保证有效的,也就是确保先前写入的数据对目标单元可见。简单介绍一下GPU Cache体系,平时听得比较多的是CPU Cache,但是GPU同样有着自己的Cache体系。

如下图所示,在这里可以看GPU同样是有着L1/L2 Cache的架构。

 

那么在GPU中是如何保证先前写入的数据保证对目标单元可见呢?答案是通过L1/L2 Cache的配合来完成,首先L1 Cache用于存储SM(Streaming multiprocessor,

可以认为一个大的计算单元)内的数据,在SM内的运算单元能够共享该L1 Cache但是跨SM之间的L1 Cache不能相互访问。而L2 Cache是全部SM都可以访问。

根据这个特性L1 Cache可以通过L2 Cache来保证Cache一致性。当一个SM完成计算时将其结果写入L1 Cache中。后续将其结果更新到L2 Cache中。

其它 L1 Cache通过特定的一致性指令从L2 Cache中获取最新写入的数据,确保使用最新的数据保证了其数据一致性。

那么对于Vulkan来说这个代表了什么?别忘了同步也需要保证内存依赖,那么在每个不同的Pipeline Stage的执行过程中也需要保证使用的数据是最新(避免脏数据),

在Pipeline Stage中执行的操作都可能会在L1 Cache中写入数据,但是并不会保证更新到L2 Cache中,只有当某个Pipeline Stage真正的要使用的时候从更新到L2 Cache中再更新到L1 Cache中才可以使用到最新的数据。

回到这里现在来总结这一小节的名称,当L1 Cache写入新数据时,那么L2 Cache中的数据就已经失效。其他SM中的L1 Cache需要从L2 Cache中拉取最新数据这个过程被称为内存可见,

将L1 Cache最新的写入内容更新到L2 Cache的过程被称为内存可用。更简单的说内存可见使Cache无效,内存可用使Cache更新。在Vulkan中可以通过Memory Barrier来保证内存依赖的正确。

标签:可用,Cache,写入,可见,L2,内存,SM,L1
From: https://www.cnblogs.com/FastEarth/p/17890944.html

相关文章

  • 内存分配
    这里主要讲一下模拟过程中遇到的问题和想法首先,为了保证模拟正确,我们应该以时间为参考对象去模拟,这样比以即将进入的任务或者等待队列中的任务为参考对象讨论的情况更少,犯的错误更少,每到达一个新时间如果有任务进入或者有任务完成就可以进行处理其次,这道题目的\(N\)非常大,所以我......
  • c++ 程序的内存分配
    C++程序在执行时,将内存大致分为以下几个区域:栈:系统自动分配的空间,只要不特殊声明,就定义在栈区,函数的区域也在栈上。栈是向下增长的。(const在栈里)堆:使用动态内存分配的方式可以申请堆空间,用完要手动释放。newmalloc全局区:全局变量、静态变量(static),生命周期是程序整个运行过......
  • 栈内存和堆内存概念、内存逃逸分析
    为了让程序员更好地专注于业务代码的实现,Go语言增加了垃圾回收机制,自动地回收不再使用的内存。Go语言有两部分内存空间:栈内存和堆内存。1.栈内存栈只允许往线性表的一端放入数据,之后在这一端取出数据,按照后进先出(LIFO,LastInFirstOut)的顺序,如图所示。往栈中放入元素......
  • [电脑装机] 内存篇
    [装机|配置升级]内存篇内存也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。一、部分内存参数我们一般能在内存条(SDRAM)的标签上的可以看到型号和参数。型号是内存条厂商自己定义的,不同厂商的定义规则不一致,一般可以通过型号识别内存参......
  • 麒麟系统一直free命令看内存占用90%但是top命令看每个程序占用内存只有20%,怎么查找什
    麒麟系统一直free命令看内存占用90%但是top命令看每个程序占用内存只有20%,怎么查找什么问题导致的这种情况 这种情况可能是因为Linux系统的内存管理机制导致的。free命令和top命令使用不同的方式来报告内存使用情况,因此可能会看到不同的结果。free命令显示的......
  • 共享内存技术调研
    共享内存技术调研1.     研究目的在调研仿真分布式解决方案时遇到一个问题,在服务器中不同软件之间如何高效的进行通讯,这里涉及到了不同的操作系统(windows和Linux),不同的使用功能(虚实融合,数字仿真),需求不同需要的信息传递效率要求不同,因此需要调研现有的技术,找到适合使用......
  • 可用性库存(CO09)排除库存地点增强
    1、业务需求1.1、业务背景1.2、对应方案:2、测试BAPI首先运行事务代码CO09,查看结果 运行BAPI_MATERIAL_AVAILABILITY3、增强实现3.1、增强思路3.2、EXIT_SAPLATPC_001(未采用)3.3、STOCK_RECEIPT_ISSUE_READ4、调试过程博客频遭盗窃,请移步公众号“斌将军”,输入关键字“......
  • DDR内存基础知识
    一、DDR基础知识1.几个频率(1)核心频率:真实运行频率。(2)倍增系数:DDR通过数据预取技术放大速率,每代ddr倍率是固定的,ddr=2,ddr2=4,ddr3=8,ddr4=8,ddr5=16(3)有效频率;厂商标注的频率,可以理解为数据传输速率。厂商也想逐步淡化其它频率的概念,只让我们记住有效频率。其实......
  • 特殊不可见字符Unicode编码
    unicode显示符号\u2000 \u2001 \u2002 \u2003 \u2004 \u2005 \u2006 \u2007 \u2008 \u2009 \u200a \u200b​\u200c‌\u200d‍\u200e‎\u200f‏\u2010‐\u2011‑\u2012‒\u2013......
  • BeeGFS部署高可用集群
    BeeGFS高可用集群搭建参考文档:https://aws.amazon.com/cn/blogs/china/how-to-build-beegfs-on-aws-system/目标状态查询元数据targets>beegfs-ctl--listtargets--nodetype=meta--state存储targets>beegfs-ctl--listtargets--nodetype=storage--state可达性状......