我正在编写一个多线程的高度并行的应用程序。我已经编写了一个SSE加速线程类。如果我要编写一个MMX加速线程类,然后同时运行这两个类(每个内核一个SSE线程和一个MMX线程),性能会明显提高吗?
我认为此设置将有助于隐藏内存延迟,但是在开始投入时间之前,我想确定一下。
最佳答案
SSE和MMX指令集在CPU中共享相同的 vector 处理执行单元集。因此,运行SSE线程和MMX线程将具有与运行两个SSE线程(或两个MMX线程)相同的资源。唯一的区别在于SSE中存在的指令,而不是MMX中存在的指令(因为SSE是MMX的扩展)。但是在那种情况下,MMX可能会变慢,因为它没有可用的更高级的说明。
因此,答案是:不,与运行两个SSE线程相比,您不会看到性能提高。