
1 madeye 2013 年 7 月 27 日 via Android msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx |
2 ShadowStar 2013 年 7 月 27 日 -march=XXX |
3 Golevka 2013 年 7 月 27 日 -march=prescott |
6 VYSE 2013 年 7 月 27 日 via Android 除非你的程序需要使用这些新指令集的东西,否则提升很小 |
8 funcman 2013 年 7 月 27 日 如果你真的需要这方面的优化,那么你应该不会满足于别人的介绍,而是自己去看一下编译器生成的汇编。编译器的优化不够劲的时候,你还会自己去写一些汇编代码。 |
10 funcman 2013 年 7 月 27 日 @hadoop 一点不高端,汇编是本科必学的,看gcc生成的指令汇编只需要加参数就行了,Intel的指令集都可以查到,gcc可以内嵌汇编,还可以链接nasm等汇编器生成的lib。如果真的需要这些东西,学起来并不难。我第一次接触MMX指令时,连汇编都不太会,抄一抄大致也懂了。 另外,实际上主流编译器都支持内置函数的方式调用Intel的这些SIMD指令功能。这个我前面忘记讲了。 不想弄这个,就加编译参数呗,黑盒的方式测一下性能,应该也提升了不少。 |
11 mr_pppoe 2013 年 7 月 28 日 试试Intel的Math Kernel Library ?非商业用途的话, Linux下有免费的许可 |
13 luikore 2013 年 7 月 28 日 sse 大部分可以扔掉了, 还有个今年的 -mavx2 不过一些库如 openssl 完全不管编译器的 assembler, 自己对某些算法用 .byte 加特殊指令 |
14 efi 2013 年 7 月 28 日 如果真是大数运算或者浮点运算的库,开启平台特性的工作一般都已经帮你操心过了,你就不用操心了。 随便举个例子,http://www.fftw.org/,首页就说Supports SSE/SSE2/Altivec, since version 3.0. Version 3.3.1 supports AVX and ARM Neon。这是特性的一种(hardware enablement)。 |
15 Ricepig 2013 年 7 月 28 日 这贴很有意思啊 10楼和14楼是典型的轮子党和拿来党,其实都挺好 |