I'm not running Ubuntu or nVidia R346.35, but I had to add a line to /etc/rc.d/rc.local under Slackware running nVidia R340.76 to keep the CUDA/OpenCL device after a reboot:
# Create missing nvidia device nodes after reboot
/usr/bin/nvidia-modprobe -c 0 -u
Make sure you have nvidia-modprobe installed. Also, make sure you have the nvidia-uvm kernel module installed as well:
crw-rw-rw- 1 root root 248, 0 feb 21 10:47 /dev/nvidia-uvm
crw-rw-rw- 1 root root 195, 0 feb 21 10:52 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 feb 21 10:52 /dev/nvidiactl
I only have a GeForce 9300M GS but it's detected as an OpenCL device in Houdini 13/14:
OpenCL Platform NVIDIA CUDA Platform Vendor NVIDIA Corporation Platform Version OpenCL 1.1 CUDA 6.5.45 OpenCL Device GeForce 9300M GS OpenCL Type GPU Device Version OpenCL 1.0 CUDA