DockerがWebGPUを用いてGPUを抽象化、AI処理などGPUを使ったコンテナ化アプリのポータビリティを実現する技術を開発中。DockerCon 23
Docker社は米ロサンゼルスで10月3日と4日の2日間、年次イベントとして開催した「DockerCon 23」で、WebGPUを抽象化レイヤとすることで、コンテナ化されたGPUアプリケーションをポータブルにする技術を開発中であると明らかにしました。
この技術は2日目の基調講演の後半、Docker CTOであるJustin Cormack氏がOne more thingとして発表したものです。
GPUを用いたアプリケーションのポータビリティが課題に
Dockerコンテナはポータビリティが大きな特長です。ノートPCからオンプレミスのサーバ、クラウド上の仮想マシンまで、簡単にDockerコンテナを移動し、そのまま実行できます。
Dockerコンテナのイメージには、x86やArmなど異なるアーキテクチャのプロセッサに対応した複数のイメージを組み込むこともできるようになっており、CPUの種類を越えたポータビリティも実現しています。
一方、現在急速に拡大しつつあるAIや機械学習(ML)などのGPUを活用するアプリケーションでは、例えばNVIDIA社製のGPUではNVIDIAが提供するSDKである「CUDA Toolkit」が用いられるなど、GPUのベンダやGPUの機種に依存した開発が一般的です。
そして特定のベンダや機種に依存したSDKが用いられたアプリケーションは別のベンダのGPUでは動かないため、ポータビリティが失われてしまうという課題がありました。
WebGLの後継となるWebGPUを用いてGPUを抽象化
そこで今回発表されたのが、最新のWeb標準である「WebGPU」を用いてGPUを抽象化することにより、GPUを活用したアプリケーションであってもポータビリティを実現しようという取り組みです。
WebGPUは、これまでWebブラウザ上でJavaScriptを用いた2次元や3次元の高速なグラフィックスの描画を行うWeb標準として広く使われてきた「WebGL」の後継となる、新しいWeb標準です。
オーバーヘッドが小さく低レイヤで操作できることで、高速なグラフィクスレンダリングや機械学習処理などを可能にします。
すでにChromeでは正式な機能として提供されており、FirefoxとSafariでもWebGPUの実装が進んでいます。
参考:Webブラウザ上でGPUプログラミングを可能にする「WebGPU」、Chrome 113で正式版に。3Dレンダリングや機械学習など高速処理
またBabylon.js、PlayCanvas、Three.jsといったグラフィックライブラリだけでなく、機械学習ライブラリのTensorFlow.jsもWebGPU対応を明らかにしています。
まだ開発初期の段階で、今後さらに開発を進めていくと
DockerCon 23の基調講演ではデモも行われました。下記はDockerコンテナ内でWebGPU経由でGPUを呼び出し、行列の掛け算を行うプログラムを実行したところです。画面左下の青いグラフのマーカーが伸びており、GPUが使われていることが示されました。
下記はこのWebGPUによる抽象化を行うシステムの構成図です。右側がアプリケーションが組み込まれているコンテナで、ここでWebGPUクライアントライブラリが使われており、アプリケーションからGPUを利用するための抽象化されたエンドポイントとなっています。
WebGPUクライアントライブラリは仮想ソケットを通じてホストマシン上のWebGPUサーバ経由でGPUを利用することになります。
このプロジェクトはまだ開発初期の段階にあると説明されていますが、Dockerコンテナのポータビリティを前進させるプロジェクトとしてさらに開発を進めていくとのことです。
DockerCon 23
あわせて読みたい
Google Cloud Spanner、価格据え置きのままスループットを1.5倍に向上、ノード当たりのストレージも10TBに増強と発表
≪前の記事
AWS、MariaDBの最上位スポンサーになったと発表。なぜMariaDBの大口スポンサーに?