Re: 0.3.6向けSSE2 CPUでの4ハッシュ並列処理

AMDでは2倍速で、Intelでは半分の速度ということか?

Quote from: tcatm on July 31, 2010, 10:12:38 AM

Quote from: satoshi on July 31, 2010, 12:29:20 AM

それは驚異的だ……

つまり128ビットレジスタを使って4つの32ビットデータをSIMDで同時に処理するということか?長い間考えていたが、加算が隣の値にキャリーオーバーするため不可能だと思っていた。

その通りだ。128ビットベクトルに4つの32ビット値を入れる。それぞれ独立に計算されるが、同時に処理される。

ところで、attribute ((aligned (16)))でコンパイル時にアラインメントを指示できるのに、なぜalignup<16>関数を使っているのか?

試したが、スタック上のものには機能しない。いくつかテストを行った。

エラーすら出ず、単にアラインされないだけだ。