원격 오프 스크린 렌더링


10

저의 연구소는 최근 강력한 NVIDIA 그래픽 카드가있는 서버를 추가했습니다.이 그래픽 카드는 과학 계산에 사용하고 싶습니다. 워크 스테이션이 아니기 때문에 ssh 연결을 통해 원격으로 작업을 실행해야합니다. 대부분의 응용 프로그램은 오프 스크린 버퍼에 대한 OpenGL 렌더링을 수행 한 다음 CUDA 결과에 대한 이미지 분석을 수행해야합니다.

필자의 초기 조사에 따르면 X11 포워딩은 좋지 않은 생각입니다. Opengl 렌더링은 클라이언트 시스템 (또는 X11 서버-혼동하는 명명 규칙)에서 발생하고 대규모 텍스처를 보낼 때 네트워크 병목 현상이 발생하기 때문입니다. 출력을 표시 할 필요가 없으므로 X11 전달이 필요하지 않은 것처럼 보이지만 Opengl은 $ DISPLAY를 유효한 것으로 설정해야하거나 응용 프로그램이 실행되지 않습니다. 렌더 팜이 존재한다고 확신하지만 어떻게 달성합니까? 아마도 이것이 단순한 X11 구성 문제라고 생각하지만 어디서부터 시작 해야할지 알지 못합니다.

gdm, gnome 등이 설치되지 않은 Ubuntu 서버 10.04를 실행 중입니다. 그러나 xserver-xorg 패키지가 설치되었습니다.


<code> x11vnc </ code>를 시도했지만 작동하지 않을 것입니다.
Hubert Kario

답변:


6

이 질문을 한 지 오래되었습니다. 그래서 우리가 궁극적으로 사용한 솔루션을 언급 할 것이라고 생각했습니다.

로컬 X 화면 하이재킹

결국 서버의 로컬 X 화면에서 원격 OpenGL 프로그램을 실행했습니다. 컴퓨터가 우분투 서버 에디션을 실행 중이고 기본적으로 xserver를 실행하지 않았으므로 시작할 때 실행되도록 xserver를 설정해야했습니다 (방금 우분투의 우분투 데스크탑 패키지를 설치하여 슬레지 해머로 모기를 죽였습니다). 루트로 "export DISPLAY = : 0.0; xhost + local :"명령을 사용하여 X 화면에 액세스 할 수있었습니다. 그런 다음 컴퓨터로 ssh하고 "export DISPLAY = : 0.0"을 호출 한 다음 정상적으로 opengl 프로그램을 실행할 수 있습니다. 원격 컴퓨터에 앉아있는 사람은 누구나 창 팝업을보고 프로그램이 실행중인 것을 볼 수 있지만 모니터가 연결되어 있지 않으므로 문제가되지 않습니다.

온 스크린 컬러 버퍼에서 직접 픽셀을 읽으면 다른 윈도우에 의해 창이 가려지면 가비지 데이터가 발생할 수 있기 때문에 어떤 형태의 오프 스크린 렌더링을 사용하는 것이 중요합니다. X 화면이 보이지 않기 때문에 이것이 발생했는지 알기가 어렵습니다. 오프 스크린 렌더링 (예 : 프레임 버퍼 객체 (fbo) 또는 p 버퍼)에는이 문제가 없습니다.

서버의 로컬 Xscreen을 하이재킹하는 것은 이상적인 솔루션이 아니므로 다음과 같은 대안을 찾아보십시오.

가상 프레임 버퍼

Xvfb는 옵션이지만 OpenGL은 하드웨어 가속의 이점을 얻지 못하고 OpenGL과의 CUDA 상호 운용성에 필요한 프레임 버퍼 객체가 지원되지 않았기 때문에 나에게는 효과가 없었습니다. 그럼에도 불구하고, 이것은 로컬 화면 하이재킹이 허용되지 않거나 사용자가 xhost 권한을 얻을 수없는 경우에 실행 가능한 옵션 일 수 있습니다.

VirtualGL

VirtualGL 웹 사이트에서 :

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.