Compile Tensorflow 0.8.0 with Bazel 0.2.3
module purge -f
module load compilers/gcc/4.8.5 compilers/java/1.8 apps/buildtools cuda/7.5 libs/cuDNN/5 compilers/swig apps/git
cd /software-gpu/src/
mkdir -p bazel023_tensorflow0.8
cd bazel023_tensorflow0.8
git clone --recurse-submodule [email protected]:tensorflow/tensorflow.git
cd tensorflow
git checkout v0.8.0
cp third_party/gpus/crosstool/CROSSTOOL{,.orig}
for tool in gcc cpp gcov ar ld dwp nm objdump objcopy strip; do
sed -i "s;/usr/bin/$tool;$(which $tool);g" third_party/gpus/crosstool/CROSSTOOL
done
GCC_PREFIX=$(dirname $(dirname $(which gcc)))
sed -i "\;linker_flag: \"-B/usr/bin/\";a \
\ \ linker_flag: \"-Wl,-rpath=$GCC_PREFIX/lib64\"" third_party/gpus/crosstool/CROSSTOOL
sed -i "\;linker_flag: \"-B/usr/bin/\";a \
\ \ linker_flag: \"-Wl,-rpath=$GCC_PREFIX/lib\"" third_party/gpus/crosstool/CROSSTOOL
# Include directory
for path in $(find $GCC_PREFIX -name include\*); do
sed -i "\;cxx_builtin_include_directory: \"/usr/local/include\"; a \
\ \ cxx_builtin_include_directory: \"$path\"" third_party/gpus/crosstool/CROSSTOOL
done
# Replace "-B/usr/bin"
TOOLS_PREFIX=$(dirname $(which ar))
sed -i "s;-B/usr/bin;-B$TOOLS_PREFIX;g" third_party/gpus/crosstool/CROSSTOOL
# Python deps
module load apps/python/2.7.10
virtualenv venv2
source venv2/bin/activate
pip install numpy argparse
# Configure
./configure
# Python - default
# with GPU : Y
# GCC - default
# CUDA version: 7.5
# CUDA path : /software-gpu/cuda/7.5.18
# cuDNN : 5
# cuDNN path : /software-gpu/libs/cuDNN/5_cuda7.5
# Compute capability : 3.5,3.7
# Swig wrapper patch
sed -i "1 s;^.*$;#!$VIRTUAL_ENV/bin/python;" third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc
sed -i "/cmd = 'PATH=' + PREFIX_DIR + ' ' + cmd/s/^/#/" third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc
# Patch wheel script for Bazel 0.2.3
sed -i 's;build_pip_package.runfiles;build_pip_package.runfiles/__main__;' tensorflow/tools/pip_package/build_pip_package.sh
export BAZEL_PREFIX=/software-gpu/src/bazel023_tensorflow0.8/bazel-0.2.3/output
export MALLOC_ARENA_MAX=4
$BAZEL_PREFIX/bazel build -c opt --config=cuda --copt="-I$VIRTUAL_ENV/include/python2.7" --copt="-I$VIRTUAL_ENV/lib/python2.7/site-packages/numpy/core/include" --copt='-fabi-version=6' --linkopt='-lrt' //tensorflow/tools/pip_package:build_pip_package --verbose_failures --jobs 40
# compiling ...
# Creating wheel
mkdir dist
bazel-bin/tensorflow/tools/pip_package/build_pip_package $PWD/dist