随着低级图形API(如DirectX 12、Mantle和Vulkan )的兴起,我想知道这些API是如何与异构系统架构(HSA)交互的(如果有的话)?
据我所知,支持HSA需要一些开发人员的参与,但我很好奇,现在是否有任何低级别的图形API自己来处理这个问题,或者是否仍然需要开发人员充分利用它呢?
HSA对于简化系统内存和视频内存之间的数据共享,特别是当它们共享相同的物理RAM时,特别感兴趣。
由于这个问题可能是特定于当前情况的,所以我对这种概述没有意见(虽然关于未来路线图的信息很好),我将接受一个只涉及一个图形API的答案(因为我怀疑很多人(如果有的话)熟悉这三个附加的HSA)。另外,如果我完全误解了它的工作原理,那么也可以指出这一点;我对这两种技术都不太熟悉,但我想知道它们目前是如何相互作用的。
发布于 2015-11-03 12:18:57
查看wiki页面上的图表,低级别API更接近于他们所称的非HSA系统。

每个操作(内存复制,开始作业,.)必须由应用程序显式发送。尽管应用程序可以对命令缓冲区中的顺序操作进行分组,并一次性地分派整个缓冲区,但在异步执行命令时,可以继续执行其他操作。
另一方面,传统的openGL/DirectX9 9通过隐藏所有的调度和复制来接近HSA。然而,这在验证中引入了开销,并试图预测应用程序下一步将做什么,以尽量减少延迟。更不用说,几乎没有什么选项可以检查具有同步根的api是否完成了操作。这意味着,如果您碰巧调用了一个需要操作结果的方法,则(HSA)驱动程序将被阻塞,直到该操作完成。

新的低级别API赋予应用程序程序员更多的控制权,并停止隐藏细节,这实际上是一个主要的卖点。
https://stackoverflow.com/questions/33498203
复制相似问题