リモートオフスクリーンレンダリング


10

私の研究室は最近、科学計算を行うために使用したい、頑丈なNVIDIAグラフィックカードを搭載したサーバーを追加しました。これはワークステーションではないため、ssh接続を介してリモートでジョブを実行する必要があります。ほとんどのアプリケーションでは、オフスクリーンバッファーに対してopenglレンダリングを実行し、その結果をCUDAで画像分析する必要があります。

私の最初の調査では、X11フォワーディングは悪い考えであることを示唆しています。openglレンダリングはクライアントマシン(またはX11サーバー-混乱する命名規則!)で発生し、大規模なテクスチャを送信するときにネットワークボトルネックが発生するためです。出力を表示する必要はないので、X11転送は必要ないようですが、Openglでは$ DISPLAYを有効なものに設定する必要があります。そうしないと、アプリケーションが実行されません。これを行うレンダーファームは確かに存在しますが、どのようにして達成されますか?これはおそらく単純なX11構成の問題だと思いますが、どこから始めればよいのかよくわかりません。

Ubuntuサーバー10.04を実行していますが、gdm、gnomeなどがインストールされていません。ただし、xserver-xorgパッケージがインストールされています。


私は<code> x11vnc </ code>を試しますが、動作する可能性はかなり低いです
Hubert Kario

回答:


6

私がこの質問をしたのは久しぶりなので、最終的に使用したソリューションについて触れておきたいと思います。

ローカルXスクリーンのハイジャック

結局、サーバーのローカルX画面でリモートのopenglプログラムを実行しただけです。マシンはUbuntuサーバーエディションを実行しており、デフォルトではxserverを実行していなかったため、起動時に実行するようにxserverを設定する必要がありました(Ubuntuのubuntu-desktopパッケージをインストールし、蚊を大ハンマーで殺しました)。 rootとして次のコマンドを使用して、X画面にアクセスできるようになりました: "export DISPLAY =:0.0; xhost + local:"。次に、マシンにSSHでログインし、「export DISPLAY =:0.0」を呼び出して、openglプログラムを通常どおり実行します。リモートマシンに座っている人は誰でもウィンドウポップアップを表示して私のプログラムの実行を監視しますが、モニターが接続されていないため、これは問題ではありませんでした。

オンスクリーンカラーバッファーから直接ピクセルを読み取ると、ウィンドウが別のウィンドウで隠れてしまうと、ガベージデータが発生する可能性があるため、何らかの形式のオフスクリーンレンダリングを使用することが重要です。X画面が表示されないため、これが発生したかどうかを確認することは困難です。オフスクリーンレンダリング(フレームバッファオブジェクト(fbo)やpbuffersなど)には、この問題はありません。

サーバーのローカルXscreenをハイジャックすることは理想的なソリューションではないので、途中で見つけたいくつかの代替策を以下に示します。

仮想フレームバッファ

Xvfbはオプションですが、OpenGLはハードウェアアクセラレーションの恩恵を受けておらず、OpenGLとのCUDAの相互運用に必要なフレームバッファオブジェクトはサポートされていなかったため、私には機能しませんでした。それでも、これは、ローカル画面のハイジャックが受け入れられない場合、またはユーザーがxhost特権を取得できない場合に実行可能なオプションである可能性があります。

VirtualGL

VirtualGL Webサイトから:

VirtualGLは、UnixまたはLinuxのリモートディスプレイソフトウェアに完全な3DハードウェアアクセラレーションでOpenGLアプリケーションを実行する機能を提供するオープンソースパッケージです。

これはまさに私が望んでいることであり、非常に有望に見えますが、新しいライブラリの依存関係に対処する時間がないため、テストしていません。私の推測では、コンパイル、インストール、構成を行うことができれば、これが理想的なソリューションだと思います。これは、VirtualBoxおよび一部のVNCサーバーがハードウェアアクセラレーション3Dをサポートするために使用するものです。


0

ダミーのX11のように、マシン上でvfb-仮想フレームバッファーを実行できます。私たちは、見たことのないXwindowを開き、vfbをインストールして$ DISPLAYをエクスポートするために必要なアプリを実行していました-CLI HTHの画面のようなもの


2
先端をありがとう!私はxvfbを調べ始めましたが、レンダリングはグラフィックハードウェアを使用していないようですが、代わりに仮想メモリにレンダリングします。誰でもこれを確認/拒否できますか?これが事実である場合、私たちはグラフィックカードのパワーを活用しようとしているため、このソリューションは適切ではないと思います。
redmoskito
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.