質問

glibcとSSE機能をどの程度使用しているかに関する情報を探しています。

最適化されている場合、すぐに使用できますか?

Linuxのより大きなディストリビューションの1つを使用しているとしましょう。glibcは可能な限り汎用的で、可搬性が高いようにコンパイルされているため、最適化されていません。

関数memcpyとmemcmp、およびこれらの関数をできるだけ速く取得する方法に特に興味があります。

役に立ちましたか?

解決

glibc 2.8はmemcpyまたはmemcmpにSSEをまったく使用しません(x86またはx86_64で)-ファミリのすべてのCPUでサポートされないものを回避する手書きアセンブリを使用します。 glibc 2.10では、新しいタイプの再配置 STT_GNU_IFUNC がサポートされます。 CPUサポートが可能です。

他のヒント

最高の最適化設定でコンパイルすると、memcpyとmemcmpはコンパイラーによって組み込み関数に置き換えられ、glibcをまったく呼び出さない場合があります。次に、 mcpu および march コンパイラオプションが最速のコードを選択します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top