我很好奇,新的编译器是否使用了新 CPU 中内置的一些额外功能,例如 MMX SSE、3DNow!所以?
我的意思是,在最初的 8086 中甚至没有 FPU,所以旧的编译器甚至不能使用它,但新的编译器可以,因为 FPU 是每个新 CPU 的一部分。那么,新的编译器是否使用了CPU的新特性呢?
或者,更应该问的是,新的C/C++标准库函数是否使用了新特性?
感谢您的回答。
EDIT:
好的,所以,如果我说得对,即使是一些标准操作,尤其是浮点数,也可以使用 SSE 更快地完成。
为了使用它,我必须在我的编译器中启用此功能(如果它支持)。如果是这样,我必须确保目标平台支持该功能。
如果某些需要顶级性能的系统库,例如OpenGL、DirectX等,系统可能会支持此支持。
默认情况下,出于兼容性原因,编译器不支持它,但您可以使用 Intel 等提供的特殊 C 函数来添加此支持。这应该是最好的方法,因为您可以直接控制天气以及何时使用所需平台的特殊功能,以编写多CPU支持的应用程序。
gcc 将通过命令行参数支持更新的指令。看here http://www.network-theory.co.uk/docs/gccintro/gccintro_64.html了解更多信息。去引用:
海湾合作委员会可以利用
MMX 中的附加指令,
SSE、SSE2、SSE3 和 3dnow 扩展
最新的 Intel 和 AMD 处理器。
选项 -mmmx、-msse、-msse2、
-msse3 和 -m3dnow 启用这些额外指令的使用,允许
要处理的多个字的数据
在平行下。生成的可执行文件
仅在支持的处理器上运行
适当的扩展——在其他方面
他们会崩溃的系统
非法指令错误(或类似错误)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)