remotamente startx sobre ssh

4

Estou usando algum software que usa o CUDA para executar algumas coisas na GPU.

Se eu estiver usando ssh para conectar-me à caixa ou vnc even e tentar executar o programa, recebo um erro informando que nenhum dispositivo CUDA está ativado. Eu tenho que ir até a máquina e fazer o login fisicamente e digitar "startx" para detectar o dispositivo. Ele também pode ser outro uso na caixa usando uma sessão X, mas é necessário iniciar um item na caixa para que o CUDA funcione. Existe uma maneira de "startx" sobre uma sessão SSH para que isso funcione e eu não tenho que passar por cima e fazer o login?

Obrigado

    
por Derek 18.04.2011 / 18:43

3 respostas

2

Se você tem acesso root à caixa que está executando o CUDA ou pode obter alguém que faz essa alteração, é possível configurá-lo de forma que X não seja necessário para usar o CUDA.

Para isso, crie um arquivo chamado 85-cuda.rules in /etc/udev/rules.d com o seguinte conteúdo:

SUBSYSTEM=="module", KERNEL=="nvidia", RUN+="/lib/udev/cuda.sh"

Em seguida, crie um arquivo chamado cuda.sh in /lib/udev com o seguinte conteúdo:

#!/bin/sh

mknod -m 660 /dev/nvidia1 c 195 1
chown root:video /dev/nvidia1
mknod -m 660 /dev/nvidiactl c 195 255
chown root:video /dev/nvidiactl

Se a máquina tiver várias GPUs, repita as duas primeiras linhas, alterando nvidia1 para nvidia2 nas duas linhas e alterando a última 1 da primeira linha para 2 . Repita isso para cada cartão de reimpressão na máquina. Depois de salvar isso, você precisa torná-lo executável:

chmod +x /lib/udev/cuda.sh

Por fim, execute /lib/udev/cuda.sh uma vez para que funcione sem precisar reinicializar.

    
por 19.04.2011 / 03:04
-1

X (xorg) por design é um modelo cliente-servidor. Por SSH'ing in ... seu "x-server" padrão NÃO é a sessão x da máquina remota. Ele tentará & conectar-se a uma sessão x que atravessa o túnel. Em muitos aplicativos baseados em x, você tem a opção de especificar qual x-server exibir, e como você pode ser capaz de dizer ao seu aplicativo para iniciar no x-server da máquina remota. link

No que diz respeito ao VNC, tudo depende de como está configurado. Na maioria das vezes, o vnc irá criar uma nova sessão quando você se conectar e não estiver usando um servidor x habilitado para gpu. Dessa forma, ele também não permitirá que você inicie aplicativos habilitados para gpu no x-server não habilitado para gpu. Eu sinceramente não uso o VNC, então não sou o cara que pergunta como reconfigurá-lo para trabalhar com o x-server habilitado para gpu.

    
por 18.04.2011 / 18:55
-1

Ao usar ssh, inclua a opção -X. Isso permitirá que os aplicativos gráficos sejam executados no SSH. Basta iniciar um programa a partir da linha de comando como de costume e você deverá vê-lo aberto.

ssh -X user@host

Isso fará com que você não precise iniciar uma sessão inteira apenas para executar um aplicativo ou dois.

Caso contrário, você poderia iniciar x como um processo em segundo plano? (Usando & no final).

    
por 18.04.2011 / 20:26