タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

jubatusとsimdに関するyukimori_726のブックマーク (2)

  • Não Aqui! » exp(x)の高速計算 ~SSE2実装編~

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

  • SSE についてのメモ(SIMD)

    VisualStudio2005 は /arch:SSE2 オプションで SSE 命令を使って コンパイルしてくれます。とはいえ積極的なベクトル化までは行われないし SSE3/SSSE3 を含めて全部の SSE 機能が使われるわけではありません。 これらの命令を使う手段として、 ・アセンブラ ・インラインアセンブラ ・コンパイラの intrinsic 命令 があります。 ・MSDN MMX, SSE, and SSE2 Intrinsics コンパイラ命令として intrinsic を使うためには、/Oi オプションが必要で それぞれ専用のヘッダファイルを include します。 ・MMX mmintrin.h ・SSE xmmintrin.h ・SSE2 emmintrin.h ネットで調べると SSE3/SSSE3 命令を使う場合はさらに ・SSE3 pmmintrin.h ・SSS

  • 1