0

是否可以为 Visual Studio 项目中的单个功能或文件启用增强指令集 (SSE/AVX)?我想要一个针对不同指令集的函数的多个版本,都在同一个输出二进制文件中

4

1 回答 1

0

无法为单个函数或单个文件启用自定义指令集。但是,您可以为单个翻译单元启用自定义指令集,这通常是一个c / cpp文件。请注意,头文件中使用的指令集取决于翻译单元的编译方式(包括它),并且在不同的cpp文件中可能会有所不同。

我想如果你用不同的指令集编译不同的cpp文件,你可以将它们链接在一起,生成的二进制文件就可以工作。实际上,确保调用约定在任何地方都兼容很重要,我认为它们会兼容,除非您使用类似的东西__vectorcall(它至少需要 SSE2 BTW)。

如果你想用多个指令集编译一些函数,你可能想看看这个问题。总的来说,它被称为“ CPU调度

于 2015-07-26T11:08:54.417 回答