# GPU モードと ViDi サーバの関係

クライアント/サーバ機能を使用すると、最大 8 台のクライアント PC で 1 つのサーバを使用して学習と処理の両方を行うことができます。これにより、クライアントはサーバにインストールされた 1 つ以上の GPU の使用を共有することができます。

複数の GPU の使用については、ローカルで実行されている場合、ViDi Suite サーバは ViDi Suite GUI と同じ機能や設定オプションを提供します。

- 複数の GPU を使用するには、すべて同じタイプである必要があり、メモリは同じ量である必要があります。
- サーバで使用できる GPU の最大数は 4 台です。
- 個々のクライアントは、ストリームを処理する際に特定の GPU デバイスを要求することができます。
- 学習サービス (ViDi Suite GUI を実行するクライアントのサポート)、ランタイムサービス (ランタイムインタフェースを使用してストリーム経由で画像処理を行うクライアントのサポート)、または学習サービスとランタイムサービスの両方を提供するように、1 つの ViDi サーバを設定することができます。要求の出所 (学習サービスまたはランタイムサービス) に関わらず、要求は 1 つの FIFO キューに入れられ、最初に使用できる GPU デバイスを使用して順番に処理されます。

サーバの GPU モードは ViDi Suite サービスを起動したときに設定され、コマンドライン引数を使用して GPU モードを指定できます。

SingleDevicePerTool GPU モード

デフォルトでは、サービスは SingleDevicePerTool GPU モードを使用するように設定されています。このモードでは、ツールを処理するたびにその期間中 GPU はロックされます。ツールが処理されると、GPU はロック解除されます。

複数のツールストリームを処理する場合、各ツールは順番に処理されます。ストリームの次のツールを実行する準備ができているときに GPU が使用できない場合、GPU が使用できるようになるまでストリームの処理は停止します。キューにその他の処理要求が既にある場合、そのツールはキューの最後に追加されます。

2 つのツールがひとつの共通した上流のツールを入力とする場合、それらのツールは同時ではなく順番に実行され、両方のツールが処理されるまで、ストリームの処理はその他のツールをブロックします。

MultipleDevicesPerTool GPU モード

サーバを MultipleDevicesPerTool GPU モードに設定すると、すべての GPU は常に 1 つの GPU として扱われます。つまり、サーバ全体で 1 度に処理できるのは 1 つのツールのみです。

解析 (赤) ツールの場合、MultipleDevicesPerTool モードを使用するとツール (特に高画質の特徴のサイズ比を使用したツール) を高速化できる場合があります。ただし、高速化によってクライアント全体の遅延に影響が出ます。