JavaScriptをGPUで高速化する試み、モジラがJetpackで検討中

2010年2月 9日

モジラが、JavaScriptをGPUのパワーを借りて高速化する試みを行っています。FirefoxのJetpackプロジェクトに協力しているメンバーがブログにポストしたエントリ「Elevating JavaScript Performance Through GPU Power」で、その可能性と方法について触れています。また1つ、JavaScriptの可能性が広がるかもしれません。

Mozilla Labs » jetpack » Blog Archive » Elevating JavaScript Performance Through GPU Power

Webでは高精細な動画や音声などがやり取りされるようになり、またセカンドライフのような3次元表示など、Webブラウザ上で行われる情報処理は高度化しています。

今後はさらに動画の加工や音声認識のような高度なアプリケーション、あるいはWebブラウザで大量のデータを表示、分析するようなアプリケーションなども期待されるでしょう。

こうしたWebブラウザでの高度な処理要求に応えるため、NVIDIAが推進するGPUを用いた並列処理アーキテクチャのCUDAをJavaScriptから利用する方法について検討しているとのことです。

APIを拡張する方法、シンタックスを拡張する方法

エントリでは、JavaScriptを拡張する方法として、APIを拡張する方法と、JavaScriptのシンタックスを拡張する方法の2つが提案されています。

その仕組みについてはうまく説明できる自信がないので、いくつかの方法とサンプルコードを引用して、どのような提案が行われているのかを紹介します。以下は大規模ループのような処理をGPUにまかせる際の手続きについてのサンプルです。

Jetpack.toGPU()を用いてGPUへの処理を明示する

var resNumbers = Jetpack.toGPU( function(nums, numsSize) {  
var sqrFun = function(v) { return  v * v; }  
  for (var i  = 0; i < size; ++i)  
    numbers[i] = sqrFun(numbers[i]);  
  }, numbers,  size);  

// some job here

関数型言語を導入する

var sqrFun = function(v) { return  v * v; }
map(sqrFun, numbers);

マイクロソフトのLINQの技術を応用する

var resNumbers = Jetpack.Linq.toGPU().from(numbers).map(sqrFun);

jQueryを応用する

$("div.test"). add("p.quote").addClass("blue").
slideDown("slow").toGPU();

マルチコアのCPUが一般的になり、GPUもiPhoneなどモバイルを含むほとんどのデバイスに搭載され、またクラウドの登場によって分散処理も一般的になってきた現在、JavaScriptだけでなくあらゆるプログラミング言語で並列処理を効率的に記述し、実行する方法が模索されています。

いまのところ、普通にプログラミングをすればコンパイラやインタプリタがそれを自動的に最適な並列処理へと展開してくれる、という理想的なシステムはどの処理系でもまだありません。ここで提案されているように開発者はコードのどこが並列処理をするべき部分なのか考えつつ組み込んでいく必要があります。

それは開発者にとってはまた頭を悩ませる課題が1つ増えたことを意味するのかもしれませんが、一方でまた1つソフトウェアの可能性を広げるものでもあると思います。そしてJavaScriptで並列処理やGPUの能力を引き出せるようになれば、さらにJavaScriptが第一級のプログラミング言語の地位を固めることになるのではないでしょうか。


このエントリーをはてなブックマークに追加 Bookmark this on Delicious     fig Follow Me  fig RSS

タグ : JavaScript , Mozilla

次の記事
サーバは「単体」から「群体」へと進化中
前の記事
アイルランド政府はクラウド利用を警告、米空軍は軍用クラウドの設計発注へ

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


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





アクセスランキング - 過去7日間

  1. 特許庁の基幹システム失敗の背景にある、日本に…
  2. 特許庁の基幹システムはなぜ失敗したのか。元内…
  3. 国内の開発者が使っている言語、1位C、2位V…
  4. なぜ米ヒューレット・パッカードは、一挙に16…
  5. OpenFlowベンチャーのNicira N…
  6. 「絶対落ちないシステムを作れ」という要件に、…
  7. ライアン・ダール氏、Node.jsの開発リー…
  8. フラッシュストレージが最大500TB! 米N…
  9. ソフトウェアテストの30年前と30年後(前編…
  10. ソフトウェアテストの近未来を話そう(前編)~…
  11. マイクロソフトの責任者が語る「われわれはどの…
  12. ソフトウェアテストの近未来を話そう(後編)~…
  13. 2012年1月の人気記事「グーグルのバグ予測…
  14. ソフトウェアテストの30年前と30年後(後編…
  15. EMC、満を持してPCIe接続フラッシュスト…

最新記事 10本

バックナンバー



アルファブロガー・アワード2010受賞 Publickeyはアルファブロガー・アワード 2010を受賞しました! いつもご愛読ありがとうございます。









blog comments powered by Disqus