-
-
Save zhenglaizhang/f8db86c5fe42a45cc98843d6badf1792 to your computer and use it in GitHub Desktop.
simple cronjob script to frequently build TensorFlow from source automatically
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Patrick Wieschollek | |
# ============================================================= | |
# UPDATE SOURCE | |
# ============================================================= | |
git checkout -- . | |
git pull origin master | |
for python_version in python2 python3; do | |
echo "build TensorFlow for Python version:", ${python_version} | |
# ============================================================= | |
# CONFIGURATION | |
# ============================================================= | |
TF_ROOT=/graphics/opt/opt_Ubuntu16.04/tensorflow | |
cd $TF_ROOT | |
export PYTHON_BIN_PATH=$(which ${python_version}) | |
export PYTHON_LIB_PATH="$($PYTHON_BIN_PATH -c 'import site; print(site.getsitepackages()[0])')" | |
export PYTHONPATH=${TF_ROOT}/lib | |
export PYTHON_ARG=${TF_ROOT}/lib | |
export CUDA_TOOLKIT_PATH=/graphics/opt/opt_Ubuntu16.04/cuda/toolkit_8.0/cuda | |
export CUDNN_INSTALL_PATH=/graphics/opt/opt_Ubuntu16.04/cuda/cudnn/6/cuda | |
export TF_NEED_GCP=0 | |
export TF_NEED_CUDA=1 | |
export TF_CUDA_VERSION="$($CUDA_TOOLKIT_PATH/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p')" | |
export TF_CUDA_COMPUTE_CAPABILITIES=6.1,5.2,3.5 | |
export TF_NEED_HDFS=0 | |
export TF_NEED_OPENCL=0 | |
export TF_NEED_JEMALLOC=1 | |
export TF_ENABLE_XLA=0 | |
export TF_NEED_VERBS=0 | |
export TF_CUDA_CLANG=0 | |
export TF_CUDNN_VERSION="$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' $CUDNN_INSTALL_PATH/include/cudnn.h)" | |
export TF_NEED_MKL=0 | |
export TF_DOWNLOAD_MKL=0 | |
export TF_NEED_MPI=0 | |
export GCC_HOST_COMPILER_PATH=$(which gcc) | |
export CC_OPT_FLAGS="-march=native" | |
# ============================================================= | |
# BUILD NEW VERSION | |
# ============================================================= | |
bazel clean | |
./configure | |
# build TensorFlow (add -s to see executed commands) | |
# "--copt=" can be "-mavx -mavx2 -mfma -msse4.2 -mfpmath=both" | |
# build entire package | |
bazel build -c opt --copt=-mfpmath=both --copt=-msse4.2 --config=cuda //tensorflow/tools/pip_package:build_pip_package | |
# build c++ library | |
bazel build -c opt --copt=-mfpmath=both --copt=-msse4.2 --config=cuda tensorflow:libtensorflow_cc.so | |
# build TF pip package | |
bazel-bin/tensorflow/tools/pip_package/build_pip_package ${TF_ROOT}/pip/tensorflow_pkg | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment