[BUG] deepmd/kk can bind Torch to a different GPU than Kokkos
メンテナーはふだん 4 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
調査の方向性
pair_base.cpp:39 と pair_dpa4spin.cpp:234 から始め、DeepPotPTExpt.cc:167-181 と NativeSpinPTExpt.cc:314-326 の初期化を、pair_deepmd_kokkos.cpp と pair_dpa4spin_kokkos.cpp のポインターパスと併せて追跡します。通常のパスと native-spin /kk パスで Kokkos device 1 を選択する 2 GPU のリグレッションを追加します。モデルのロードと raw-pointer tensor wrapper が同じ device を使用するか、不一致時に明確に失敗すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
deepmd/kk and dpa4spin/kk can run Kokkos on one GPU while loading the Torch model on another. Raw Kokkos pointers are then wrapped as tensors tagged with the independently selected Torch device, causing invalid or illegal device memory access.
This is present on origin/master at 8cfd46e37448.
Trigger
On a node with at least two visible GPUs, launch one MPI rank while explicitly choosing Kokkos device 1, for example:
lmp -k on g 1 d 1 ...
Kokkos allocates its views on GPU 1. DeePMD passes node-local MPI rank 0 into model initialization (pair_base.cpp:39 and pair_dpa4spin.cpp:234), and the PT-experimental APIs independently choose:
gpu_id = gpu_rank % torch::cuda::device_count();
so the model is loaded on GPU 0 (DeepPotPTExpt.cc:167-181, NativeSpinPTExpt.cc:314-326).
The device path later passes raw Kokkos pointers from pair_deepmd_kokkos.cpp / pair_dpa4spin_kokkos.cpp. DeepPotPTExpt and NativeSpinPTExpt wrap those pointers with TensorOptions().device(cuda:gpu_id), which labels GPU-1 allocations as GPU-0 tensors.
Expected behavior
The model and all raw-pointer tensor wrappers must use Kokkos's actual device. The pair style should pass the selected Kokkos device to model initialization, or initialization should query and validate the active device and fail clearly on a mismatch.
A two-GPU regression should exercise an explicit nonzero Kokkos device for both ordinary and native-spin /kk paths.
Coding agent: Codex
Codex version: codex-cli 0.149.0
Model: gpt-5.6-sol
Reasoning effort: xhigh
- 主要言語
- Python
- スター
- 2.1k
- フォーク
- 661
- 平均マージ
- 5日 13時間
- マージ済み PR(30日)
- 11
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
deepmodeling/deepmd-kit のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
deepmodeling/deepmd-kit#6086 ·
メンテナーはふだん 4 日以内に返信
-
Fine-tune descriptor mismatch warning should ignore seed対応中かも @SiyuanChenToDo が 8 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
deepmodeling/deepmd-kit#6038 · コメント 2 件 ·
メンテナーはふだん 4 日以内に返信
-
Docs enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
deepmodeling/deepmd-kit#5766 · コメント 1 件 ·
メンテナーはふだん 4 日以内に返信
-
[Code scan] Freeze Paddle DPA3 parameters with stop_gradient対応中かも @njzjz が 105 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
deepmodeling/deepmd-kit#5686 · コメント 1 件 ·
メンテナーはふだん 4 日以内に返信
-
branch: master lang: py todo comment type: todo
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
deepmodeling/deepmd-kit#5480 ·
メンテナーはふだん 4 日以内に返信
deepmodeling/deepmd-kit の issue をすべて見る
似ている issue
-
bug P1
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Toloka/tolokaforge#1947 ·
メンテナーはふだん 1 日以内に返信
-
SageMaker provider: streaming fails with NoStreamDataError on DJL Serving (LMI) endpoints対応中かも @balajiaru が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
UKGovernmentBEIS/inspect_ai#6127 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
letsencrypt/cp-cps#361 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100