remote running cuda code problem

I remote to a machine installed with two GTX 580 cards from my netbook, using the following commands:
X :1 -query graphics2

where graphics2 is the machine with graphical cards.

I can run matrixMul from the SDK package from cuda, but when I run smokeParticles, the following message displays:

[ CUDA Smoke Particles ]
Xlib: extension “NV-GLX” missing on display “my_netbook_ip:1.0”.
Xlib: extension “NV-GLX” missing on display “my_netbook_ip:1.0”.
The following required OpenGL extensions missing:

my drivers on graphics2 are:
CUDA Driver Version: 4.0
CUDA Capability Major/Minor version number: 2.0

my netbook installed ubuntu 10.10

Does anyone know how to solve this problem, there seems no answer to it on the internet yet.

There is no solution. The error you are getting suggests that you don’t have OpenGL support on the X11 server you are running, but even if you fix that, it still will not work. The particles and other examples which use CUDA-OpenGL interoperability are intended to be run on a display GPU. They can’t be used remotely via a remote X or forwarded X connection.

I believe you can use VirtualGL to tunnel OpenGL from a CUDA host to a remote client, I’ve only done this once but it worked reasonably well. More info is at:



thanks for you reply. I installed it and it works, (but not so fast).

However, something bothering me is that the openGL is designed using a sever-client sides mechanism, which means it is not a problem whether the graphical cards or display monitor are on the same machine or not. The hint is that no special software should be required to invoke the graphical cards remotely. I don’t know what I am missing here.