Autodesk/XLB

XLB: Accelerated Lattice Boltzmann (XLB) for Physics-based ML

XLB – 微分可能な格子ボルツマンライブラリ (Python)

概要 – XLBは、流体動力学シミュレーションのための格子ボルツマン法(LBM)を実装し、そのすべてのステップを微分可能にするPythonライブラリです。3つのバックエンドを通じて、CPU、シングルGPU、マルチGPU、TPUハードウェア上で実行可能です:

  • JAX – JAXのXLAコンパイラを活用し、CPU、GPU、TPUで動作します。
  • NVIDIA Warp – 最先端のシングルGPU性能を実現するカスタムCUDAカーネルフレームワークです。
  • Neon – AutodeskのマルチGPUプログラミングモデルで、格子細分化(マルチ解像度)とマルチGPUスケーリングを追加します。

カーネルが微分可能であるため、XLBは機械学習パイプライン(例:勾配ベースの設計最適化、物理情報ニューラルネットワーク、随伴変数法を用いた形状最適化など)に組み込むことができます。


クイックスタート (READMEより)

# CPUのみ (特別なハードウェアなし)
pip install xlb

# Warpを使用したシングルGPU (最速のシングルGPUパス)
pip install "xlb[warp]"

# CUDA対応GPU上のJAX
pip install "xlb[cuda]"

# TPU上のJAX
pip install "xlb[tpu]"

# Neonを使用したマルチGPU / マルチ解像度 (LinuxおよびPython 3.11‑3.14が必要)
git clone https://github.com/Autodesk/XLB.git
cd XLB
pip install -r requirements.txt
pip install '.[neon]'

同一環境でWarpとNeonを混在させないでください。


主要機能 (READMEより)

カテゴリ 機能
バックエンド JAX, NVIDIA Warp, Neon (マルチGPU, 格子細分化)
LBMモデル BGK, KBC (高レイノルズ数で安定), Smagorinsky LES
格子セット D2Q9, D3Q19, D3Q27 (KBCに必要)
境界条件 平衡, 完全/半分バウンスバック, Zou/He, 正規化, 外挿流出, 補間バウンスバック, ハイブリッドなど
微分可能性 すべての衝突およびストリーミングカーネルはJAX互換であり、初期場、形状、材料パラメータに関する勾配計算が可能
スケーラビリティ シングルGPU (Warp), マルチGPU (Neon), JAX shard‑mapによる分散マルチGPU/TPU
精度 混合精度 (ストレージと計算を分離)
I/O & 可視化 PyVistaによるVTK (バイナリ/ASCII), gzip付きHDF5/XDMF, PhantomGazeによるインサイチュGPUレンダリング, Orbaxによるチェックポインティング, 画像スライス, trimeshによるボクセル化
機械学習統合 Flax, Haiku, Optax等と連携。微分可能な境界条件を提供
ロードマップ コア外シミュレーション, ロスレスGPU圧縮, 流体‑熱結合, 随伴形状最適化, ML加速ソルバー, 次数低減モデル

代表的なユースケース

  • 物理ベースML研究 – 流体シミュレータをニューラルネットワークの損失関数に組み込み、シミュレーションを通じて逆伝播させることで、制御ポリシーや逆設計を学習します。
  • 勾配ベースの設計最適化 – 形状(翼型、車体、建物レイアウト)を、抗力/揚力の目的関数を形状に対して微分することで最適化します。
  • 高性能CFD – 大規模なLBMシミュレーション(数億セル)を、単一GPU (Warp) または多数のGPU (Neon/JAX) で実行します。
  • マルチ解像度研究 – Neonの格子細分化を使用して、必要な場所(壁面付近など)に解像度を集中させ、メモリ消費を抑えます。
  • 教育 / 研究プロトタイピング – 純粋なPython APIとNumPyライクな構文により、CUDAカーネルを書かずに実験が可能です。

詳細情報

  • – リポジトリの examples/ フォルダには、風力タービン、NACA翼型、DrivAer車モデル、建物内の気流、蓋駆動キャビティ、微分可能最適化デモの実行可能なスクリプトが含まれています。
  • 論文XLB: A differentiable massively parallel lattice Boltzmann library in Python (Computer Physics Communications, 2024) にベンチマーク数値と検証の詳細が記載されています。
  • 引用 – XLBを使用した研究を発表する場合は、メインの論文を引用してください。格子細分化を使用する場合は、READMEに記載されているNeon関連の会議論文も併せて引用してください。

ライセンス

Apache 2.0 – 学術および商用利用は無料です。


結論 – XLBは、高性能流体シミュレーションと現代の微分可能プログラミングを橋渡しする、本格的なプロダクショングレードのライブラリです。機械学習主導の設計や最適化タスクのために微分可能な、高速でスケーラブルなCFDを必要とする研究者やエンジニアに最適です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト