Running CUDA without running X
I want to run multiple graphics cards on CUDA without starting X, since I have a bunch of GPUs sitting in a headless box. Since the GPU drivers does not get loaded without X running (or, in ubuntu, only some of the cards gets loaded), I put together a init.d script that brings up all the nvidia GPUs on your Ubuntu 10.04 box:
#!/bin/bash
COMMAND="$1"
case $COMMAND in
start|stop|restart)
if [ "$COMMAND" = "restart" ] || [ "$COMMAND" = "stop" ]; then
NVIDIADEV=`ls -l /dev/nvidia* | awk '{if ($9 != "/dev/nvidiactl") a+=1}END{print a}'`
NDEV=`expr $NVIDIADEV - 1`
for i in `seq 0 $NDEV`; do
unlink /dev/nvidia$i
done
unlink /dev/nvidiactl
fi
if [ "$COMMAND" = "restart" ] || [ "$COMMAND" = "start" ]; then
modprobe nvidia
if [ "$?" -eq 0 ]; then
NVGA=`/usr/bin/lspci | grep VGA | wc -l`
N=`expr $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
fi
fi
;;
*)
echo "$COMMAND is not supported on this job."
;;
esac