exp(x)の高速計算 ~理論編~ の内容を元に,SSE2で実装してみます.ここからは,SSE2に関する基礎知識が必要になるのですが,すべて書くのは面倒なので,簡単にまとめると, SSE2では,倍精度浮動小数点の2個の値に対して同じ演算をすると速い. 現在のIntel CPUでは,SSE専用のレジスタ(128bit)が8個ある. 加減乗除の算術演算や,ビットシフトなど,殆どの命令がSSE専用に準備されている. メモリとSSE専用のレジスタ間でデータ転送を行うときは,メモリアドレスが16バイトでアライメントされている必要がある(厳密には「すべき」という言い方が正しいが). C言語のソースコードの中でSSE用のコードを手っ取り早く書く方法は,コンパイラのintrinsicを使う方法.Microsoft Visual C++とgccでほぼ完全な互換性があるのが嬉しい. コンパイラintrinsi