タグ

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

  • SIMD型について - JS.next

    概要 新しいプリミティブ型であるSIMD型及びAPIがV8で実装されてきている。 SIMDとは、複数の数値を並べて1つの値としたようなデータ型である。 これはCPUによって効率良くサポートされているデータ型であり、 1 + 2 -> 3 をするように [ 1, 2, 3, 4 ] + [ 2, 3, 4, 5 ] -> [ 3, 5, 7, 9 ] を1回の演算ですることができる。 つまり、沢山の数値を扱う場面でSIMD型を利用することで、何倍ものパフォーマンス向上が期待できる。 (※WASMに入ることとなり、ESからは一旦取り除かれました。) 実装される型 float32x4 32bit浮動小数点型を4つ並べた128bitのデータ型 float32はJSの通常のnumberであるところのfloat64より精度が低い int32x4 32bit符号付き整数型を4つ並べた128bitのデータ

    SIMD型について - JS.next
  • 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