私は、Ubuntu Ubuntu Server 16.04を使用してAmazon p2インスタンス上でヘッドレスオフスクリーンレンダリングを行うために、openglを利用しようとしています。UbuntuでAWS GPUインスタンス上でOpenGLを実行
インスタンスを作成した後、私はthis amazon articleに応じて適切なnvidiaドライバをインストールした、と彼らは期待通りに動作しているように見える:
$ lsmod | grep nvidia
nvidia_drm 53248 0
nvidia_modeset 790528 1 nvidia_drm
nvidia 11911168 1 nvidia_modeset
drm_kms_helper 155648 3 cirrus,nouveau,nvidia_drm
drm 364544 7 ttm,drm_kms_helper,cirrus,nouveau,nvidia_drm
$ nvidia-smi -q | head
==============NVSMI LOG==============
Timestamp : Thu Jan 19 11:22:38 2017
Driver Version : 375.20
Attached GPUs : 1
GPU 0000:00:1E.0
Product Name : Tesla K80
Product Brand : Tesla
私はその後、this related questionからのステップをしようとしている:
sudo apt-get install xserver-xorg libglu1-mesa-dev freeglut3-dev mesa-common-dev libxmu-dev libxi-dev
sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
sudo /usr/bin/X :0 &
を
Xを起動しても実行中のglxinfo
は動作しません:
$ DISPLAY=:0 glxinfo
name of display: :0
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
(... line repeats couple of times ...)
Error: couldn't find RGB GLX visual or fbconfig
関連するstackoverflowの質問に記載されているように、Xorg.confのBusIDを変更しても役に立たなかった。
$ lspci|grep VGA
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
/etc/X11/xorg.conf
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla K80"
BusID "PCI:0:2:0"
EndSection
私はかなり集中的にGoogleで検索しましたし、それが次の処理方法を私には不明だ...すべてのヘルプは、NVIDIAを使用する場合は、関連する問題、あなたに与えられた情報時代遅れをご検討ください
しかし、私は[headless-gl]を実行しようとしています(https://github.com/stackgl/headless-gl#how-can-headless-gl-be-used-on-a-headless-linux-machine )ノードアプリケーション。彼らは、GPUに接続していないようなxvfbの使用を推奨しています。 nvidiaドライバをアンインストールすると動作しますが、代わりにCPUを使用している可能性があります。 –
@FilidorWiese:確かに、Xvfb *は常にCPU側のフレームバッファで動作し、デバイスドライバとのやり取りを知らないため、XvfbはGPUアクセラレーションされません。一般に、NVidia GPUで作業する場合は、Mesaに関連するものを決してインストールしないことをお勧めします。 NVidiaとMesaは一般にお互いにうまく動作しません。真実を伝えるためには、ヘッドレスEGLサポートをノード/ヘッドレス-GLに追加することに時間を費やすほうがずっと価値があると思います。 – datenwolf