タグ

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

タグの絞り込みを解除

SSEに関するumitanukiのブックマーク (2)

  • Programming Memo: SIMDでテーブル参照

    2009年11月14日土曜日 SIMDでテーブル参照 こんな感じの、いわゆるテーブル参照をSIMDで並列化することを考える。 char table[N] int index[N] char result[N] for ( int i = 0; i Nが16以下ならば簡単。shuffle命令を使えばいい。 __m128i mindex; __m128i mtable; __m128i mresult; mindex = _mm_load_si128( (__m128i *)index ); mtable = _mm_load_si128( (__m128i *)table ); mresult = _mm_shuffle_epi8( mtable, mindex ); _mm_store_si128( (__m128i *)result, mresult ); Nが16より大きい場合は、sh

  • SIMD演算 - MUGI COM

    C言語でSSEやSSE2を使う方法について。ポイントがいくつかあります。 xmmintrin.hやemmintrin.hをインクルードする SSE命令のみならxmmintrin.h、SSE2命令も使うならemmintrin.h SIMD命令でアクセスするメモリは16バイトアラインメントにする gccの場合、_mm_malloc関数を使えばよい。 MMX命令はAMDCPUでは使えない Pentium4以降に限定されますが、SSEやSSE2を使うのが良いでしょう。 これらを踏まえて、画像の各ピクセルのRGB値を反転させる例を示します。 各ピクセルは8bitのRGB値が並んでいるものとします。8bitの整数演算を行うので、8bit計算を16個並列で行うSSE2命令を使用します。 最初はSSE2のインクルードファイル。 #include <emmintrin.h> つづいて16バイトアラインメン

    SIMD演算 - MUGI COM
  • 1