Đã được một thời gian kể từ khi tôi hỏi câu hỏi này, vì vậy tôi nghĩ rằng tôi đã đề cập đến giải pháp mà cuối cùng chúng tôi đã sử dụng.
Chiếm màn hình X cục bộ
Cuối cùng, tôi chỉ chạy các chương trình opengl từ xa trên màn hình X cục bộ của máy chủ. Máy đang chạy phiên bản máy chủ Ubuntu và nó không chạy xserver mặc định, vì vậy tôi phải thiết lập một máy chủ xs để chạy khi khởi động (Tôi vừa cài đặt gói máy tính để bàn Ubuntu, giết một con muỗi bằng búa tạ), và sau đó đã cho tôi quyền truy cập vào màn hình X bằng cách sử dụng các lệnh này dưới dạng root: "export HIỂN THỊ =: 0.0; xhost + local:". Sau đó, tôi có thể ssh vào máy, gọi "export HIỂN THỊ =: 0,0" và sau đó chạy các chương trình opengl của tôi như bình thường. Bất cứ ai ngồi ở máy từ xa sẽ thấy cửa sổ bật lên và xem chương trình của tôi đang chạy, nhưng chúng tôi không có màn hình được kết nối nên đây không phải là vấn đề.
Điều quan trọng là sử dụng một số hình thức hiển thị ngoài màn hình, bởi vì đọc pixel trực tiếp từ bộ đệm màu trên màn hình có thể dẫn đến dữ liệu rác nếu cửa sổ bị che khuất bởi một cửa sổ khác. Vì bạn không thể nhìn thấy màn hình X, thật khó để biết điều này có xảy ra hay không. Kết xuất ngoài màn hình (ví dụ: các đối tượng Framebuffer (fbo) hoặc pbuffers) không gặp phải vấn đề này.
Chiếm quyền điều khiển Xscreen cục bộ của máy chủ không phải là một giải pháp lý tưởng, vì vậy đây là một vài lựa chọn thay thế tôi tìm thấy trên đường đi:
Framebuffers ảo
Xvfb là một tùy chọn, nhưng nó không hoạt động với tôi, vì OpenGL không được hưởng lợi từ việc tăng tốc phần cứng và các đối tượng bộ đệm khung không được hỗ trợ, cần thiết cho khả năng tương tác CUDA với OpenGL. Tuy nhiên, đây có thể là một tùy chọn khả thi khi việc chiếm quyền điều khiển màn hình cục bộ không được chấp nhận hoặc khi người dùng không thể nhận được các đặc quyền xhost.
VirtualGL
Từ trang web VirtualGL:
VirtualGL là gói nguồn mở cung cấp cho bất kỳ phần mềm hiển thị từ xa Unix hoặc Linux nào khả năng chạy các ứng dụng OpenGL với khả năng tăng tốc phần cứng 3D đầy đủ.
Đây chính xác là những gì tôi muốn, và nó có vẻ rất hứa hẹn, nhưng tôi không có thời gian để đối phó với sự phụ thuộc thư viện mới, vì vậy tôi đã không thử nghiệm nó. Tôi đoán rằng đây là giải pháp lý tưởng khi tôi có thể biên dịch, cài đặt và định cấu hình. Đây là những gì VirtualBox và một số máy chủ VNC sử dụng để hỗ trợ 3D tăng tốc phần cứng.