Skip to content

Instantly share code, notes, and snippets.

@thomelane
Created November 20, 2019 01:28
Show Gist options
  • Save thomelane/ff5b6987366228749110f6bdf7b71152 to your computer and use it in GitHub Desktop.
Save thomelane/ff5b6987366228749110f6bdf7b71152 to your computer and use it in GitHub Desktop.
GLX Commands
# On local MacOS machine...
1) Download and Install TurboVCN
Only source for binaries was sourceforge: https://sourceforge.net/projects/turbovnc/files/2.1.2/
`TurboVNC-2.1.2.dmg` failed to run on MacOS Siera, but `TurboVNC-2.1.2-AppleJava.dmg` was sucessful.
Only after installing an old version of Java: https://support.apple.com/kb/DL1572?locale=en_GB
2) Start AWS p3.2xlarge instance
3) Add to ~/.ssh/config
```
Host glx.com
HostName [instance-ip].amazonaws.com
User ubuntu
IdentityFile ~/.ssh/[keypair].pem
LocalForward 5901 localhost:5901
```
4) SSH onto instance with `ssh glx.com`
# On remote AWS EC2 instance...
1) Get GLX test utils
```
sudo apt-get update
sudo apt-get install -y mesa-utils
glxinfo
glxgears
```
2) Download NVIDIA drivers, for LibGL
```
wget http://us.download.nvidia.com/tesla/396.44/nvidia-diag-driver-local-repo-ubuntu1604-396.44_1.0-1_amd64.deb
sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604-396.44_1.0-1_amd64.deb
sudo apt-key add /var/nvidia-diag-driver-local-repo-396.44/7fa2af80.pub
sudo apt-get install cuda-drivers
sudo reboot
```
3) Add NVidia LibGL to path
* Find Location of NVidia `libGL.so`: sudo find / -name 'libGL.so'
* Add NVidia libs path (via `.bashrc`): `export LD_LIBRARY_PATH=/usr/lib/nvidia-396/:$LD_LIBRARY_PATH`
* `source .bashrc`
4) Confirm NVidia LibGL is used
```
ldd `which glxgears`
```
And look for something like: `libGL.so.1 => /usr/lib/nvidia-396/libGL.so.1 (0x00007f336ff83000)`
### LOG HISTORY
# Get CUDA version
16 nvcc --version
# Get GLX test
109 sudo apt-get update
29 sudo apt-get install -y mesa-utils
30 glxinfo
glxgears
# Install xserver
49 sudo apt-get -y install xserver-xorg
# Install mesa drivers (as backup)
sudo apt-get install -y libglu1-mesa-dev freeglut3-dev mesa-common-dev libxmu-dev libxi-dev
# Find BUS of NVIDIA
69 lspci
79 nvidia-xconfig --query-gpu-info
# Create config
80 sudo nvidia-xconfig --busid=PCI:0:30:0 --use-display-device=none
50 sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
# Adjust config
sudo nano /etc/X11/xorg.conf
Comment out the server layout, and screen blocks
# Start x server
51 sudo /usr/bin/X :0 &
# Find location on nvidia driver libs
111 sudo find / -name 'libGL.so'
# Add to path
112 export LD_LIBRARY_PATH=/usr/lib/nvidia-396/:$LD_LIBRARY_PATH
# Check glx is using correct lib
90 ldd `which glxgears`
# Install virtualgl
171 wget https://sourceforge.net/projects/virtualgl/files/2.5.2/virtualgl_2.5.2_amd64.deb/download -O virtualgl_2.5.2_amd64.deb
172 sudo dpkg -i virtualgl*.deb
173 rm virtualgl*.deb
# Install turboVCN
174 wget https://sourceforge.net/projects/turbovnc/files/2.1.1/turbovnc_2.1.1_amd64.deb/download -O turbovnc_2.1.1_amd64.deb
175 sudo dpkg -i turbovnc*.deb
176 rm turbovnc*.deb
# Unsorted
177 sudo service lightdm stop
178 sudo /opt/VirtualGL/bin/vglserver_config -config +s +f -t
179 sudo reboot
180 export LD_LIBRARY_PATH=/usr/lib/nvidia-396/:$LD_LIBRARY_PATH
181 glxgears
182 xauth merge /etc/opt/VirtualGL/vgl_xauth_key
183 xdpyinfo -display :0
184 /opt/VirtualGL/bin/glxinfo -display :0 -c
185 exit
186 export LD_LIBRARY_PATH=/usr/lib/nvidia-396/:$LD_LIBRARY_PATH
187 ldd `which glxgears`
188 /opt/TurboVNC/bin/vncserver
189 export DISPLAY=:1
190 DISPLAY=1 vglrun glxgears
191 ls
192 source activate coach_env
193 coach -l
194 vglrun coach -r -p CartPole_PG
195 /opt/TurboVNC/bin/vncserver
196 vglrun glxgears
197 DISPLAY:=1 vglrun glxgears
198 DISPLAY=1 vglrun glxgears
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment