1

根据我的知识mssemsse2选项,gcc将通过更快地执行算术运算来提高性能。而且我还读到了一些它会使用更多资源的地方,比如寄存器、高速缓存。

如果我们在 RTOS 设备(如 vxworks 板)上使用这些选项生成的可执行文件,性能会怎样?

4

2 回答 2

1

操作系统必须支持 SSE(2) 指令,您的应用程序才能正常工作。从谷歌搜索来看,VcWorks 似乎支持这一点(这并不难,所需要的只是操作系统每个使用 SSE/SSE2 的任务都有一个 512 字节的保存区域——在适当的情况下,它可以被分配按需,但将其分配给所有任务通常更容易]。保存/恢复 SSE 寄存器是“按需”完成的,也就是说,只有当与使用 SSE 的前一个任务不同的任务使用 SSE 指令时,它是保存寄存器是必要的。操作系统将使用一个特殊的中断(陷阱)来指示“一个新任务正在尝试使用 SSE 指令。

所以,只要处理器支持它,你应该没问题。

于 2013-01-21T20:07:05.313 回答
0

我可能无法直接回答您的问题,但这里有几件事我知道可能有用:

  • SSE、SSE2 等必须由处理器支持/实施,以便它们首先产生任何影响。
  • 您可以调用一些特定函数,将这些扩展指令用于数学运算。这些函数对更广泛的数据类型进行操作或有效地对集合执行操作。
  • 启用 GCC 中的选项可能会自动使用以前的 APIs/builtins。这是我不确定的部分。
于 2013-01-21T17:58:56.337 回答