gpt4 book ai didi

vulkan - HOST_CACHED_BIT 和 HOST_COHERENT_BIT 是否相互矛盾?

转载 作者:行者123 更新时间:2023-12-04 03:11:21 25 4
gpt4 key购买 nike

Vulkan 中有两种类型的内存让我很头疼:

  • VK_MEMORY_PROPERTY_HOST_COHERENT_BIT bit indicates that the host cache management commands vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges are not needed to flush host writes to the device or make device writes visible to the host, respectively.

  • VK_MEMORY_PROPERTY_HOST_CACHED_BIT bit indicates that memory allocated with this type is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always host coherent.



据我所知,主机和设备都可以立即看到对 COHERENT 类型的内存的修改,而主机和/或设备可能不会立即看到对 CACHED 类型的内存的修改,即使内存无效/刷新需要使缓存无效。

我已经看到一些实现结合了这两个标志,并且根据 10.2. Device Memory 是有效的组合。文档中的部分。不是有矛盾的(缓存的和连贯的)吗?

最佳答案

缓存/相干内存有效地意味着 GPU 可以看到 CPU 的缓存。这通常发生在 GPU 和 CPU 位于同一芯片上的架构上。 GPU 实际上只是 CPU 芯片上的另一个核心,可以访问 CPU 的核心。

但它也可能发生在其他架构上。 Some standalone GPUs offer cached/coherent memory .事实上,它们中的大多数不提供没有一致性的缓存内存。从架构的角度来看,它代表了 GPU 通过至少部分 CPU 缓存访问数据的某种方式。

您应该记住的关于缓存/一致内存的关键是:如果该内存池有替代内存类型,那么设备访问的替代内存类型可能会更快。此外,如果存在替代方案,则设备完全有可能无法将某些类型/格式的图像或缓冲区存储在此类内存类型中。因此,除非您确实需要从 CPU 访问缓存的内存,或者设备没有提供替代方案,否则最好避免它。

关于vulkan - HOST_CACHED_BIT 和 HOST_COHERENT_BIT 是否相互矛盾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45017121/

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