lupinemachines/lupine
LUPINE is a GPU over IP bridge allowing GPUs on remote machines to be attached to CPU-only machines.
LUPINE – GPU-over-IP ブリッジ
機能概要 – LUPINE は、GPU を持たない CPU のみのマシンが、GPU ドライバ呼び出しをネットワーク経由で実際に GPU を持つ別のマシンに転送することで、CUDA ベースのプログラムを実行できるようにします。リモート GPU は、そのドライバライブラリ(libcuda.so、libnvidia-ml.so など)がクライアントにインストールされているかのようにローカルに表示されます。
使用方法
- GPU 搭載ホストでサーバーを実行(Docker イメージ
lupine-server)。TCP ポート 14833 で待ち受け、HTTP/2 RPC インターフェースを介して GPU を公開します。 - CPU のみのホストでクライアントを実行(Docker イメージ
lupine-client)。環境変数LUPINE_SERVER=<host>:14833を設定します。クライアントは LUPINE シムライブラリをプリロードするため、任意の CUDA プログラム(例:nvidia-smi、PyTorch、カスタムカーネル)が自動的にリモート GPU と通信します。 - オプションの追加機能 – トレース(
LUPINE_TRACE)、TLS(HTTPS プロキシでサーバーを前面に配置)、またはLUPINE_SERVERエンドポイントのカンマ区切りリストを提供することで複数サーバーにわたるマルチ GPU を有効化できます。
主要な技術ポイント
- ドライバのみの転送 – 低レベルのドライバ呼び出しのみがネットワークを通過します。アプリケーションは独自の CUDA ランタイムを引き続き使用します。
- シム – LUPINE は、ドライバ呼び出しを RPC に変換する軽量な「シム」ライブラリ(
libcuda.so.1、libnvidia-ml.so.1、NCCL、nvSHMEM)を提供します。 - 圧縮とキープアライブ – HTTP/2 ボディは Zstd で圧縮されます。TCP キープアライブ(アイドル 60 秒、プローブ 15 秒)により、アイドルフローのタイムアウトを防ぎます。
- メトリクス –
/metricsエンドポイントは、追加の監視エージェントなしで Prometheus 互換の GPU 使用統計を公開します。 - グレースフルシャットダウン –
SIGTERMは進行中の CUDA 呼び出しをドレインし、LUPINE_CHECKPOINT_LIBRARYで提供されるチェックポイントプロバイダをオプションで実行します。 - マルチ GPU / マルチサーバー – 複数のサーバーからのデバイスは単一の序数リストとして提示されます。クロスサーバー
cuMemcpyPeerはクライアントを介したステージングによって機能します。 - プラットフォームサポート – Linux、macOS、Windows(amd64 および arm64)用のプリビルドクライアントバンドル。Linux クライアントは manylinux_2_28 ABI(glibc ≥ 2.28)を対象としています。
典型的なワークフロー
# GPU ホスト
docker run --rm --gpus all -p 14833:14833 \
ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
# CPU のみのホスト – 任意の CUDA プログラムを実行
docker run --rm -it -e LUPINE_SERVER=<gpu-host>:14833 \
ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
PyTorch ベースのクライアントイメージ(Dockerfile は README に記載)をビルドし、リモート GPU に対して小さなトレーニングジョブ(microgpt_train)を実行することもできます。
対象ユーザー – 別のデータセンターやクラウド VM に強力な GPU へのアクセスがあるが、ローカルに完全な CUDA ドライバスタックをインストールせずに軽量な CPU のみのワークステーションで開発したい研究者やエンジニア。
制限事項
- 組み込みの認証はありません。セキュリティが必要な場合は、サーバーを TLS 終端プロキシの背後に配置する必要があります。
- クロスサーバーのピアツーピアコピーはクライアントを介してステージングされるため、追加のホストメモリトラフィックが発生します。
- 古い Linux ディストリビューション(CentOS 7、Ubuntu 18.04)はサポートされなくなりました。
詳細情報 – リポジトリには、チェックポイントプロバイダ、トレース、およびシムのローカルコンパイル方法に関する詳細なドキュメントが含まれています。Prometheus メトリクスは http://<server>:14833/metrics で利用できます。
上記の情報はすべてプロジェクトの README から直接取得しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト