所以我有一些重量级的算法,我更喜欢在VPU上运行,但由于有太多的事情要做,VPU往往会饱和。有没有办法像这样做“使用VPU,如果VPU过载,使用FPU代替”,这样我就有最大的吞吐量?
谢谢
发布于 2015-08-02 13:25:46
回复:评论。这要么是在没有vzeroupper的情况下混合使用SSE和AVX的问题(也许你用-march=native编译了剩下的代码,而双精度数学使用的是AVX)。或者您的SSE版本较大,并导致I-cache未命中。
也可能你的微基准测试是假的,你的一些SSE例程被优化掉了。
要回答这个问题,需要更多关于代码的详细信息。例如,如果你确信你的FPU代码是真正的x87,而不仅仅是SSE中的标量。
https://stackoverflow.com/questions/25800293
复制相似问题