⚛️

分子軌道ビューア MOrbVis の v1.0.0 をリリース

に公開

はじめに

以前の記事で紹介した分子軌道ビューア MOrbVis の v1.0.0 をリリースしました。

https://zenn.dev/comp_lab/articles/fcea581da8833c

今回の目玉は WebGPU コンピュートシェーダーによる計算の高速化です。ブラウザ上でGPUの並列計算能力を直接活用し、分子軌道や電子密度の評価を大幅に高速化しました。

v1.0.0 スクリーンショット(GPU ON)

WebGPU による高速化

なぜ GPU なのか

分子軌道の等値面を計算するには、3次元グリッドの各点で基底関数の線形結合を評価する必要があります。例えばグリッド解像度 100x100x100 なら100万点、200x200x200 なら800万点です。各点の計算は独立なため、GPU の大量コアによる並列計算が非常に有効です。

WebGPU コンピュートシェーダー

MOrbVis では WebGPU のコンピュートシェーダー(WGSL)を使って、MO 評価をGPU上で実行します。

  • 対応殻: s / p / d / f(Cartesian ガウス型基底関数、球面調和関数の両方に対応)
  • 密度計算: 占有 MO を順次 GPU で評価し、CPU 側で密度を累積
  • 自動フォールバック: WebGPU 非対応ブラウザでは自動的に CPU(Web Worker)で計算

パフォーマンス

GPU を有効にすると、CPU と比較して数十倍〜数百倍の高速化が見込めます。

Grid Points CPU GPU Speedup
60 169,200 175 ms 2 ms 92.3x
80 396,800 353 ms 10 ms 37.1x
100 770,000 673 ms 9 ms 76.5x
120 1,324,800 1.19 s 11 ms 106.4x
140 2,116,800 1.91 s 17 ms 111.0x
160 3,148,800 2.74 s 19 ms 145.0x
200 6,129,200 38 ms

ベンチマーク環境: Benzene (C6H6) HOMO, GPU: NVIDIA GeForce RTX 2080 Ti, CPU: Intel Core i9-9900K 3.6GHz, Chrome

なお、Points(グリッド点数)が Grid 2008,000,000 (= 200^3) にならないのは、autoGrid が分子のバウンディングボックスに基づいて各軸のグリッド点数を決めるためです。最長軸に指定した解像度(200)を割り当て、短い軸はそれに比例して少なくなります。ベンゼンのような平面分子では、面に垂直な方向のグリッド点数が少なくなり、200 \times 200 \times 153 \approx 6,129,200 のようになります。

グリッド解像度 200 は GPU 有効時のみ選択可能です。CPU ではあまりにも時間がかかるため、160 までに制限しています。

GPU トグル

MO セレクターの上にある 「⚡GPU」 ボタンでワンクリックで GPU の ON/OFF を切り替えられます。計算中は「⚡ GPU 計算中...」「🖥️ CPU 計算中... XX%」のようにどちらのデバイスで計算しているかがリアルタイムで表示されます。

GPU切り替えボタン

HQ モード

論文やプレゼンテーション向けの高品質レンダリングモードを追加しました。

  • 環境マップ: Studio プリセットによる自然な反射
  • SSAO: Screen Space Ambient Occlusion で原子間や面の凹凸に自然な影を追加
  • Bloom: ハイライト部分にわずかなグロー効果

HQ モードはチェックボックスで ON/OFF でき、SSAO の強度はスライダーで調整可能です。

その他の新機能・改善

詳しい変更内容は リリースノート をご覧ください。

対応環境

ブラウザ

WebGPU は比較的新しい API ですが、主要ブラウザでの対応が進んでいます。

ブラウザ 対応状況
Chrome / Edge 113 以降で対応
Firefox 141 以降で対応
Safari 26 以降で対応

非対応ブラウザでも MOrbVis は問題なく動作します(自動的に CPU にフォールバック)。

GPU ハードウェア

WebGPU はブラウザが OS のグラフィックス API を抽象化するため、特定のGPUベンダーに依存しません。以下のハードウェアで動作します:

プラットフォーム バックエンド API 対応 GPU
Windows Direct3D 12 NVIDIA GeForce (GTX 10xx 以降)、AMD Radeon (RX 400 以降)、Intel UHD / Iris
macOS Metal Apple Silicon (M1/M2/M3/M4)、AMD Radeon (2015年以降の Mac)
Linux Vulkan NVIDIA (driver 515+)、AMD (Mesa 22.0+)、Intel (Mesa 22.0+)

ディスクリート GPU(NVIDIA GeForce、AMD Radeon)はもちろん、内蔵 GPU(Intel UHD/Iris、Apple Silicon)でも GPU 計算の恩恵を受けられます。ノート PC の内蔵 GPU でも CPU 比で数倍の高速化が期待できます。

Windows デスクトップ版

Windows 版は WebView2(Chromium ベース)上で動作するため、ブラウザ版と同じ WebGPU 対応を持ちます。

試してみる

以下のURLからすぐに試せます。WebGPU 対応ブラウザなら、⚡ ボタンを押すだけで GPU 計算が有効になります。

Windows デスクトップ版は Releases ページからダウンロードできます。

おわりに

WebGPU のコンピュートシェーダーにより、ブラウザ上でも GPU の計算能力をフルに活用できる時代になりました。MOrbVis v1.0.0 では、この技術を使って分子軌道の可視化を大幅に高速化しています。

広島大学コンピューティングラボ

Discussion