sha256.cppを-O3 -march=amdfamk10でコンパイルすることを提案する(32ビットと64ビットの両方で動作する)。この命令セットをサポートするCPU(AMD Phenom、Intel i5以降)のみが
-4wayの恩恵を受け、パフォーマンスが約9%向上する。
GCC 4.3.3は-march=amdfamk10をサポートしていない。以下のエラーが出る:sha256.cpp:1: error: bad value (amdfamk10) for -march= switch
NewLibertyStandardの投稿(2010年8月16日01:49 UTC)4wayでは、すべての仮想コアを有効にするとパフォーマンスが大幅に向上する。ハイパースレッディングをオフにすると、4wayの有無にかかわらずほぼ同じハッシュ量になると思う。
おお、何かをつかんだかもしれない!
以前はハイパースレッディングが役に立たなかったのは、すべての処理が算術論理ユニットで行われ、ハイパースレッドがそれを共有していたためだ。
tcatmのSSE2コードは通常のx86命令とSSE2命令の組み合わせのはずで、一方がx86コードを実行している間に、もう一方がSSE2を実行できる。
ハイパースレッディングでどれくらい改善する?
数字はあるかな? どのCPUだろう?