Opteron や Athlon64 や Xeon などの X86_64 環境では 32 bit と 64 bit バイナリが混在できるので、gcc でコンパイルするときに作成するバイナリが 32bit か 64bit かを指定する必要がある。トラックバックにある過去の文章にも 32bit や 64bit にも触れているので、こちらも参考にして欲しい。gcc のコンパイルオプションだが、
-m32 : 32 bit としてコンパイル
-m64 : 64 bit としてコンパイル
-march=opteron : Opteron 用に最適化する
-march=nocona : Xeon 用に最適化する
-mfpmath=sse : 浮動小数点演算に sse 命令を使用する
-msse2 : SSE2 命令を利用する
-msse3 : SSE3 命令を利用する
のような物がある(Opteron & Fedora Core 4 関係で)。-mfpmath=387 というのもあるが(387 というのが何とも懐かしい。結構な出費だが昔購入した)、SSE 命令(特に SSE2 以降)を使用した方が良いという印象が強い。しかし AMD 系の CPU では SSE 命令は互換性のために実装されているという面もあるので、性能面ではやや劣る。
-m32 : 32 bit としてコンパイル
-m64 : 64 bit としてコンパイル
-march=opteron : Opteron 用に最適化する
-march=nocona : Xeon 用に最適化する
-mfpmath=sse : 浮動小数点演算に sse 命令を使用する
-msse2 : SSE2 命令を利用する
-msse3 : SSE3 命令を利用する
のような物がある(Opteron & Fedora Core 4 関係で)。-mfpmath=387 というのもあるが(387 というのが何とも懐かしい。結構な出費だが昔購入した)、SSE 命令(特に SSE2 以降)を使用した方が良いという印象が強い。しかし AMD 系の CPU では SSE 命令は互換性のために実装されているという面もあるので、性能面ではやや劣る。