Date: Monday, November 23, 2020 @ 12:43:12 Author: svenstaro Revision: 759899
archrelease: copy trunk to community-staging-x86_64 Added: tensorflow/repos/community-staging-x86_64/PKGBUILD (from rev 759898, tensorflow/trunk/PKGBUILD) tensorflow/repos/community-staging-x86_64/build-against-actual-mkl.patch (from rev 759898, tensorflow/trunk/build-against-actual-mkl.patch) tensorflow/repos/community-staging-x86_64/cuda11.1.patch (from rev 759898, tensorflow/trunk/cuda11.1.patch) tensorflow/repos/community-staging-x86_64/fix-h5py3.0.patch (from rev 759898, tensorflow/trunk/fix-h5py3.0.patch) Deleted: tensorflow/repos/community-staging-x86_64/PKGBUILD tensorflow/repos/community-staging-x86_64/build-against-actual-mkl.patch tensorflow/repos/community-staging-x86_64/cuda11.1.patch tensorflow/repos/community-staging-x86_64/fix-h5py3.0.patch --------------------------------+ PKGBUILD | 614 +++++++++++++++++++-------------------- build-against-actual-mkl.patch | 74 ++-- cuda11.1.patch | 272 ++++++++--------- fix-h5py3.0.patch | 36 +- 4 files changed, 501 insertions(+), 495 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-11-23 12:42:45 UTC (rev 759898) +++ PKGBUILD 2020-11-23 12:43:12 UTC (rev 759899) @@ -1,304 +0,0 @@ -# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> -# Maintainer: Konstantin Gizdov (kgizdov) <a...@kge.pw> -# Contributor: Adria Arrufat (archdria) <adria.arrufat+...@protonmail.ch> -# Contributor: Thibault Lorrain (fredszaq) <freds...@gmail.com> - -pkgbase=tensorflow -pkgname=(tensorflow tensorflow-opt tensorflow-cuda tensorflow-opt-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda python-tensorflow-opt-cuda) -pkgver=2.3.1 -_pkgver=2.3.1 -pkgrel=5 -pkgdesc="Library for computation using data flow graphs for scalable machine learning" -url="https://www.tensorflow.org/" -license=('APACHE') -arch=('x86_64') -depends=('c-ares' 'intel-mkl' 'onednn' 'pybind11' 'openssl-1.0' 'lmdb' 'libpng' 'curl' 'giflib' 'icu' 'libjpeg-turbo') -makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'gcc9' - 'cudnn' 'python-pip' 'python-wheel' 'python-setuptools' 'python-h5py' - 'python-keras-applications' 'python-keras-preprocessing' - 'cython') -optdepends=('tensorboard: Tensorflow visualization toolkit') -source=("$pkgname-$pkgver.tar.gz::https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz" - https://github.com/tensorflow/tensorflow/commit/c6769e20bf6096d5828e2590def2b25edb3189d6.patch - numpy1.20.patch::https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch - cuda11.1.patch - fix-h5py3.0.patch - build-against-actual-mkl.patch) -sha512sums=('e497ef4564f50abf9f918be4522cf702f4cf945cb1ebf83af1386ac4ddc7373b3ba70c7f803f8ca06faf2c6b5396e60b1e0e9b97bfbd667e733b08b6e6d70ef0' - '9dcaef0dd4fdd7008a27e383ef87c97990ba883a3094f214f821a039994933ec6ec47f5a832570e5c4b783e0493ce2236e7957e596395c4dee40f9bf2621ff2f' - 'df2e0373e2f63b8766f31933f7db57f6a7559b8f03af1db51644fba87731451a7cd3895529a3192e5394612fcb42f245b794b1c9ca3c05881ca03a547c8c9acc' - '0caa5170c22fdea2c708ecdb2c980d668464d9dba9c9730a9ec5e9258572576d783fa1d19da04d5f9d2b06aed36d30971526f212fc64c53d09c3e821bd1a3b5d' - '9d7b71fed280ffaf4dfcd4889aa9ab5471874c153259f3e77ed6e6efa745e5c5aa8507d3d1f71dead5b6f4bea5f8b1c10c543929f37a6580c3f4a7cbec338a6a' - 'e51e3f3dced121db3a09fbdaefd33555536095584b72a5eb6f302fa6fa68ab56ea45e8a847ec90ff4ba076db312c06f91ff672e08e95263c658526582494ce08') - -get_pyver () { - python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' -} - -check_dir() { - if [ -d "${1}" ]; then - return 0 - else - >&2 echo Directory "${1}" does not exist or is a file! Exiting... - exit 1 - fi -} - -prepare() { - # Allow any bazel version - echo "*" > tensorflow-${_pkgver}/.bazelversion - - # Tensorflow actually wants to build against a slimmed down version of Intel MKL called MKLML - # See https://github.com/intel/mkl-dnn/issues/102 - # MKLML version that Tensorflow wants to use is https://github.com/intel/mkl-dnn/releases/tag/v0.21 - patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/build-against-actual-mkl.patch - - # Fix wrong SONAME being shipped in CUDA 11.1 - patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/cuda11.1.patch - - # Compile with C++17 by default (FS#65953) - #sed -i "s/c++14/c++17/g" tensorflow-${_pkgver}/.bazelrc - - patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/numpy1.20.patch - - # FS#68488 - patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/fix-h5py3.0.patch - - cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt - cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda - cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt-cuda - - # These environment variables influence the behavior of the configure call below. - export PYTHON_BIN_PATH=/usr/bin/python - export USE_DEFAULT_PYTHON_LIB_PATH=1 - export TF_NEED_JEMALLOC=1 - export TF_NEED_KAFKA=1 - export TF_NEED_OPENCL_SYCL=0 - export TF_NEED_AWS=1 - export TF_NEED_GCP=1 - export TF_NEED_HDFS=1 - export TF_NEED_S3=1 - export TF_ENABLE_XLA=1 - export TF_NEED_GDR=0 - export TF_NEED_VERBS=0 - export TF_NEED_OPENCL=0 - export TF_NEED_MPI=0 - export TF_NEED_TENSORRT=0 - export TF_NEED_NGRAPH=0 - export TF_NEED_IGNITE=0 - export TF_NEED_ROCM=0 - # See https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl - export TF_SYSTEM_LIBS="boringssl,curl,cython,gif,icu,libjpeg_turbo,lmdb,nasm,pcre,png,pybind11,zlib" - export TF_SET_ANDROID_WORKSPACE=0 - export TF_DOWNLOAD_CLANG=0 - export TF_NCCL_VERSION=2.7 - export TF_IGNORE_MAX_BAZEL_VERSION=1 - export TF_MKL_ROOT=/opt/intel/mkl - export NCCL_INSTALL_PATH=/usr - export GCC_HOST_COMPILER_PATH=/usr/bin/gcc-9 - export HOST_C_COMPILER=/usr/bin/gcc-9 - export HOST_CXX_COMPILER=/usr/bin/g++-9 - export TF_CUDA_CLANG=0 # Clang currently disabled because it's not compatible at the moment. - export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang - export TF_CUDA_PATHS=/opt/cuda,/usr/lib,/usr - export TF_CUDA_VERSION=$(/opt/cuda/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p') - export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h) - export TF_CUDA_COMPUTE_CAPABILITIES=5.2,5.3,6.0,6.1,6.2,7.0,7.2,7.5,8.0,8.6 - - # Required until https://github.com/tensorflow/tensorflow/issues/39467 is fixed. - export CC=gcc-9 - export CXX=g++-9 - - export BAZEL_ARGS="--config=mkl -c opt --copt=-I/usr/include/openssl-1.0 --host_copt=-I/usr/include/openssl-1.0 --linkopt=-l:libssl.so.1.0.0 --linkopt=-l:libcrypto.so.1.0.0 --host_linkopt=-l:libssl.so.1.0.0 --host_linkopt=-l:libcrypto.so.1.0.0" -} - -build() { - echo "Building without cuda and without non-x86-64 optimizations" - cd "${srcdir}"/tensorflow-${_pkgver} - export CC_OPT_FLAGS="-march=x86-64" - export TF_NEED_CUDA=0 - ./configure - bazel \ - build ${BAZEL_ARGS[@]} \ - //tensorflow:libtensorflow.so \ - //tensorflow:libtensorflow_cc.so \ - //tensorflow:install_headers \ - //tensorflow/tools/pip_package:build_pip_package - bazel-bin/tensorflow/tools/pip_package/build_pip_package "${srcdir}"/tmp - - - echo "Building without cuda and with non-x86-64 optimizations" - cd "${srcdir}"/tensorflow-${_pkgver}-opt - export CC_OPT_FLAGS="-march=haswell -O3" - export TF_NEED_CUDA=0 - ./configure - bazel \ - build --config=avx2_linux \ - ${BAZEL_ARGS[@]} \ - //tensorflow:libtensorflow.so \ - //tensorflow:libtensorflow_cc.so \ - //tensorflow:install_headers \ - //tensorflow/tools/pip_package:build_pip_package - bazel-bin/tensorflow/tools/pip_package/build_pip_package "${srcdir}"/tmpopt - - - echo "Building with cuda and without non-x86-64 optimizations" - cd "${srcdir}"/tensorflow-${_pkgver}-cuda - export CC_OPT_FLAGS="-march=x86-64" - export TF_NEED_CUDA=1 - ./configure - bazel \ - build \ - ${BAZEL_ARGS[@]} \ - //tensorflow:libtensorflow.so \ - //tensorflow:libtensorflow_cc.so \ - //tensorflow:install_headers \ - //tensorflow/tools/pip_package:build_pip_package - bazel-bin/tensorflow/tools/pip_package/build_pip_package --gpu "${srcdir}"/tmpcuda - - - echo "Building with cuda and with non-x86-64 optimizations" - cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda - export CC_OPT_FLAGS="-march=haswell -O3" - export TF_NEED_CUDA=1 - export TF_CUDA_CLANG=0 - ./configure - bazel \ - build --config=avx2_linux \ - ${BAZEL_ARGS[@]} \ - //tensorflow:libtensorflow.so \ - //tensorflow:libtensorflow_cc.so \ - //tensorflow:install_headers \ - //tensorflow/tools/pip_package:build_pip_package - bazel-bin/tensorflow/tools/pip_package/build_pip_package --gpu "${srcdir}"/tmpoptcuda -} - -_package() { - # install headers first - install -d "${pkgdir}"/usr/include/tensorflow - cp -r bazel-bin/tensorflow/include/* "${pkgdir}"/usr/include/tensorflow/ - # install python-version to get all extra headers - WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl") - pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies - # move extra headers to correct location - local _srch_path="${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include - check_dir "${_srch_path}" # we need to quit on broken search paths - find "${_srch_path}" -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do - cp -nr "${_folder}" "${pkgdir}"/usr/include/tensorflow/ - done - # clean up unneeded files - rm -rf "${pkgdir}"/usr/bin - rm -rf "${pkgdir}"/usr/lib - rm -rf "${pkgdir}"/usr/share - - # install the rest of tensorflow - tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver} - sed -e 's@/include$@/include/tensorflow@' -i tensorflow.pc -i tensorflow_cc.pc - install -Dm644 tensorflow.pc "${pkgdir}"/usr/lib/pkgconfig/tensorflow.pc - install -Dm644 tensorflow_cc.pc "${pkgdir}"/usr/lib/pkgconfig/tensorflow_cc.pc - install -Dm755 bazel-bin/tensorflow/libtensorflow.so "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver} - ln -s libtensorflow.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver:0:1} - ln -s libtensorflow.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow.so - install -Dm755 bazel-bin/tensorflow/libtensorflow_cc.so "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver} - ln -s libtensorflow_cc.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver:0:1} - ln -s libtensorflow_cc.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_cc.so - install -Dm755 bazel-bin/tensorflow/libtensorflow_framework.so "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver} - ln -s libtensorflow_framework.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver:0:1} - ln -s libtensorflow_framework.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_framework.so - install -Dm644 tensorflow/c/c_api.h "${pkgdir}"/usr/include/tensorflow/tensorflow/c/c_api.h - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} - -_python_package() { - WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl") - pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies - - # create symlinks to headers - local _srch_path="${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include/ - check_dir "${_srch_path}" # we need to quit on broken search paths - find "${_srch_path}" -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do - rm -rf "${_folder}" - _smlink="$(basename "${_folder}")" - ln -s /usr/include/tensorflow/"${_smlink}" "${_srch_path}" - done - - # tensorboard has been separated from upstream but they still install it with - # tensorflow. I don't know what kind of sense that makes but we have to clean - # it out from this pacakge. - rm -rf "${pkgdir}"/usr/bin/tensorboard - - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} - -package_tensorflow() { - cd "${srcdir}"/tensorflow-${_pkgver} - _package tmp -} - -package_tensorflow-opt() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" - conflicts=(tensorflow) - provides=(tensorflow) - - cd "${srcdir}"/tensorflow-${_pkgver}-opt - _package tmpopt -} - -package_tensorflow-cuda() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)" - depends+=(cuda cudnn nccl) - conflicts=(tensorflow) - provides=(tensorflow) - - cd "${srcdir}"/tensorflow-${_pkgver}-cuda - _package tmpcuda -} - -package_tensorflow-opt-cuda() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" - depends+=(cuda cudnn nccl) - conflicts=(tensorflow) - provides=(tensorflow tensorflow-cuda) - - cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda - _package tmpoptcuda -} - -package_python-tensorflow() { - depends+=(tensorflow python-termcolor python-astor python-gast python-numpy python-protobuf absl-py python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) - - cd "${srcdir}"/tensorflow-${_pkgver} - _python_package tmp -} - -package_python-tensorflow-opt() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" - depends+=(tensorflow-opt python-termcolor python-astor python-gast python-numpy python-protobuf absl-py python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) - conflicts=(python-tensorflow) - provides=(python-tensorflow) - - cd "${srcdir}"/tensorflow-${_pkgver}-opt - _python_package tmpopt -} - -package_python-tensorflow-cuda() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)" - depends+=(tensorflow-cuda python-termcolor python-astor python-gast python-numpy cuda cudnn python-pycuda python-protobuf absl-py nccl python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) - conflicts=(python-tensorflow) - provides=(python-tensorflow) - - cd "${srcdir}"/tensorflow-${_pkgver}-cuda - _python_package tmpcuda -} - -package_python-tensorflow-opt-cuda() { - pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" - depends+=(tensorflow-opt-cuda python-termcolor python-astor python-gast python-numpy cuda cudnn python-pycuda python-protobuf absl-py nccl python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) - conflicts=(python-tensorflow) - provides=(python-tensorflow python-tensorflow-cuda) - - cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda - _python_package tmpoptcuda -} - -# vim:set ts=2 sw=2 et: Copied: tensorflow/repos/community-staging-x86_64/PKGBUILD (from rev 759898, tensorflow/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-11-23 12:43:12 UTC (rev 759899) @@ -0,0 +1,310 @@ +# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> +# Maintainer: Konstantin Gizdov (kgizdov) <a...@kge.pw> +# Contributor: Adria Arrufat (archdria) <adria.arrufat+...@protonmail.ch> +# Contributor: Thibault Lorrain (fredszaq) <freds...@gmail.com> + +pkgbase=tensorflow +pkgname=(tensorflow tensorflow-opt tensorflow-cuda tensorflow-opt-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda python-tensorflow-opt-cuda) +pkgver=2.3.1 +_pkgver=2.3.1 +pkgrel=6 +pkgdesc="Library for computation using data flow graphs for scalable machine learning" +url="https://www.tensorflow.org/" +license=('APACHE') +arch=('x86_64') +depends=('c-ares' 'intel-mkl' 'onednn' 'pybind11' 'openssl-1.0' 'lmdb' 'libpng' 'curl' 'giflib' 'icu' 'libjpeg-turbo') +makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' + 'cudnn' 'python-pip' 'python-wheel' 'python-setuptools' 'python-h5py' + 'python-keras-applications' 'python-keras-preprocessing' + 'cython') +optdepends=('tensorboard: Tensorflow visualization toolkit') +source=("$pkgname-$pkgver.tar.gz::https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz" + https://github.com/tensorflow/tensorflow/commit/c6769e20bf6096d5828e2590def2b25edb3189d6.patch + https://patch-diff.githubusercontent.com/raw/tensorflow/tensorflow/pull/44282.patch + numpy1.20.patch::https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch + cuda11.1.patch + fix-h5py3.0.patch + build-against-actual-mkl.patch) +sha512sums=('e497ef4564f50abf9f918be4522cf702f4cf945cb1ebf83af1386ac4ddc7373b3ba70c7f803f8ca06faf2c6b5396e60b1e0e9b97bfbd667e733b08b6e6d70ef0' + '9dcaef0dd4fdd7008a27e383ef87c97990ba883a3094f214f821a039994933ec6ec47f5a832570e5c4b783e0493ce2236e7957e596395c4dee40f9bf2621ff2f' + '86345e25a3d9fad2c3ddab2be25b45b1fb9739b3bf45ba551eefa4f75d7eda6287064724539e7944f99f050676cd3d43cd5c6b60ab376bb6891dabfc2d96ff2d' + 'df2e0373e2f63b8766f31933f7db57f6a7559b8f03af1db51644fba87731451a7cd3895529a3192e5394612fcb42f245b794b1c9ca3c05881ca03a547c8c9acc' + '0caa5170c22fdea2c708ecdb2c980d668464d9dba9c9730a9ec5e9258572576d783fa1d19da04d5f9d2b06aed36d30971526f212fc64c53d09c3e821bd1a3b5d' + '9d7b71fed280ffaf4dfcd4889aa9ab5471874c153259f3e77ed6e6efa745e5c5aa8507d3d1f71dead5b6f4bea5f8b1c10c543929f37a6580c3f4a7cbec338a6a' + 'e51e3f3dced121db3a09fbdaefd33555536095584b72a5eb6f302fa6fa68ab56ea45e8a847ec90ff4ba076db312c06f91ff672e08e95263c658526582494ce08') + +get_pyver () { + python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' +} + +check_dir() { + if [ -d "${1}" ]; then + return 0 + else + >&2 echo Directory "${1}" does not exist or is a file! Exiting... + exit 1 + fi +} + +prepare() { + # Allow any bazel version + echo "*" > tensorflow-${_pkgver}/.bazelversion + + # Tensorflow actually wants to build against a slimmed down version of Intel MKL called MKLML + # See https://github.com/intel/mkl-dnn/issues/102 + # MKLML version that Tensorflow wants to use is https://github.com/intel/mkl-dnn/releases/tag/v0.21 + patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/build-against-actual-mkl.patch + + # Fix wrong SONAME being shipped in CUDA 11.1 + patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/cuda11.1.patch + + # Compile with C++17 by default (FS#65953) + #sed -i "s/c++14/c++17/g" tensorflow-${_pkgver}/.bazelrc + + patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/numpy1.20.patch + + # FS#68488 + patch -Np1 -d tensorflow-${_pkgver} -i "$srcdir"/fix-h5py3.0.patch + + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt-cuda + + # These environment variables influence the behavior of the configure call below. + export PYTHON_BIN_PATH=/usr/bin/python + export USE_DEFAULT_PYTHON_LIB_PATH=1 + export TF_NEED_JEMALLOC=1 + export TF_NEED_KAFKA=1 + export TF_NEED_OPENCL_SYCL=0 + export TF_NEED_AWS=1 + export TF_NEED_GCP=1 + export TF_NEED_HDFS=1 + export TF_NEED_S3=1 + export TF_ENABLE_XLA=1 + export TF_NEED_GDR=0 + export TF_NEED_VERBS=0 + export TF_NEED_OPENCL=0 + export TF_NEED_MPI=0 + export TF_NEED_TENSORRT=0 + export TF_NEED_NGRAPH=0 + export TF_NEED_IGNITE=0 + export TF_NEED_ROCM=0 + # See https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl + export TF_SYSTEM_LIBS="boringssl,curl,cython,gif,icu,libjpeg_turbo,lmdb,nasm,pcre,png,pybind11,zlib" + export TF_SET_ANDROID_WORKSPACE=0 + export TF_DOWNLOAD_CLANG=0 + export TF_NCCL_VERSION=2.7 + export TF_IGNORE_MAX_BAZEL_VERSION=1 + export TF_MKL_ROOT=/opt/intel/mkl + export NCCL_INSTALL_PATH=/usr + export GCC_HOST_COMPILER_PATH=/usr/bin/gcc + export HOST_C_COMPILER=/usr/bin/gcc + export HOST_CXX_COMPILER=/usr/bin/g++ + export TF_CUDA_CLANG=0 # Clang currently disabled because it's not compatible at the moment. + export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang + export TF_CUDA_PATHS=/opt/cuda,/usr/lib,/usr + export TF_CUDA_VERSION=$(/opt/cuda/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p') + export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h) + export TF_CUDA_COMPUTE_CAPABILITIES=5.2,5.3,6.0,6.1,6.2,7.0,7.2,7.5,8.0,8.6 + + # Required until https://github.com/tensorflow/tensorflow/issues/39467 is fixed. + export CC=gcc + export CXX=g++ + + export BAZEL_ARGS="--config=mkl -c opt --copt=-I/usr/include/openssl-1.0 --host_copt=-I/usr/include/openssl-1.0 --linkopt=-l:libssl.so.1.0.0 --linkopt=-l:libcrypto.so.1.0.0 --host_linkopt=-l:libssl.so.1.0.0 --host_linkopt=-l:libcrypto.so.1.0.0" + + # Workaround for gcc 10+ warnings related to upb. + # See https://github.com/tensorflow/tensorflow/issues/39467 + export BAZEL_ARGS="$BAZEL_ARGS --host_copt=-Wno-stringop-truncation" +} + +build() { + echo "Building without cuda and without non-x86-64 optimizations" + cd "${srcdir}"/tensorflow-${_pkgver} + export CC_OPT_FLAGS="-march=x86-64" + export TF_NEED_CUDA=0 + ./configure + bazel \ + build ${BAZEL_ARGS[@]} \ + //tensorflow:libtensorflow.so \ + //tensorflow:libtensorflow_cc.so \ + //tensorflow:install_headers \ + //tensorflow/tools/pip_package:build_pip_package + bazel-bin/tensorflow/tools/pip_package/build_pip_package "${srcdir}"/tmp + + + echo "Building without cuda and with non-x86-64 optimizations" + cd "${srcdir}"/tensorflow-${_pkgver}-opt + export CC_OPT_FLAGS="-march=haswell -O3" + export TF_NEED_CUDA=0 + ./configure + bazel \ + build --config=avx2_linux \ + ${BAZEL_ARGS[@]} \ + //tensorflow:libtensorflow.so \ + //tensorflow:libtensorflow_cc.so \ + //tensorflow:install_headers \ + //tensorflow/tools/pip_package:build_pip_package + bazel-bin/tensorflow/tools/pip_package/build_pip_package "${srcdir}"/tmpopt + + + echo "Building with cuda and without non-x86-64 optimizations" + cd "${srcdir}"/tensorflow-${_pkgver}-cuda + export CC_OPT_FLAGS="-march=x86-64" + export TF_NEED_CUDA=1 + ./configure + bazel \ + build \ + ${BAZEL_ARGS[@]} \ + //tensorflow:libtensorflow.so \ + //tensorflow:libtensorflow_cc.so \ + //tensorflow:install_headers \ + //tensorflow/tools/pip_package:build_pip_package + bazel-bin/tensorflow/tools/pip_package/build_pip_package --gpu "${srcdir}"/tmpcuda + + + echo "Building with cuda and with non-x86-64 optimizations" + cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda + export CC_OPT_FLAGS="-march=haswell -O3" + export TF_NEED_CUDA=1 + export TF_CUDA_CLANG=0 + ./configure + bazel \ + build --config=avx2_linux \ + ${BAZEL_ARGS[@]} \ + //tensorflow:libtensorflow.so \ + //tensorflow:libtensorflow_cc.so \ + //tensorflow:install_headers \ + //tensorflow/tools/pip_package:build_pip_package + bazel-bin/tensorflow/tools/pip_package/build_pip_package --gpu "${srcdir}"/tmpoptcuda +} + +_package() { + # install headers first + install -d "${pkgdir}"/usr/include/tensorflow + cp -r bazel-bin/tensorflow/include/* "${pkgdir}"/usr/include/tensorflow/ + # install python-version to get all extra headers + WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl") + pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies + # move extra headers to correct location + local _srch_path="${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include + check_dir "${_srch_path}" # we need to quit on broken search paths + find "${_srch_path}" -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do + cp -nr "${_folder}" "${pkgdir}"/usr/include/tensorflow/ + done + # clean up unneeded files + rm -rf "${pkgdir}"/usr/bin + rm -rf "${pkgdir}"/usr/lib + rm -rf "${pkgdir}"/usr/share + + # install the rest of tensorflow + tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver} + sed -e 's@/include$@/include/tensorflow@' -i tensorflow.pc -i tensorflow_cc.pc + install -Dm644 tensorflow.pc "${pkgdir}"/usr/lib/pkgconfig/tensorflow.pc + install -Dm644 tensorflow_cc.pc "${pkgdir}"/usr/lib/pkgconfig/tensorflow_cc.pc + install -Dm755 bazel-bin/tensorflow/libtensorflow.so "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver} + ln -s libtensorflow.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver:0:1} + ln -s libtensorflow.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow.so + install -Dm755 bazel-bin/tensorflow/libtensorflow_cc.so "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver} + ln -s libtensorflow_cc.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver:0:1} + ln -s libtensorflow_cc.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_cc.so + install -Dm755 bazel-bin/tensorflow/libtensorflow_framework.so "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver} + ln -s libtensorflow_framework.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver:0:1} + ln -s libtensorflow_framework.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_framework.so + install -Dm644 tensorflow/c/c_api.h "${pkgdir}"/usr/include/tensorflow/tensorflow/c/c_api.h + install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE +} + +_python_package() { + WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl") + pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies + + # create symlinks to headers + local _srch_path="${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include/ + check_dir "${_srch_path}" # we need to quit on broken search paths + find "${_srch_path}" -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do + rm -rf "${_folder}" + _smlink="$(basename "${_folder}")" + ln -s /usr/include/tensorflow/"${_smlink}" "${_srch_path}" + done + + # tensorboard has been separated from upstream but they still install it with + # tensorflow. I don't know what kind of sense that makes but we have to clean + # it out from this pacakge. + rm -rf "${pkgdir}"/usr/bin/tensorboard + + install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE +} + +package_tensorflow() { + cd "${srcdir}"/tensorflow-${_pkgver} + _package tmp +} + +package_tensorflow-opt() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" + conflicts=(tensorflow) + provides=(tensorflow) + + cd "${srcdir}"/tensorflow-${_pkgver}-opt + _package tmpopt +} + +package_tensorflow-cuda() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)" + depends+=(cuda cudnn nccl) + conflicts=(tensorflow) + provides=(tensorflow) + + cd "${srcdir}"/tensorflow-${_pkgver}-cuda + _package tmpcuda +} + +package_tensorflow-opt-cuda() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" + depends+=(cuda cudnn nccl) + conflicts=(tensorflow) + provides=(tensorflow tensorflow-cuda) + + cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda + _package tmpoptcuda +} + +package_python-tensorflow() { + depends+=(tensorflow python-termcolor python-astor python-gast python-numpy python-protobuf absl-py python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) + + cd "${srcdir}"/tensorflow-${_pkgver} + _python_package tmp +} + +package_python-tensorflow-opt() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" + depends+=(tensorflow-opt python-termcolor python-astor python-gast python-numpy python-protobuf absl-py python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) + conflicts=(python-tensorflow) + provides=(python-tensorflow) + + cd "${srcdir}"/tensorflow-${_pkgver}-opt + _python_package tmpopt +} + +package_python-tensorflow-cuda() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)" + depends+=(tensorflow-cuda python-termcolor python-astor python-gast python-numpy cuda cudnn python-pycuda python-protobuf absl-py nccl python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) + conflicts=(python-tensorflow) + provides=(python-tensorflow) + + cd "${srcdir}"/tensorflow-${_pkgver}-cuda + _python_package tmpcuda +} + +package_python-tensorflow-opt-cuda() { + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" + depends+=(tensorflow-opt-cuda python-termcolor python-astor python-gast python-numpy cuda cudnn python-pycuda python-protobuf absl-py nccl python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator python-opt_einsum python-astunparse python-pasta) + conflicts=(python-tensorflow) + provides=(python-tensorflow python-tensorflow-cuda) + + cd "${srcdir}"/tensorflow-${_pkgver}-opt-cuda + _python_package tmpoptcuda +} + +# vim:set ts=2 sw=2 et: Deleted: build-against-actual-mkl.patch =================================================================== --- build-against-actual-mkl.patch 2020-11-23 12:42:45 UTC (rev 759898) +++ build-against-actual-mkl.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -1,37 +0,0 @@ -diff --git a/third_party/mkl/build_defs.bzl b/third_party/mkl/build_defs.bzl -index 4b8fb83eb0..f4e1adfb22 100644 ---- a/third_party/mkl/build_defs.bzl -+++ b/third_party/mkl/build_defs.bzl -@@ -124,7 +124,7 @@ def _mkl_autoconf_impl(repository_ctx): - if _enable_local_mkl(repository_ctx): - # Symlink lib and include local folders. - mkl_root = repository_ctx.os.environ[_TF_MKL_ROOT] -- mkl_lib_path = "%s/lib" % mkl_root -+ mkl_lib_path = "%s/lib/intel64" % mkl_root - repository_ctx.symlink(mkl_lib_path, "lib") - mkl_include_path = "%s/include" % mkl_root - repository_ctx.symlink(mkl_include_path, "include") -diff --git a/third_party/mkl/mkl.BUILD b/third_party/mkl/mkl.BUILD -index 72370182c4..4972bb005e 100644 ---- a/third_party/mkl/mkl.BUILD -+++ b/third_party/mkl/mkl.BUILD -@@ -5,7 +5,6 @@ exports_files(["license.txt"]) - filegroup( - name = "LICENSE", - srcs = [ -- "license.txt", - ], - visibility = ["//visibility:public"], - ) -@@ -21,7 +20,10 @@ cc_library( - name = "mkl_libs_linux", - srcs = [ - "lib/libiomp5.so", -- "lib/libmklml_intel.so", -+ "lib/libmkl_core.so", -+ "lib/libmkl_rt.so", -+ "lib/libmkl_intel_thread.so", -+ "lib/libmkl_intel_lp64.so", - ], - visibility = ["//visibility:public"], - ) Copied: tensorflow/repos/community-staging-x86_64/build-against-actual-mkl.patch (from rev 759898, tensorflow/trunk/build-against-actual-mkl.patch) =================================================================== --- build-against-actual-mkl.patch (rev 0) +++ build-against-actual-mkl.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -0,0 +1,37 @@ +diff --git a/third_party/mkl/build_defs.bzl b/third_party/mkl/build_defs.bzl +index 4b8fb83eb0..f4e1adfb22 100644 +--- a/third_party/mkl/build_defs.bzl ++++ b/third_party/mkl/build_defs.bzl +@@ -124,7 +124,7 @@ def _mkl_autoconf_impl(repository_ctx): + if _enable_local_mkl(repository_ctx): + # Symlink lib and include local folders. + mkl_root = repository_ctx.os.environ[_TF_MKL_ROOT] +- mkl_lib_path = "%s/lib" % mkl_root ++ mkl_lib_path = "%s/lib/intel64" % mkl_root + repository_ctx.symlink(mkl_lib_path, "lib") + mkl_include_path = "%s/include" % mkl_root + repository_ctx.symlink(mkl_include_path, "include") +diff --git a/third_party/mkl/mkl.BUILD b/third_party/mkl/mkl.BUILD +index 72370182c4..4972bb005e 100644 +--- a/third_party/mkl/mkl.BUILD ++++ b/third_party/mkl/mkl.BUILD +@@ -5,7 +5,6 @@ exports_files(["license.txt"]) + filegroup( + name = "LICENSE", + srcs = [ +- "license.txt", + ], + visibility = ["//visibility:public"], + ) +@@ -21,7 +20,10 @@ cc_library( + name = "mkl_libs_linux", + srcs = [ + "lib/libiomp5.so", +- "lib/libmklml_intel.so", ++ "lib/libmkl_core.so", ++ "lib/libmkl_rt.so", ++ "lib/libmkl_intel_thread.so", ++ "lib/libmkl_intel_lp64.so", + ], + visibility = ["//visibility:public"], + ) Deleted: cuda11.1.patch =================================================================== --- cuda11.1.patch 2020-11-23 12:42:45 UTC (rev 759898) +++ cuda11.1.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -1,136 +0,0 @@ -From 4a64bbe4ff9fb03a948ee76f7349cfdb9e9b7528 Mon Sep 17 00:00:00 2001 -From: Nathan Luehr <nlu...@nvidia.com> -Date: Thu, 13 Aug 2020 09:46:43 -0700 -Subject: [PATCH 1/2] Fix cudart 11.1 soname - ---- - third_party/gpus/cuda_configure.bzl | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl -index ea33963fe19fb..3e6bdc9d8eb22 100644 ---- a/third_party/gpus/cuda_configure.bzl -+++ b/third_party/gpus/cuda_configure.bzl -@@ -534,14 +534,14 @@ def _find_libs(repository_ctx, check_cuda_libs_script, cuda_config): - "cudart", - cpu_value, - cuda_config.config["cuda_library_dir"], -- cuda_config.cuda_version, -+ cuda_config.cudart_version, - static = False, - ), - "cudart_static": _check_cuda_lib_params( - "cudart_static", - cpu_value, - cuda_config.config["cuda_library_dir"], -- cuda_config.cuda_version, -+ cuda_config.cudart_version, - static = True, - ), - "cublas": _check_cuda_lib_params( -@@ -651,6 +651,7 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): - cuda_toolkit_path: The CUDA toolkit installation directory. - cudnn_install_basedir: The cuDNN installation directory. - cuda_version: The version of CUDA on the system. -+ cudart_version: The CUDA runtime version on the system. - cudnn_version: The version of cuDNN on the system. - compute_capabilities: A list of the system's CUDA compute capabilities. - cpu_value: The name of the host operating system. -@@ -668,6 +669,10 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): - cudnn_version = ("64_%s" if is_windows else "%s") % config["cudnn_version"] - - if int(cuda_major) >= 11: -+ if int(cuda_major) == 11: -+ cudart_version = "64_110" if is_windows else "11.0" -+ else: -+ cudart_version = ("64_%s" if is_windows else "%s") % cuda_major - cublas_version = ("64_%s" if is_windows else "%s") % config["cublas_version"].split(".")[0] - cusolver_version = ("64_%s" if is_windows else "%s") % config["cusolver_version"].split(".")[0] - curand_version = ("64_%s" if is_windows else "%s") % config["curand_version"].split(".")[0] -@@ -677,12 +682,14 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): - # cuda_lib_version is for libraries like cuBLAS, cuFFT, cuSOLVER, etc. - # It changed from 'x.y' to just 'x' in CUDA 10.1. - cuda_lib_version = ("64_%s" if is_windows else "%s") % cuda_major -+ cudart_version = cuda_version - cublas_version = cuda_lib_version - cusolver_version = cuda_lib_version - curand_version = cuda_lib_version - cufft_version = cuda_lib_version - cusparse_version = cuda_lib_version - else: -+ cudart_version = cuda_version - cublas_version = cuda_version - cusolver_version = cuda_version - curand_version = cuda_version -@@ -693,6 +700,7 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): - cuda_toolkit_path = toolkit_path, - cuda_version = cuda_version, -+ cudart_version = cudart_version, - cublas_version = cublas_version, - cusolver_version = cusolver_version, - curand_version = curand_version, - -From 2642e93e6cbb7a3a1e916abf1ab8e18fa2735237 Mon Sep 17 00:00:00 2001 -From: Nathan Luehr <nlu...@nvidia.com> -Date: Fri, 14 Aug 2020 13:21:58 -0700 -Subject: [PATCH 2/2] Use correct cudart soname in GetDsoHandle - ---- - tensorflow/stream_executor/platform/default/dso_loader.cc | 3 ++- - third_party/gpus/cuda/cuda_config.h.tpl | 1 + - third_party/gpus/cuda_configure.bzl | 2 ++ - 3 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/tensorflow/stream_executor/platform/default/dso_loader.cc b/tensorflow/stream_executor/platform/default/dso_loader.cc -index 84293b7767a20..a78c738f32c2a 100644 ---- a/tensorflow/stream_executor/platform/default/dso_loader.cc -+++ b/tensorflow/stream_executor/platform/default/dso_loader.cc -@@ -31,6 +31,7 @@ namespace internal { - - namespace { - string GetCudaVersion() { return TF_CUDA_VERSION; } -+string GetCudaRtVersion() { return TF_CUDART_VERSION; } - string GetCudnnVersion() { return TF_CUDNN_VERSION; } - string GetCublasVersion() { return TF_CUBLAS_VERSION; } - string GetCusolverVersion() { return TF_CUSOLVER_VERSION; } -@@ -77,7 +78,7 @@ port::StatusOr<void*> GetCudaDriverDsoHandle() { - } - - port::StatusOr<void*> GetCudaRuntimeDsoHandle() { -- return GetDsoHandle("cudart", GetCudaVersion()); -+ return GetDsoHandle("cudart", GetCudaRtVersion()); - } - - port::StatusOr<void*> GetCublasDsoHandle() { -diff --git a/third_party/gpus/cuda/cuda_config.h.tpl b/third_party/gpus/cuda/cuda_config.h.tpl -index b59889938b1a9..ab26686ccb8b2 100644 ---- a/third_party/gpus/cuda/cuda_config.h.tpl -+++ b/third_party/gpus/cuda/cuda_config.h.tpl -@@ -17,6 +17,7 @@ limitations under the License. - #define CUDA_CUDA_CONFIG_H_ - - #define TF_CUDA_VERSION "%{cuda_version}" -+#define TF_CUDART_VERSION "%{cudart_version}" - #define TF_CUBLAS_VERSION "%{cublas_version}" - #define TF_CUSOLVER_VERSION "%{cusolver_version}" - #define TF_CURAND_VERSION "%{curand_version}" -diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl -index 3e6bdc9d8eb22..f85a53b1593b4 100644 ---- a/third_party/gpus/cuda_configure.bzl -+++ b/third_party/gpus/cuda_configure.bzl -@@ -824,6 +824,7 @@ filegroup(name="cudnn-include") - "cuda:cuda_config.h", - { - "%{cuda_version}": "", -+ "%{cudart_version}": "", - "%{cublas_version}": "", - "%{cusolver_version}": "", - "%{curand_version}": "", -@@ -1289,6 +1290,7 @@ def _create_local_cuda_repository(repository_ctx): - tpl_paths["cuda:cuda_config.h"], - { - "%{cuda_version}": cuda_config.cuda_version, -+ "%{cudart_version}": cuda_config.cudart_version, - "%{cublas_version}": cuda_config.cublas_version, - "%{cusolver_version}": cuda_config.cusolver_version, - "%{curand_version}": cuda_config.curand_version, Copied: tensorflow/repos/community-staging-x86_64/cuda11.1.patch (from rev 759898, tensorflow/trunk/cuda11.1.patch) =================================================================== --- cuda11.1.patch (rev 0) +++ cuda11.1.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -0,0 +1,136 @@ +From 4a64bbe4ff9fb03a948ee76f7349cfdb9e9b7528 Mon Sep 17 00:00:00 2001 +From: Nathan Luehr <nlu...@nvidia.com> +Date: Thu, 13 Aug 2020 09:46:43 -0700 +Subject: [PATCH 1/2] Fix cudart 11.1 soname + +--- + third_party/gpus/cuda_configure.bzl | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl +index ea33963fe19fb..3e6bdc9d8eb22 100644 +--- a/third_party/gpus/cuda_configure.bzl ++++ b/third_party/gpus/cuda_configure.bzl +@@ -534,14 +534,14 @@ def _find_libs(repository_ctx, check_cuda_libs_script, cuda_config): + "cudart", + cpu_value, + cuda_config.config["cuda_library_dir"], +- cuda_config.cuda_version, ++ cuda_config.cudart_version, + static = False, + ), + "cudart_static": _check_cuda_lib_params( + "cudart_static", + cpu_value, + cuda_config.config["cuda_library_dir"], +- cuda_config.cuda_version, ++ cuda_config.cudart_version, + static = True, + ), + "cublas": _check_cuda_lib_params( +@@ -651,6 +651,7 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): + cuda_toolkit_path: The CUDA toolkit installation directory. + cudnn_install_basedir: The cuDNN installation directory. + cuda_version: The version of CUDA on the system. ++ cudart_version: The CUDA runtime version on the system. + cudnn_version: The version of cuDNN on the system. + compute_capabilities: A list of the system's CUDA compute capabilities. + cpu_value: The name of the host operating system. +@@ -668,6 +669,10 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): + cudnn_version = ("64_%s" if is_windows else "%s") % config["cudnn_version"] + + if int(cuda_major) >= 11: ++ if int(cuda_major) == 11: ++ cudart_version = "64_110" if is_windows else "11.0" ++ else: ++ cudart_version = ("64_%s" if is_windows else "%s") % cuda_major + cublas_version = ("64_%s" if is_windows else "%s") % config["cublas_version"].split(".")[0] + cusolver_version = ("64_%s" if is_windows else "%s") % config["cusolver_version"].split(".")[0] + curand_version = ("64_%s" if is_windows else "%s") % config["curand_version"].split(".")[0] +@@ -677,12 +682,14 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): + # cuda_lib_version is for libraries like cuBLAS, cuFFT, cuSOLVER, etc. + # It changed from 'x.y' to just 'x' in CUDA 10.1. + cuda_lib_version = ("64_%s" if is_windows else "%s") % cuda_major ++ cudart_version = cuda_version + cublas_version = cuda_lib_version + cusolver_version = cuda_lib_version + curand_version = cuda_lib_version + cufft_version = cuda_lib_version + cusparse_version = cuda_lib_version + else: ++ cudart_version = cuda_version + cublas_version = cuda_version + cusolver_version = cuda_version + curand_version = cuda_version +@@ -693,6 +700,7 @@ def _get_cuda_config(repository_ctx, find_cuda_config_script): + cuda_toolkit_path = toolkit_path, + cuda_version = cuda_version, ++ cudart_version = cudart_version, + cublas_version = cublas_version, + cusolver_version = cusolver_version, + curand_version = curand_version, + +From 2642e93e6cbb7a3a1e916abf1ab8e18fa2735237 Mon Sep 17 00:00:00 2001 +From: Nathan Luehr <nlu...@nvidia.com> +Date: Fri, 14 Aug 2020 13:21:58 -0700 +Subject: [PATCH 2/2] Use correct cudart soname in GetDsoHandle + +--- + tensorflow/stream_executor/platform/default/dso_loader.cc | 3 ++- + third_party/gpus/cuda/cuda_config.h.tpl | 1 + + third_party/gpus/cuda_configure.bzl | 2 ++ + 3 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tensorflow/stream_executor/platform/default/dso_loader.cc b/tensorflow/stream_executor/platform/default/dso_loader.cc +index 84293b7767a20..a78c738f32c2a 100644 +--- a/tensorflow/stream_executor/platform/default/dso_loader.cc ++++ b/tensorflow/stream_executor/platform/default/dso_loader.cc +@@ -31,6 +31,7 @@ namespace internal { + + namespace { + string GetCudaVersion() { return TF_CUDA_VERSION; } ++string GetCudaRtVersion() { return TF_CUDART_VERSION; } + string GetCudnnVersion() { return TF_CUDNN_VERSION; } + string GetCublasVersion() { return TF_CUBLAS_VERSION; } + string GetCusolverVersion() { return TF_CUSOLVER_VERSION; } +@@ -77,7 +78,7 @@ port::StatusOr<void*> GetCudaDriverDsoHandle() { + } + + port::StatusOr<void*> GetCudaRuntimeDsoHandle() { +- return GetDsoHandle("cudart", GetCudaVersion()); ++ return GetDsoHandle("cudart", GetCudaRtVersion()); + } + + port::StatusOr<void*> GetCublasDsoHandle() { +diff --git a/third_party/gpus/cuda/cuda_config.h.tpl b/third_party/gpus/cuda/cuda_config.h.tpl +index b59889938b1a9..ab26686ccb8b2 100644 +--- a/third_party/gpus/cuda/cuda_config.h.tpl ++++ b/third_party/gpus/cuda/cuda_config.h.tpl +@@ -17,6 +17,7 @@ limitations under the License. + #define CUDA_CUDA_CONFIG_H_ + + #define TF_CUDA_VERSION "%{cuda_version}" ++#define TF_CUDART_VERSION "%{cudart_version}" + #define TF_CUBLAS_VERSION "%{cublas_version}" + #define TF_CUSOLVER_VERSION "%{cusolver_version}" + #define TF_CURAND_VERSION "%{curand_version}" +diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl +index 3e6bdc9d8eb22..f85a53b1593b4 100644 +--- a/third_party/gpus/cuda_configure.bzl ++++ b/third_party/gpus/cuda_configure.bzl +@@ -824,6 +824,7 @@ filegroup(name="cudnn-include") + "cuda:cuda_config.h", + { + "%{cuda_version}": "", ++ "%{cudart_version}": "", + "%{cublas_version}": "", + "%{cusolver_version}": "", + "%{curand_version}": "", +@@ -1289,6 +1290,7 @@ def _create_local_cuda_repository(repository_ctx): + tpl_paths["cuda:cuda_config.h"], + { + "%{cuda_version}": cuda_config.cuda_version, ++ "%{cudart_version}": cuda_config.cudart_version, + "%{cublas_version}": cuda_config.cublas_version, + "%{cusolver_version}": cuda_config.cusolver_version, + "%{curand_version}": cuda_config.curand_version, Deleted: fix-h5py3.0.patch =================================================================== --- fix-h5py3.0.patch 2020-11-23 12:42:45 UTC (rev 759898) +++ fix-h5py3.0.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -1,18 +0,0 @@ -diff --git a/tensorflow/python/keras/saving/hdf5_format.py b/tensorflow/python/keras/saving/hdf5_format.py -index d3bb10c98d..e89f5356bb 100644 ---- a/tensorflow/python/keras/saving/hdf5_format.py -+++ b/tensorflow/python/keras/saving/hdf5_format.py -@@ -659,11 +659,11 @@ def load_weights_from_hdf5_group(f, layers): - and weights file. - """ - if 'keras_version' in f.attrs: -- original_keras_version = f.attrs['keras_version'].decode('utf8') -+ original_keras_version = f.attrs['keras_version'] - else: - original_keras_version = '1' - if 'backend' in f.attrs: -- original_backend = f.attrs['backend'].decode('utf8') -+ original_backend = f.attrs['backend'] - else: - original_backend = None - Copied: tensorflow/repos/community-staging-x86_64/fix-h5py3.0.patch (from rev 759898, tensorflow/trunk/fix-h5py3.0.patch) =================================================================== --- fix-h5py3.0.patch (rev 0) +++ fix-h5py3.0.patch 2020-11-23 12:43:12 UTC (rev 759899) @@ -0,0 +1,18 @@ +diff --git a/tensorflow/python/keras/saving/hdf5_format.py b/tensorflow/python/keras/saving/hdf5_format.py +index d3bb10c98d..e89f5356bb 100644 +--- a/tensorflow/python/keras/saving/hdf5_format.py ++++ b/tensorflow/python/keras/saving/hdf5_format.py +@@ -659,11 +659,11 @@ def load_weights_from_hdf5_group(f, layers): + and weights file. + """ + if 'keras_version' in f.attrs: +- original_keras_version = f.attrs['keras_version'].decode('utf8') ++ original_keras_version = f.attrs['keras_version'] + else: + original_keras_version = '1' + if 'backend' in f.attrs: +- original_backend = f.attrs['backend'].decode('utf8') ++ original_backend = f.attrs['backend'] + else: + original_backend = None +