Open6
wasmで画像処理あれこれ
備忘録的なものとして他人は置いてきぼりでメモ。
OpenCVのWASMビルドでthreads有効にすると、"USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see WebAssembly/design#1271" って警告出るけど、https://github.com/opencv/opencv/issues/14691#issuecomment-509899734 によるとパフォーマンス影響は無いらしい。裏取りはしてないけど。
XNNPACK。なんか妙な中間コードでアルゴリズム記述してあって自動生成してるらしい。この行だけだと有効になってない。emscripten_wasmsimdを同じように定義するとコンパイルできるようになる。
-wasmと-wasmsimd-arm/-wasmsimd-x86とあるけど、けど、有効にしてもあまりパフォーマンスは変わらず。
-wasm
でもループ展開してあって綺麗に並んでるせいか、コンパイルオプションの-msimd128で十分良いコードが生成されてるんじゃないかと推測。
☝勘違いっぽかった
JBFはopencv_contribにある。さすがにSIMD高速化はされてないが、threads対応のコードは入ってる(だからthreads使いたかった)
sigma_spaceとかのパラメータ調整全然分からんけど
light wrapping全然分からん・・・
あれ、masterブランチベースに戻してもwasmsimdビルドしてるじゃん。ビルドログが飛び飛びにしか出ないからわからなかった