スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など

2021年6月22日

米Wasmer社はオープンソースのWebAssemblyランタイム「Wasmer 2.0」の正式リリースを発表しました

WebAssemblyはもともとWebブラウザ上で高速に実行できるバイナリフォーマットとして開発されましたが、現在ではWebブラウザだけでなくOSやコンテナ、ブロックチェーンなどさまざまな環境で実行可能になっており、多様なランタイムが開発されています。

参考:KubernetesのノードとしてWebAssemblyランタイムを用いる「Krustlet」、CNCFのサンドボックスプロジェクトに申請

Wasmerはその代表的なランタイムの1つ。WindowsやMac、Linux上でWebAssemblyを実行できるスタンドアロンなランタイムです。WasmerをWindowsやMac、Linuxにインストールすることで、RustやGoなどのコードから生成したWebAssemblyバイナリがOS上で実行可能になります。

WebAssemblyをOS上などさまざまなプラットフォームで実行できるようにするためのAPIなどを定めたWASI(WebAssembly System Interface)にも対応しています。

SIMD対応、実行性能が50%向上など

Wasmer 2.0ではSIMD(Single Instruction, Multiple Data)に対応しました。

SIMDとは、一般に1つの命令で同時に複数のデータを処理できるプロセッサの命令、もしくはその処理のことを指します。これを活用することで、単純な演算を大量に繰り返すような画像処理や機械学習、物理演算などの処理を高速に実行できるようになります。

これによりWebAssemblyによる画像処理や機械学習などの対応促進が期待できます。

また、新たに参照型(Reference Types)が実装されました。参照型の変数は、渡された関数の中で値が書き換えられると、その変更は呼び出し元の変数の値にも反映されます。そのためモジュール間での高速な値の受け渡しなどに有効とされています。

WasmerはWebAssemblyバイナリを内部でCPUのネイティブバイナリにコンパイルして実行していますが、そのコンパイラがプラガブルになっています。このコンパイラを用いた実行速度も2倍近く改善されています。

今回、Wasmer 2.0でのLLVMコンパイラでは浮動小数点の演算速度が約56%向上し、Craneliftでは約48%向上していると説明されています。

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本