Skip to content

Instantly share code, notes, and snippets.

@ontheklaud
Last active March 19, 2019 09:00
Show Gist options
  • Save ontheklaud/f3a993b40fb45e45acb1f7a2507a1d2f to your computer and use it in GitHub Desktop.
Save ontheklaud/f3a993b40fb45e45acb1f7a2507a1d2f to your computer and use it in GitHub Desktop.
TensorFlow r1.12rc2 build
# GCC 8.2.0 build
# References:
# https://gcc.gnu.org/install/configure.html
# http://luiarthur.github.io/gccinstall
tar xzf gcc-8.2.0.tar.gz
cd gcc-8.2.0
# edit <./contrib/download_prerequisites>, from ftp:// to http://
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-8.2.0/configure --prefix=$HOME/opt/gcc-8.2.0 --enable-languages=c,c++,fortran,go,objc,obj-c++ --disable-multilib
make -jN
make install
# CUSTOM GCC-8.2.0 (c,c++,fortran,go,objc,obj-c++)
export GCC_HOME=${HOME}/opt/gcc-8.2.0
export CC=${GCC_HOME}/bin/gcc
export CXX=${GCC_HOME}/bin/g++
export FC=${GCC_HOME}/bin/gfortran
export CPATH=${GCC_HOME}/include
export PATH=${GCC_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${GCC_HOME}/lib:${GCC_HOME}/lib64:${LD_LIBRARY_PATH}
# lastgood
alias bazel="bazel --server_javabase=${JAVA_HOME}"
alias bazelcleanup="bazel clean --expunge --async;bazel sync;bazel shutdown;"
# also, CLEAN-UP ~/.cache/bazel/_bazel_<user>/<random_numbers>
# LD_LIBRARY_PATH=${GCC_HOME}/lib:${GCC_HOME}/lib64: (no matter for gcc LD only)
# virtualenv setup (via conda/anaconda)
conda create -n mklxla -c conda-forge python=3.6 cartopy numpy=1.15.2 matplotlib scipy opencv cython seaborn pandas geopy scikit-learn scikit-image netcdf4 h5py
pip install keras_applications keras_preprocessing
# tf r1.12rc2
# Apache Ignite (Y) | XLA JIT (Y) | SYCL (N) | ROCm (N) | CUDA (N) | CLANG (N) | MPI (N) | COPT (-march=native) | Android (N)
# Extra Flags: NOCXXABI (--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0") | COPT (--config=opt) | NGRAPH (--config=ngraph) | VERBS (--verbs) | MONO (--config=monolithic)
# XLA & CLANG & MPI & COPT & NOCXXABI & NGRAPH & VERBS: Fail
# XLA & CLANG & MPI & COPT & NGRAPH & VERBS: Fail
# XLA & NOCXXABI & COPT & NGRAPH: Success (Ryzen 7 1800X/E7-4860/Gold 6126) / however, SegFault
# XLA & NOCXXABI & COPT (custom) & NGRAPH: Success (E7-4860/Gold 6126) / however, SegFault
# XLA & NOCXXABI & COPT (native) & NGRAPH & MONO: Fail (Gold 6126)
# NOCXXABI & COPT (native) & NGRAPH: (E7-4860) Success / however, SegFault
# NOCXXABI & COPT (custom) & NGRAPH: Success / however, SegFauilt
# XLA & NOCXXABI & COPT (native) & MKL: (E7-4860/Gold 6126) Success / working
# Optimization Instructions
# Xeon E7-4860 / Westmere-EX / -march=native (fail) / -msse2 -msse3 -msse4.1 -msse4.2
# Xeon Gold 6126 / Skylake / -march=native (fail) / -mavx -mavx2 -mfma -msse4.1 -msse4.2 -mavx512f
# Ryzen 7 1800X / Summit Ridge / -march=native / -mavx -mavx2 -mfma -msse4.1 -msse4.2
bazel build --copt="-DEIGEN_USE_VML" --config=opt --config=mkl //tensorflow/tools/pip_package:build_pip_package --verbose_failures
bazel build --config=opt --config=mkl //tensorflow/tools/pip_package:build_pip_package --verbose_failures
bazel build --config=opt --config=ngraph //tensorflow/tools/pip_package:build_pip_package --verbose_failures
bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=opt --config=ngraph //tensorflow/tools/pip_package:build_pip_package --verbose_failures
# for building wheel files with successful built,
bazel-bin/tensorflow/tools/pip_package/build_pip_package ..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment