gpt4 book ai didi

vulkan - vulkan 管道内存屏障是否减轻了与没有内存屏障的管道屏障相关的同步约束?

转载 作者:行者123 更新时间:2023-12-04 07:28:57 28 4
gpt4 key购买 nike

来自与 vkCmdPipelineBarrier 相关的规范:

If no memory barriers are specified, then the first access scope includes no accesses.

这对于第一个和第二个访问范围都有说明,所以如果我理解正确的话:

(1) 没有内存屏障的管道屏障导致所有 后续命令在目标阶段等待,直到所有 命令完成源阶段。这是适用于所有命令的硬约束。

(2) 带有内存屏障的管道屏障减轻了同步约束,因此只有处理该内存的后续命令才会在目标阶段(在相关访问操作中)等待,直到仅在前面处理该内存的命令完成源阶段(在相关访问操作中)。

是否正确?

最佳答案

(1)
是的,除了自由应用好像原则。如果您无法仅通过输出找到差异,则允许驱动程序违反它(例如,如果唯一的差异是性能)。

它适用于所有命令,如果它们是 Action 命令,是同一个队列,在这样的阶段确实处理了一些东西,等等……

规范调用此执行依赖

(2)
这称为内存依赖。它是执行依赖 的超集。它不会削弱它。它使它更加严格。这意味着除了 (1) 之外,所有由内存依赖参数定义的副作用(缓存)都必须被刷新\无效(或者任何特定的设备架构需要做的,以及它的具体命名法)。

PS:虽然我不是 110% 确定 VK_KHR_synchronization2。有一些尝试“简化”同步,但这样做失去了一些直觉。我认为虽然这与您遍历所有内存屏障结构并将所有阶段收集在一起是一样的,但它仍然像 (1) 一样工作。

关于vulkan - vulkan 管道内存屏障是否减轻了与没有内存屏障的管道屏障相关的同步约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68058931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com