0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu + Anaconda 環境で NVIDIA PhysicsNeMo を動かすまでの記録

0
Last updated at Posted at 2026-03-25

Ubuntu + Anaconda 環境で NVIDIA PhysicsNeMo を動かすまでのメモ (エラー暫定回避版)

CUDA 13.1 / RTX 5070 Ti / PhysicsNeMo + PhysicsNeMo Sym / Lid Driven Cavity example 実行まで

こちらのサイトは緊急避難的に環境設定時のエラーを緊急避難的(イレギュラー)に解決したときの対応をまとめています。
筋が良い対応方法はこちらにまとめております。



はじめに

Ubuntu 環境で NVIDIA PhysicsNeMo を試そうとしたところ、PyPI 版のインストールだけではそのまま example が動かず、いくつか追加対応が必要でした。
本記事では、実際に行った対応をまとめます。

対象は以下です。

  • Ubuntu
  • Anaconda
  • NVIDIA GPU
  • CUDA 13.1
  • physicsnemo
  • physicsnemo-sym
  • example: examples/cfd/ldc_pinns

最終的には、Lid Driven Cavity の example が学習を開始し、Loss が表示されるところまで確認できました。


実行環境

nvidia-smi の結果は以下の通りでした。

nvidia-smi

要点だけ抜き出すと、

  • GPU: NVIDIA GeForce RTX 5070 Ti
  • Driver Version: 590.48.01
  • CUDA Version: 13.1

という構成です。


1. conda 環境を作成する

まず、新しい conda 環境を作成しました。

conda create -n nphysics00 python=3.11 -y
conda activate nphysics00

続けて、pip などを更新しておきます。

python -m pip install --upgrade pip setuptools wheel

2. PhysicsNeMo 本体と Sym を GitHub から取得する

今回、最終的には PyPI 版ではなく source / editable install を使う方が安定しました。
そのため、まず GitHub から clone します。

PhysicsNeMo 本体

cd ~/Downloads
git clone https://github.com/NVIDIA/physicsnemo.git

PhysicsNeMo Sym

cd ~/Downloads
git clone https://github.com/NVIDIA/physicsnemo-sym.git

3. 既存の PyPI 版を削除する

最初に PyPI 版を入れていた場合は、あとで source 版と衝突しやすいので削除しておきます。

conda activate nphysics00
python -m pip uninstall -y nvidia-physicsnemo nvidia-physicsnemo.sym

4. source / editable install を行う

PhysicsNeMo core

cd ~/Downloads/physicsnemo
python -m pip install -e .

PhysicsNeMo Sym

physicsnemo-sym 側は、今回の環境では --no-build-isolation を付けた方が通りやすかったです。

cd ~/Downloads/physicsnemo-sym
python -m pip install -e . --no-build-isolation

5. source 版が読まれていることを確認する

ちゃんと clone したソースを参照しているか確認します。

python - <<'PY'
import physicsnemo
import physicsnemo.sym

print("physicsnemo      :", physicsnemo.__file__)
print("physicsnemo.sym  :", physicsnemo.sym.__file__)
PY

期待するのは、以下のように site-packages ではなく clone したディレクトリを読んでいる状態です。

physicsnemo      : /home/USER/Downloads/physicsnemo/physicsnemo/__init__.py
physicsnemo.sym  : /home/USER/Downloads/physicsnemo-sym/physicsnemo/sym/__init__.py

6. example 実行時に起きた問題と対応

対象の example は以下です。

cd ~/Downloads/physicsnemo/examples/cfd/ldc_pinns

実行コマンドはこれです。

python -u train.py

ただし、最初はそのままでは動きませんでした。


6.1 torch.distributed.tensor._ops.registration エラー

最初に出たのは以下のエラーです。

ModuleNotFoundError: No module named 'torch.distributed.tensor._ops.registration'

原因

train.py では from physicsnemo.models.fno import FNO を使いたいだけなのですが、
physicsnemo/models/__init__.pyDiT まで import してしまい、その過程で domain_parallelcustom_opstorch.distributed.tensor._ops.registration に進んで落ちていました。

つまり、FNO を使いたいだけなのに、不要な DiT の import が巻き込まれている 状態でした。

対応

以下のファイルを編集しました。

~/Downloads/physicsnemo/physicsnemo/models/__init__.py

元々入っていた

from .dit import DiT

を、一時的に無効化しました。

# from .dit import DiT

あるいは、少し安全にするなら次のようにしてもよいです。

try:
    from .dit import DiT
except Exception:
    DiT = None

6.2 numba が無い

次に、以下のエラーが出ました。

ModuleNotFoundError: No module named 'numba'

対応

conda activate nphysics00
python -m pip install numba

6.3 nvidia.dali が無い

さらに、以下のエラーが出ました。

ModuleNotFoundError: No module named 'nvidia.dali'

対応

今回の環境は CUDA 13.1 なので、DALI は CUDA 13 系向けを入れました。

conda activate nphysics00
python -m pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-cuda130

確認用:

python - <<'PY'
import nvidia.dali as dali
print("DALI import OK")
print("DALI version:", dali.__version__)
PY

7. uv について

途中で uv run python ... も試しましたが、今回の環境では

  • physicsnemo.sym の見え方が不安定
  • conda 環境に入れたものと uv 実行時の見え方が一致しないケースがある

という状態がありました。

そのため、今回は 素直に conda activate nphysics00 後の python -u train.py を使う方が安定しました。


8. 最終的に成功した実行コマンド

以下で example が動きました。

conda activate nphysics00
cd ~/Downloads/physicsnemo/examples/cfd/ldc_pinns
python -u train.py

実際には次のようなログが出ました。

/home/taka/Downloads/physicsnemo/physicsnemo/distributed/manager.py:415: UserWarning: Could not initialize using ENV, SLURM or OPENMPI methods. Assuming this is a single process job

/home/taka/anaconda3/envs/nphysics00/lib/python3.11/site-packages/nvidia/dali/plugin/base_iterator.py:208: Warning: Please set `reader_name` ...

Loss: 0.5098664164543152, LR: 0.0009999871767586216
Loss: 0.012258127331733704, LR: 0.0009872458850468222

少なくとも以下は確認できました。

  • 学習ループに入っている
  • DALI が動作している
  • Loss が表示されている
  • Loss が低下している

9. warning について

single process job の warning

Could not initialize using ENV, SLURM or OPENMPI methods. Assuming this is a single process job

これは、分散実行ではなく 単一 GPU / 単一プロセス で実行しているという意味です。
ローカル動作確認では問題ありません。

Warp DeprecationWarning

Warp DeprecationWarning: The symbol `warp.context.Device` will soon be removed from the public API. Use `warp.Device` instead.

これは将来の API 変更予告であり、今回の失敗要因ではありません。

DALI の warning

Please set `reader_name` ...

これも dataloader 実装上の注意で、今回の example 動作確認の段階では致命的ではありません。


10. 最終的なおすすめ構成

今回の経験から、以下の構成が扱いやすかったです。

  • Python 環境: conda
  • 環境名: nphysics00
  • PhysicsNeMo core: GitHub clone + pip install -e .
  • PhysicsNeMo Sym: GitHub clone + pip install -e . --no-build-isolation
  • 実行方法: conda activate nphysics00 の後に python -u train.py

11. 再現用コマンドまとめ

以下をまとめて実行すれば、今回の構成を再現しやすいです。

# conda 環境
conda create -n nphysics00 python=3.11 -y
conda activate nphysics00
python -m pip install --upgrade pip setuptools wheel

# clone
cd ~/Downloads
git clone https://github.com/NVIDIA/physicsnemo.git
git clone https://github.com/NVIDIA/physicsnemo-sym.git

# 既存 PyPI 版の削除(必要なら)
python -m pip uninstall -y nvidia-physicsnemo nvidia-physicsnemo.sym

# editable install
cd ~/Downloads/physicsnemo
python -m pip install -e .

cd ~/Downloads/physicsnemo-sym
python -m pip install -e . --no-build-isolation

# 追加依存
python -m pip install numba
python -m pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-cuda130

# example 実行
cd ~/Downloads/physicsnemo/examples/cfd/ldc_pinns
python -u train.py

12. まとめ

今回のポイントは次の3点でした。

  1. PyPI 版と GitHub source 版を混在させない
  2. core と sym の両方を source / editable install に揃える
  3. DiT の不要 import を避ける

PhysicsNeMo はそのままでも入りますが、example 実行まで考えると、環境によっては追加調整が必要でした。
同じように詰まっている方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?