Repolode
lupinemachines

lupinemachines/lupine

ネットワーク経由で、CPUのみのマシンからリモートサーバー上のCUDA GPUを利用できるGPU over IPブリッジ。

代替できる製品:Juice LabsThunder Compute

スター
2,451
フォーク
140
未解決の Issue
39
最終コミット
5 日前

これは何?

LUPINEは、クライアントマシンから物理GPUを搭載したサーバーへCUDAドライバーとNVMLの呼び出しを転送します。クライアント上のプログラムは、CUDAランタイムとライブラリを変更せずにそのまま実行でき、ネットワークを通るのはドライバー呼び出しだけです。サーバーはGPUマシン上のDockerで動作し、クライアントコンテナにはlibcudaとNVMLのshimが用意されるため、nvidia-smiなどのコマンドからリモートデバイスを確認できます。

1つのLUPINE_SERVERの値に複数のサーバーを指定でき、それらのGPUはクライアント上で1つの連番リストとして表示されます。サーバーをまたぐデバイス間コピーは、クライアントを経由して行われます。サーバーはRPCポートでPrometheusメトリクスも公開し、TLS終端プロキシの背後にあるHTTPSエンドポイントにも対応しています。接続にはTCP keepaliveとZstd圧縮を使用し、サーバーはSIGTERMを受け取ると処理中のCUDA呼び出しが完了するまで待機します。

プロジェクトはC++で記述され、CMakeでビルドされます。Linux、macOS、Windows向けのクライアントオブジェクトはサーバー実行ファイルに埋め込まれています。作者によると、デバイス転送はネットワークを経由するため遅くなりますが、モデルの学習や推論では通常、ホストとのデータのやり取りは少量です。

主な機能

  • 01CUDAドライバーとNVMLの呼び出しを転送し、nvidia-smiからも含め、リモートGPUをローカルにあるかのように利用できます。
  • 021つのエンドポイントリストに複数のサーバーを指定でき、それらのGPUを1つのデバイスリストにまとめて表示します。
  • 03GPUメモリ、使用率、クライアントごとのプロセスに関するPrometheusメトリクスを公開します。
  • 04TLS終端プロキシの背後にあるHTTPSエンドポイントに対応しています。
  • 05CUDAとUbuntuのバージョンの組み合わせに対応したDockerイメージを提供し、サーバーではHIPもサポートします。

ユースケース

  • CPUのみの開発マシンやCIマシンから、リモートGPUサーバーを使って学習や推論を実行する。
  • ネットワーク経由で、サーバーラック内のGPUを複数のクライアントマシンで共有する。
  • Prometheusを使ってリモートGPUのメモリ使用量や使用率を監視する。

クイックスタート

  1. 1

    GPUマシンでサーバーを実行する

    docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
  2. 2

    そのサーバーを指定してクライアントを実行する

    docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi

使う前に知っておきたいこと

  • サーバーを実行するGPUマシンには、DockerとCUDA対応GPUが必要です。
  • クライアントイメージはUbuntuベースで、サーバーイメージは特定のCUDAバージョンを対象としています。

トピック

よくある質問

lupine とは?
ネットワーク経由で、CPUのみのマシンからリモートサーバー上のCUDA GPUを利用できるGPU over IPブリッジ。 LUPINEは、クライアントマシンから物理GPUを搭載したサーバーへCUDAドライバーとNVMLの呼び出しを転送します。クライアント上のプログラムは、CUDAランタイムとライブラリを変更せずにそのまま実行でき、ネットワークを通るのはドライバー呼び出しだけです。サーバーはGPUマシン上のDockerで動作し、クライアントコンテナにはlibcudaとNVMLのshimが用意されるため、nvidia-smiなどのコマンドからリモートデバイスを確認できます。
lupine は無料で使えますか?ライセンスは?
lupine は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
lupine は今もメンテナンスされていますか?
活発にメンテナンス中。lupine の最終コミットは 2026年10月15日 です。
lupine は何に使えますか?
CPUのみの開発マシンやCIマシンから、リモートGPUサーバーを使って学習や推論を実行する。 ネットワーク経由で、サーバーラック内のGPUを複数のクライアントマシンで共有する。 Prometheusを使ってリモートGPUのメモリ使用量や使用率を監視する。
lupine のインストール方法は?
GPUマシンでサーバーを実行する: docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 そのサーバーを指定してクライアントを実行する: docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
lupine はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/lupinemachines/lupine

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト