Server Installation - VisionSystemsInc/voxel_globe GitHub Wiki
TL;DR
- Install Docker, git, and git-lfs (and Nvidia drivers and nvidia-docker in Linux)
git clone --recursive [email protected]:visionsystemsinc/voxel_globe.git
cd voxel_globe
./just install
(This is the part that can take a long time, ~20 minutes on Linux, ~60 minutes on Mac and Windows)./just start
You should only ever run ./just install
once. See here for instructions on how to upgrade to the latest version of VoxelGlobe.
Supported Operating Systems
Linux, Windows, and Mac are supported for running the VoxelGlobe Server. Many of the algorithms require GPU support, and currently GPU is only supported in Linux. Windows GPU support will probably never be added due to numerous issues (such as celery, and GPU Passthrough limitations). Unless technology changes, Windows and Mac will not support GPU use. When VoxelGlobe runs in Windows/Mac, it will default to CPU when possible, and fail when it needs CUDA.
Requirements
Linux (Recommended)
-
Nvidia Drivers
-
Mint - If your graphics card is from Nvidia, perform the following steps to install the Nvidia drivers:
- Open the Driver Manager
- Choose the Nvidia drivers and wait for them to be installed
- Reboot the computer
-
Other - You generally have a number of ways you can install Nvidia drivers in Linux
- Install the CUDA repo and use your package manager to install cuda
- Alternative method: Install the Nvidia driver for your card from the Nvidia site
-
Start be by searching Nvidia
-
For example, if you have a GTX 880M, choose
- Product Type: GeForce
- Product Series: GeForce 800M Series (Notebook)
- Product: GeForce GTX 880M
- Operating System: Linux 64-bit
- Language: English (US)
-
Click "Search"
-
The most recent version of the driver will show up (you have to go here to pick an arbitrary version of the driver)
-
Download the driver, for example, this is version 367.57
-
Open up a terminal, and
cd
into the directory where your downloaded the file. Often, this is your "Download" folder, socd ~/Downloads
-
Run the installer. For version 367.57, this looks like
bash ./NVIDIA-Linux-x86_64-367.57.run
-
Follow the onscreen instructions, and the drivers should install
-
- Alternative method: Install the CUDA repo and use your package manager to install just the nvidia driver (untested)
- Same as above, but instead of
sudo yum install cuda
tryyum install nvidia-kmod.x86_64 xorg-x11-drv-nvidia.x86_64 xorg-x11-drv-nvidia-gl.x86_64 xorg-x11-drv-nvidia-libs.x86_64
- Same as above, but instead of
- Ubuntu (Not tested)
-
Reboot your computer once the drivers are installed, this will allow them to be loaded and start working. Once rebooted, run
nvidia-smi
to verify the drivers are working. For example:Tue Nov 1 16:21:15 2016 +------------------------------------------------------+ | NVIDIA-SMI 361.42 Driver Version: 361.42 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 680 Off | 0000:01:00.0 N/A | N/A | | 34% 53C P8 N/A / N/A | 380MiB / 4095MiB | N/A Default | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 580 Off | 0000:02:00.0 N/A | N/A | | 44% 52C P12 N/A / N/A | 8MiB / 3071MiB | N/A Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla K20c Off | 0000:03:00.0 Off | Off | | 30% 36C P8 16W / 225W | 14MiB / 5119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | | 1 Not Supported | +-----------------------------------------------------------------------------+
-
-
Docker - Install using Docker's instructions
-
Make sure your username has
docker
group permissions by runningid {username}
. You should seegroups=
followed by a number of groups, one of which says999(docker)
(where the number may be different) in the output. If you do NOT see docker, see here and tryid {username}
again. Once you are logged out and log in again, hello-world should work now. -
Do not forget to run set docker to start on boot. The instructions for your UsuaOS have a "Start the docker daemon at boot" or "Starting Docker" section. Older versions of Ubuntu may be more tedious.
-
To hello-world test, run
docker run -it --rm hello-world
and you should see:Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
-
-
- Make sure Docker is installed and running before attempting this, and that the nvidia drivers are loaded by testing them as mentioned above.
- On Fedora/RHEL/CentOS, run
systemctl enable nvidia-docker
to enable nvidia-docker on boot - You must test
nvidia-docker
at least once before usingjust
. For example:nvidia-docker run andyneff/nvidia-minimal
-
- Install git-lfs
-
For Debian operating systems (Ubuntu, Mint, etc...) run
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash apt-get install git-lfs
-
For Fedora operating systems (RHEL, CentOS, etc...) run
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash yum install git-lfs
-
If for any reason this does not work, you do not have root, or you are using another operating system, just go here and download the latest Linux AMD64 package. Untar the
git-lfs
executable and put it in your path (or runinstall.sh
if you do have root).
-
- Run
sudo git lfs install
once, orgit lfs install
for every non-root user you want git checkout to work for (probably just your user account).
- Install git-lfs
Mac
- Docker
- Git
- Git-LFS
- Install git-lfs
- Click download, and untar the file and run
install.sh
- Or You can use
brew install git-lfs
- If for any reason this does not work, or you do not have permission, just go here and download the latest Mac AMD64 package. Untar the
git-lfs
executable and put it in your path (or runinstall.sh
if you do have permissions).
- Click download, and untar the file and run
- Run
sudo git lfs install
once, orgit lfs install
for every non-root user you want git checkout to work for (probably just your user account).
- Install git-lfs
Windows
- Docker
- Git
- Git-LFS
- Install git-lfs
- As administrator, run
git lfs install --system
once, orgit lfs install
for every user you want git checkout to work for (probably just your user account).
Installation
Cloning
-
The easiest way to clone is to
git clone --recursive [email protected]:visionsystemsinc/voxel_globe.git
-
The quickest way to clone is to
GIT_LFS_SKIP_SMUDGE=1 git clone --recursive [email protected]:visionsystemsinc/voxel_globe.git cd voxel_globe git lfs pull
-
If you are not set up to do ssh checkout (on github and bitbucket), you can switch the submodules over to http
git clone https://github.com/visionsystemsinc/voxel_globe.git cd voxel_globe ./just https-submodule git submodule sync git submodule init git submodule update
Setup
Once you are in the voxel_globe repo dir, simply run
./just install
The install step takes the longest. Once you see vxl is running cmake/building, you can actually start everything. All servers will run without error as long as you don't start processing tasks that need vxl. Once vxl is done building, ./just restart
and everything will be up and running
Starting
./just start