Re: Bitcoin x86 for Windows

Quote from: BlackEye on July 25, 2010, 10:12:23 PMCrypto++ 5.6.0のSHA256機能をBitcoinに統合することができました。これはSSE2アセンブリコードを使用した最速のSHA256です。Bitcoinがブロックハッシュ関数にアラインされていないデータを送っていたため、MOVDQA命令をMOVDQUに変更する必要がありました。

Crypto++ 5.6.0のSHA256機能を使うのが今のところ最善の方向だと思う。 Crypto++ 5.6.0ライブラリのサブセットをSVNに追加した。SHAと11個の汎用依存ファイルだけに絞り込んだ。SHA以外の暗号は含まれていないはずだ。

データフィールドをアラインしたところ、動作した。ASM SHA-256は約48%高速だ。合計の高速化はバージョン0.3.3と比べて約2.5倍だ。

SSE2を使用しているようだ。コンパイル時にコンパイラ環境に基づいてビルド設定を自動的に決定する。

実行時にSSE2の検出も行っているようだが、利用できない場合に実際にフォールバックするかどうかは判断しにくい。リリースビルドにはSSE2を入れたいと思う。SSE2は最初のPentium 4から存在している。Pentium 3以前のものでは遅すぎて、生成しようとしても電気代の無駄になるだろう。

これはSVN rev 114だ。