タグ

simdとemscriptenに関するmanabouのブックマーク (2)

  • EmscriptenからSSEとかpthreadを使って爆速にする

    Webでとにかく高速に計算したい やまだです。Webでとにかく高速な計算を行うために人生の何%かを使っています。 前回はJavaScriptから直接SIMD.jsを呼びましたが今回はEmscriptenを使用し、C言語からSIMD命令を呼び出してみます。 題材としては定番ですがマンデルブロ集合を使用します。 マンデルブロ集合は以下の漸化式で計算が可能でしばしば並列演算の課題としてとりあげられます。 z は複素数なので実部と虚部をXY平面に表すと以下のようになります。 Emscriptenを使う 今回はWebでということでC言語のコードをJavaScriptコードにコンパイルするEmscriptenを使用します。 Emscriptenを使用するとasm.jsを利用した最適化をかけることができるため単純にJavaScriptで実装した時よりも高速になることがあります。 Emscriptenでは

    EmscriptenからSSEとかpthreadを使って爆速にする
  • emscripten で SIMD.js を使う - Qiita

    コンパイル時とリンク時に emcc -s SIMD する。 SIMD.js が使われるケースは3種類ある。 clang デフォルトの LLVM autovectorization が働いて自動的に SIMD 化する GCC 拡張の SIMD Vector Extensions で明示的に使う x86 の Streaming SIMD Extensions 命令を使う。詳細は 大営 を読むべし opencv など sse サポートしているものをを asm.js にする場合は 3 が使えそう SIMD.js が有効なブラウザを用意する -s SIMD で JS 出力すると SIMD.js の polyfill が付いてくる。 これをそのまま使うと遅くなる。 2017年上半期現在標準で SIMD が有効なブラウザはない。 chrome の場合起動フラグでV8の起動フラグを渡せば有効になる。 c

    emscripten で SIMD.js を使う - Qiita
  • 1