我有一个 C++ 程序,它使用 VTK 在内部渲染图像(执行代码时不会出现窗口)。
我可以访问 HPC 集群,并且已成功使用 OSMesa 版本的 VTK 在具有 SingularityCE 的仅 CPU 节点上运行代码,当然,CPU 比本地使用 GPU 慢约 10 倍。 HPC 还具有配备 NVIDIA A100s GPU 的节点。
我知道 Singularity 具有--nv
使 NVIDIA 驱动程序对容器可见的标志,并且我已成功nvidia-smi
在内部调用,这有效。
但到目前为止,我找到的资源(例如这)利用提升的权限设置虚拟图形环境,但我无法使用它,例如,nvidia-xconfig --query-gpu-info
在容器内调用会出现权限错误。
有没有办法在无头服务器中渲染 OpenGL(通过 VTK)而无需使用 Singularity 的 root 权限?