我正在考虑使用 sse2 内在函数对一些 floor() 调用进行矢量化,然后测量性能增益。但最终二进制文件将在我无法访问的虚拟机上运行。

我真的不知道虚拟机是如何工作的。二进制文件是否完全在软件模拟的虚拟 CPU 上执行?

如果不是,假设 VM 在带有 SSE2 的 CPU 上运行,VM 在从我的二进制文件执行 SSE2 指令时是否可以使用他的 CPU SSE2 指令?

我的矢量化对 VM 有用吗?

最佳答案



出于严肃的目的,不,因为它太慢了。 (但例如 Bochs 可以;它对于内核调试等很有用)

二进制文件尽可能“正常”执行。这通常意味着任何不尝试与操作系统交互的代码都将直接执行。例如,系统调用可能需要 VM 实现的参与。



是的。



是的。

关于c++ - sse2 矢量化和虚拟机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41730860/

10-11 22:33