vulkan - Vulkan 是否有等效的 API 来执行 cuEventRecord 和 cuEventQuery?
问题描述
cuEventQuery 和 cuEventRecord 是来自 CUDA 的异步 API,用于查询队列中的某些任务是否已完成。我对 Vulkan 有同样的要求,但我不想使用运行缓慢的 Vulkan Barrier API。
解决方案
根据您是否需要在同一队列、队列到主机或不同队列之间进行同步,您可以选择:
- Fences - https://www.khronos.org/registry/vulkan/specs/1.1-khr-extensions/html/vkspec.html#synchronization-fences - 可用于主机和队列之间的同步并通过等待
vkWaitForFences()
并通过vkGetFenceStatus()
, 和 - 事件 – https://www.khronos.org/registry/vulkan/specs/1.1-khr-extensions/html/vkspec.html#synchronization-events – 可用于在同一队列或队列到主机中同步,虽然它们不能像栅栏一样被主机等待,但可以通过以下方式查询它们的状态
vkGetEventStatus()
两者都比 barries 更重量级,事件是最轻量级的,最接近 CUDA 事件 API。
推荐阅读
- reactjs - 我想在添加代码后创建底部标签导航,它会显示这样的错误
- docker - Mac 上的 Docker 同步
- html - CSS Gridlayout子不遵守网格模板
- python - 使用 Find_All 函数返回意外的结果集
- swift - 使用 CoreData 保存重新排序的单元格
- websocket - 是否可以在 Thunderbird 插件中使用 WebSockets?
- angular - Angular 8 图像路径
- excel - 当Excel VBA说它不可见但它实际上是可见时,有没有办法单击单选按钮?
- security - 如何为 Sonatype Nexus UI 配置帐户锁定?
- css - Antd中如何自定义表格行高?