按照标题中的要求。我的主要观点是“为什么”,因为对于队列和队列族来说,这种逻辑结构的好处是什么?
芯片/卡制造商是否实际上在其芯片上刻蚀了多个独立的队列?那同时可以分别区分吗?
实施单独的处理单元/流是否对实施有好处?通过扩展,它是否可追溯地使旧的API(例如OpenCL)受益?
我观察到一个有趣的事实:在我的“ Intel(R)Core(TM)i3-8100B CPU @ 3.60GHz” Mac Mini中,“ vulkaninfo.app”中列出了2个GPU(来自LunarG SDK)。我不好,该应用程序与2个libMoltonVK.dylib链接(“目录/框架”中为1个,“ / usr / local / lib”中为1个)。
答案 0 :(得分:1)
“为什么”不是SO格式的大问题。导致猜测。
在Vulkan中可以区分队列。它们每个都有其索引,可用来区分它们。请记住,它们只是驱动程序。即使驱动程序有更多的队列,通常单个驱动程序也可以使用所有GPU的计算资源。
此外,Vulkan规范并未真正说明您提供特定优先级值时会发生什么。驱动程序\ GPU忽略它是完全有效的。
芯片制造商确实拥有独立的计算单元。从理论上讲,他们可以执行彼此不同的代码。但这通常不是有利的。在通常的工作中,渲染一些规则的W×H图像,会使所有具有相同工作的计算单元饱和。
答案 1 :(得分:0)
为什么:因为您可以提交具有不同重要性的不同类型的工作,并且可以向Vulkan实施提示您要首先完成的工作。
问题中的其他所有内容都没有意义:
芯片/卡制造商是否实际上在其芯片上刻蚀了多个独立的队列?那同时可以分别区分吗?
不一定,它们可能是按时间划分的逻辑队列。
实施单独的处理单元/流是否对实施有好处?通过扩展,它是否可追溯地使旧的API(例如OpenCL)受益?
不,当代的名为Metal(来自Apple)的API根本没有队列数或队列族的概念。