From 35c13be8bab492e6f424155d8d451c8b6f1d453a Mon Sep 17 00:00:00 2001 From: Lequn Chen Date: Tue, 27 Aug 2019 14:46:42 -0700 Subject: [PATCH] update markdown docs --- INSTALL.md | 3 ++- README.md | 78 ++++++------------------------------------------------ 2 files changed, 10 insertions(+), 71 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 4171032..5834422 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -179,10 +179,11 @@ cd ../.. # YAY!!! FINALLY US!!! nexus cd .. -git clone git@github.com:abcdabcd987/nexus.git -b lqchen +git clone https://github.com/uwsampl/nexus.git cd nexus git submodule update --init --recursive mkdir build +cd build cmake .. -DCMAKE_CXX_COMPILER=g++-8.3 -DCMAKE_BUILD_TYPE=Debug -DUSE_GPU=ON -DCUDA_PATH=/usr/local/cuda-10.0 -DUSE_TENSORFLOW=ON -DUSE_CAFFE=OFF -DUSE_CAFFE2=OFF -DUSE_DARKNET=OFF make -j$(nproc) ``` diff --git a/README.md b/README.md index 2a1dcbd..4f34d0a 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,15 @@ Nexus Nexus is a scalable and efficient serving system for DNN applications on GPU cluster. -Compile and Deploy Nexus -======================== +## Installation -Download nexus and sample models --------------- +See [INSTALL.md](INSTALL.md) for details. -### Download Nexus +## SOSP 2019 Paper -Download nexus and framworks it supports from github -``` -$ git clone --recursive https://github.com/uwsaml/nexus.git -$ cd nexus -$ git submodule update --init --recursive -``` +* Check out the [Google Drive](https://drive.google.com/open?id=104UqrlNrfJoQnGdkxTQ56mfxSBFyJTcr) that contains the artifacts. + +## Deployment ### Download Model Zoo @@ -34,66 +29,9 @@ $ mkdir nexus-models $ aws s3 sync s3://nexus-models nexus-models/ ``` -Pre-requisites --------------- - -Recommended development environment on Ubuntu (>=16.04) - -### General dependencies -``` -$ [sudo] apt-get install libboost-all-dev libgflags-dev libgoogle-glog-dev \ -libgtest-dev libyaml-cpp-dev libopenblas-dev libleveldb-dev liblmdb-dev \ -libhdf5-serial-dev -``` - -### Required libraries -* protobuf >= 3.5.0 -* [grpc](https://github.com/grpc/grpc/blob/master/INSTALL.md) >= v1.4.x -* OpenCV >= 3.0 -* bazel >= 0.10.0 -* CUDA >= 8.0 -* CUDNN >= 6.0 - -### Pre-requsites for Deploy Nexus Service - -Nexus is able to be compiled from source, but if it is necessary to run Nexus service across multiple servers, we use the use docker swarm. So we recommand to deploy nexus by docker. - -To build nexus docker images and deploy Nexus, following packages are required -* [CUDA 8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) -* [docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/)(>=1.12) -* [nvidia-docker](https://github.com/NVIDIA/nvidia-docker) - -Set Config for Nexus --------------------- - -There is a file names Makefile.config in the nexus folder. You can config the CUDA and CUDNN library path in the config file. $(CUDA_PATH) should be set as CUDA/library/path, and $(CUDNN_PATH) should be set as CUDNN/library/path. - -Other varaibles such as $(USE_CAFFE) decide if the corresponding frameworks nexus need to support. Nexus is not able to support caffe and caffe2 at the same time. - - Local Tests without Docker -------------------------- -### Compile from source - -Nexus can be compiled from source with make command -``` -$ cd nexus -$ cp frameworks/tf_configure.bazelrc frameworks/tensorflow/.tf_configure.bazelrc -$ cd frameworks/tensorflow -$ bazel --output_base=../../build/tensorflow build --config=opt //tensorflow:libtensorflow.so //tensorflow:libtensorflow_cc.so //tensorflow:libtensorflow_framework.so //tensorflow:install_headers -$ cd ../.. -$ make all -``` - -In the Nexus repo, we provide a few sample applications located at `nexus/apps`. -Go to the directory at each application, e.g., nexus/apps/simple_app/, you can -compile the application by -``` -$ cd nexus/apps/simple_app -$ make -``` - ### Local Tests There are some commands to test these local sample applications. We will use simple_app as an example of these applications. @@ -126,8 +64,8 @@ Since we recommand to use docker, there are four docker images that needs to be First you need to build the base docker image that installs all dependent libraries required for Nexus. Following docker build commands contain -t and -f options. -t option is followed -by name and optionally a tag in the ‘name:tag’ format. -f option is followed by -name of the Dockerfile (Default is ‘PATH/Dockerfile’). +by name and optionally a tag in the `name:tag` format. -f option is followed by +name of the Dockerfile (Default is `PATH/Dockerfile`). ``` $ cd nexus/dockerfiles