From 3c0f880f958a22fc38d3c5d28617edaee03619ce Mon Sep 17 00:00:00 2001 From: thomas Date: Tue, 2 Mar 2021 18:29:35 +0100 Subject: [PATCH] python-3.8.7: new build with tensorflow and cuda-11.1.1 --- python-3.8.7-0.build.sh | 536 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 536 insertions(+) create mode 100755 python-3.8.7-0.build.sh diff --git a/python-3.8.7-0.build.sh b/python-3.8.7-0.build.sh new file mode 100755 index 0000000..b015706 --- /dev/null +++ b/python-3.8.7-0.build.sh @@ -0,0 +1,536 @@ +#! /bin/bash + +# COOKIE=$(mcookie|cut -c-8); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 0.3; exec bash /dev/shm/runme-$COOKIE.sh +# TESTING=1 + +PKG=python +VERSION=3.8.7 +BUILD=0 +PYTHONVER=${VERSION%.*} + +CUDADIR=/pkg/cuda-11.1.1-0 + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$PKG-$VERSION-$BUILD ; fi + +PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin + +set -xe +umask 022 + +BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD.build.tmp +if [ -n "$TESTING" ]; then BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD.test.build.tmp ; fi + +test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR ) +mkdir -p $BUILD_TMPDIR/home/.cache/pip +mkdir -p $BUILD_TMPDIR/home/.local +# copy script to an accessible location +cp $0 $BUILD_TMPDIR; ME="$BUILD_TMPDIR/$(basename $0)" +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +exec $PREFIX/profile <<-EOF + . $CUDADIR/profile + PATH=$PREFIX/bin:\$PATH + export LD_LIBRARY_PATH=$PREFIX/lib\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH + PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig\${PKG_CONFIG_PATH:+:}\$PKG_CONFIG_PATH + export PKG_CONFIG_PATH + if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi +EOF +. $PREFIX/profile + +NPROC=$(( $(nproc) * 4 / 5 + 1 )) +export MAKEFLAGS="-j $NPROC" + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +# orig: https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz +BEEHIVE=https://beehive.molgen.mpg.de/e1f40f4fc9ccc781fcbf8d4e86c46660/Python-3.8.7.tgz +test -e Python-$VERSION.tgz || wget -nv $BEEHIVE +test -d Python-$VERSION || tar -xf Python-$VERSION.tgz +cd Python-$VERSION + +LDFLAGS="-Wl,-rpath=$PREFIX/lib" \ +./configure \ + --prefix=$PREFIX \ + --enable-shared + +make -j $NPROC +# make test # || true # 'test_socket' seems to run for ever +make install +# it might come to happen that something down the line may just call 'python', defuse ... +test -e $PREFIX/bin/python || ln -s python3 $PREFIX/bin/python + +( # sip: tool to create Python bindings for C and C++ libraries., v6 is out, but not so popular at the moment + cd $BUILDDIR + SIP_VERSION=4.19.24 + + # orig: https://www.riverbankcomputing.com/static/Downloads/sip/$SIP_VERSION/sip-$SIP_VERSION.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/595e9ad6bb0a4b3a6ea92c163a05d19c/sip-4.19.24.tar.gz + test -e sip-$SIP_VERSION.tar.gz || wget -nv $BEEHIVE + test -d sip-$SIP_VERSION || tar -xf sip-$SIP_VERSION.tar.gz + + cd sip-$SIP_VERSION + + #### ATTN! + #### python meanders between /python${PYTHONVER} and /python${PYTHONVER}m + + python3 configure.py \ + -b $PREFIX/bin \ + -d $PREFIX/lib/python$PYTHONVER/site-packages \ + -e $PREFIX/include/python${PYTHONVER} \ + -v $PREFIX/share/sip \ + --sip-module=sip + + # well, right here share/sip is spoilage, but maybe some packages will use the decent sip later on ... + mkdir -p $PREFIX/share/sip + make -j $NPROC + make install +) + + +( # now for the private (sic!) version required by newer PyQt + cd $BUILDDIR + SIP_VERSION=4.19.24 + mkdir -p private_sip + cd private_sip + + # orig: https://www.riverbankcomputing.com/static/Downloads/sip/$SIP_VERSION/sip-$SIP_VERSION.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/595e9ad6bb0a4b3a6ea92c163a05d19c/sip-4.19.24.tar.gz + test -e sip-$SIP_VERSION.tar.gz || wget -nv $BEEHIVE + test -d sip-$SIP_VERSION || tar -xf sip-$SIP_VERSION.tar.gz + + cd sip-$SIP_VERSION + + # note $PREFIX/share/sip/PyQt5 is mandatory + python3 configure.py \ + -d $PREFIX/lib/python$PYTHONVER/site-packages \ + -v $PREFIX/share/sip/PyQt5 \ + --no-tools \ + --sip-module=PyQt5.sip + + mkdir -p $PREFIX/share/sip/PyQt5 + make -j $NPROC + # The resulting sip.so in site-packages/PyQt5 differs indeed a bit (grep for PyQt5) + make install +) + +( + cd $BUILDDIR + PYQT_VERSION=5.15.2 + + # orig: https://files.pythonhosted.org/packages/28/6c/640e3f5c734c296a7193079a86842a789edb7988dca39eab44579088a1d1/PyQt5-5.15.2.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/b94576e9e013210dc5aba061913e4bd4/PyQt5-5.15.2.tar.gz + test -e PyQt5-$PYQT_VERSION.tar.gz || wget -nv $BEEHIVE + test -d PyQt5-$PYQT_VERSION || tar -xf PyQt5-$PYQT_VERSION.tar.gz + + cd PyQt5-$PYQT_VERSION + + #### ATTN! + #### python meanders between /python${PYTHONVER} and /python${PYTHONVER}m + + # export QTDIR=/usr/local/qt5 + python3 configure.py \ + -b $PREFIX/bin \ + -d $PREFIX/lib/python$PYTHONVER/site-packages \ + -n $PREFIX/share/qsci \ + -q /usr/local/qt5/bin/qmake \ + -v $PREFIX/share/sip/PyQt5 \ + --sip-incdir=$PREFIX/include/python${PYTHONVER} \ + --confirm-license \ + --no-qml-plugin \ + --no-designer-plugin \ + --no-dist-info \ + --verbose + + make -j $NPROC + make install +) + +( + cd $BUILDDIR + QSCINTILLA_VERSION=2.11.6 + + # orig: https://www.riverbankcomputing.com/static/Downloads/QScintilla/$QSCINTILLA_VERSION/QScintilla-$QSCINTILLA_VERSION.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/343cd0c2c8b425518df2e51eb994fbc6/QScintilla-2.11.6.tar.gz + test -e QScintilla-$QSCINTILLA_VERSION.tar.gz || wget -nv $BEEHIVE + test -d QScintilla-$QSCINTILLA_VERSION || tar -xf QScintilla-$QSCINTILLA_VERSION.tar.gz + + cd QScintilla-$QSCINTILLA_VERSION + cd Python + + # apidir follows PyQt, not Qt (default is: QT_INSTALL_DATA/qsci) + python3 configure.py \ + --pyqt=PyQt5 \ + --qmake=/usr/local/qt5/bin/qmake \ + --apidir=$PREFIX/share/qsci \ + --no-dist-info + + make -j $NPROC + make install +) + +python3 -m ensurepip +pip3 install --prefix=$PREFIX -I pip + +pip3 install --prefix=$PREFIX ipython[all] + +# install the basic ballpark ... +# numpy holds no ref to *_MAX_THREADS, albeit it's an issue, fix via profile? +# still persisting: NUMEXPR_MAX_THREADS issue caused by numexpr.utils (braindead defaults from this dependency) +pip3 install --prefix=$PREFIX SciPy NumPy Matplotlib pandas SymPy nose statsmodels +# clean up some dirt that statsmodels placed also into $PREFIX +rm -vf $PREFIX/LICENSE.txt +rm -vf $PREFIX/setup.cfg + +pip3 install --prefix=$PREFIX Cython + +pip3 install --prefix=$PREFIX pysam +pip3 install --prefix=$PREFIX seaborn +pip3 install --prefix=$PREFIX scikit-learn +#pip3 install --prefix=$PREFIX metaseq # fails (Latest commit fa875d1 on Jan 10, 2017) +pip3 install --prefix=$PREFIX Mako +pip3 install --prefix=$PREFIX meson # required in mariux + +pip3 install --prefix=$PREFIX cutadapt # Helpdesk 01/24/18 16:19, Sabrina Krakau +pip3 install --prefix=$PREFIX pygobject # Helpdesk 03/26/18 14:19, Virginie Stanisla +pip3 install --prefix=$PREFIX blink1 # Blink1-lib 07/04/18 12:00, Niclas Hofmann + +pip3 install --prefix=$PREFIX umi-tools +pip3 install --prefix=$PREFIX sphinx +pip3 install --prefix=$PREFIX recommonmark +pip3 install --prefix=$PREFIX fastcluster +pip3 install --prefix=$PREFIX pydot +pip3 install --prefix=$PREFIX pygraphviz +pip3 install --prefix=$PREFIX deeptools +pip3 install --prefix=$PREFIX HTSeq +pip3 install --prefix=$PREFIX keras +pip3 install --prefix=$PREFIX keras_preprocessing # tensorflow ... +pip3 install --prefix=$PREFIX MotifScan # Alena 30.8.2018 +pip3 install --prefix=$PREFIX MAmotif +pip3 install --prefix=$PREFIX hic2cool # Helpdesk Robert Schoepflin 17.09.2018 +#pip3 install --prefix=$PREFIX hifive # only python 2.7+ +pip3 install --prefix=$PREFIX snakemake +pip3 install --prefix=$PREFIX virtualenv # Donald +pip3 install --prefix=$PREFIX odfpy # Donald +pip3 install --prefix=$PREFIX Dumper # Thomas +pip3 install --prefix=$PREFIX igraph +pip3 install --prefix=$PREFIX louvain # monocle3 prep for Helene +pip3 install --prefix=$PREFIX selenium # 19.7.19 Kreitler -> https://webxray.org/ +pip3 install --prefix=$PREFIX cooltools # Maria Valieva 17.7.2019 +pip3 install --prefix=$PREFIX gmpy # From viper context (Helpdesk Laura Glaser 9.8.2019) +pip3 install --prefix=$PREFIX torch +pip3 install --prefix=$PREFIX torchvision +pip3 install --prefix=$PREFIX plotly +pip3 install --prefix=$PREFIX pyOpenCL +pip3 install --prefix=$PREFIX docopt +pip3 install --prefix=$PREFIX dbus-python +pip3 install --prefix=$PREFIX distro +pip3 install --prefix=$PREFIX notify +pip3 install --prefix=$PREFIX ply +pip3 install --prefix=$PREFIX threadpoolctl + +pip3 install --prefix=$PREFIX pyopengl +# creates error, so remove it +rm -rf ${PREFIX}/lib/python$PYTHONVER/site-packages/OpenGL/Tk + +# pip3 install --prefix=$PREFIX HiCExplorer # Would be a nice to have, but it likes to downgrade too much, pick some cherries +pip3 install --prefix=$PREFIX HiCMatrix +pip3 install --prefix=$PREFIX pybedtools +pip3 install --prefix=$PREFIX gffutils +pip3 install --prefix=$PREFIX --no-deps "pyGenomeTracks" # example produces plots, so give it a chance, otherwise it's just a dumbfucked downgrader +pip3 install --prefix=$PREFIX python-bioformats + +pip3 install --prefix=$PREFIX jupyterlab # request Peter Arndt +pip3 install --prefix=$PREFIX jupyterlab-git +pip3 install --prefix=$PREFIX igv_jupyterlab # Matthias Lienhard HD 01-04-2020 +pip3 install --prefix=$PREFIX igv-jupyter +mkdir -vp $PREFIX/share/jupyter/lab/settings # try to defeat a silly error in jupyter labextension install + +pip3 install --prefix=$PREFIX libxml2-python3 # required by several bee packages after swich to python3 +pip3 install --prefix=$PREFIX scour # https://github.molgen.mpg.de/mariux64/pkg-scripts/issues/98 +pip3 install --prefix=$PREFIX multiqc + +pip3 install --prefix=$PREFIX thonny # nice little ide, kreitler +pip3 install --prefix=$PREFIX pybind11 +pip3 install --prefix=$PREFIX svgwrite +pip3 install --prefix=$PREFIX pyomo +pip3 install --prefix=$PREFIX jsbsim # kreitler, hobby + +pip3 install --prefix=$PREFIX bioservices +pip3 install --prefix=$PREFIX pairtools +pip3 install --prefix=$PREFIX SharedArray +pip3 install --prefix=$PREFIX pyabc # dependency for stochkit, HD 20.07.20 Gemma Noviello +pip3 install --prefix=$PREFIX petab +pip3 install --prefix=$PREFIX tadtool # HD 26.01.21 Michael Robson +# pip3 install --prefix=$PREFIX perf # fails, issue from Paul sep-20, no clue... +# pip3 install --prefix=$PREFIX glpk-py # kreitler, fails, wants setuptools_scm, do i want setuptools_scm? +pip3 install --prefix=$PREFIX helen # HD, a dependency from a request by helene :) +pip3 install --prefix=$PREFIX umap # HD, used by Matthias Lienhard + +# boost for pycuda +( + . ${PREFIX}/profile + BOOST_VERSION=(1.75.0 1_75_0) + PKGCFLAGS="-O2 -fPIC" + + cd $BUILDDIR + # orig: https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de//38813f6feb40387dfe90160debd71251/boost_1_75_0.tar.gz + test -e boost_${BOOST_VERSION[1]}.tar.gz || wget -nv $BEEHIVE + test -d boost-${BOOST_VERSION[0]} || mkdir boost-${BOOST_VERSION[0]} && tar -xf boost_${BOOST_VERSION[1]}.tar.gz -C boost-${BOOST_VERSION[0]} --strip-components=1 + + #### ATTN! + #### python meanders between /python${PYTHONVER} and /python${PYTHONVER}m + + cd boost-${BOOST_VERSION[0]} + sed -e "/using python/ s|;|: ${PREFIX}/include/python${PYTHONVER} ;|" \ + -i bootstrap.sh + + ./bootstrap.sh \ + --with-toolset=gcc \ + --with-icu \ + --with-python=$PREFIX/bin/python3 \ + --with-libraries=python,thread || exit 1 + + ./b2 \ + -j $NPROC \ + --layout=system \ + --build-dir=build-python3 \ + --prefix=$PREFIX \ + --libdir=$PREFIX/lib \ + --build-type=minimal \ + toolset=gcc \ + variant=release \ + debug-symbols=off \ + link=shared \ + threading=multi \ + runtime-link=shared \ + python=$PYTHONVER \ + cflags="$PKGCFLAGS" \ + cxxflags="$PKGCFLAGS" \ + install || exit 1 +) + +# use pycuda git version to get GL support +( + PYCUDAVERS=2020.1 + PYTHON_LIBNAME=boost_python38 + + . ${PREFIX}/profile + cd $BUILDDIR + # orig: https://github.com/inducer/pycuda/archive/v2020.1.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/580562d7af4d3249c5b42a1df8d428a0/pycuda-2020.1.tar.gz + test -e pycuda-${PYCUDAVERS}.tar.gz || wget -nv $BEEHIVE + test -d pycuda-${PYCUDAVERS} || tar -xf pycuda-${PYCUDAVERS}.tar.gz + + cd pycuda-${PYCUDAVERS} + test -e siteconf.py && rm siteconf.py + python3 configure.py \ + --cuda-enable-gl \ + --cuda-root=$CUDADIR \ + --no-use-shipped-boost \ + --boost-python-libname=$PYTHON_LIBNAME \ + --boost-inc-dir=$PREFIX/include \ + --boost-lib-dir=$PREFIX/lib \ + --cudadrv-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ + --cudart-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ + --curand-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ + --ldflags=-L$PREFIX/lib + + python3 setup.py install --prefix $PREFIX +) + +# finaly tensorflaw +( + TFVERSION=2.3.2 + + . ${PREFIX}/profile + . /pkg/bazel-3.4.1-0/profile + cd $BUILDDIR + + # orig: https://github.com/tensorflow/tensorflow/archive/v${TFVERSION}/tensorflow-${TFVERSION}.tar.gz + BEEHIVE=https://beehive.molgen.mpg.de/b444d145beb5c8195c0476111747c8fa/tensorflow-2.3.2.tar.gz + + test -e tensorflow-${TFVERSION}.tar.gz || wget -nv $BEEHIVE + test -d tensorflow-${TFVERSION} || tar -xf tensorflow-${TFVERSION}.tar.gz + + cd tensorflow-${TFVERSION} + + # use patch(es) from below ... + sed -ne '/^#Epatch:/ s/^#Epatch:\S* // p' $ME | patch -p1 --verbose + + #vars for config + export PYTHON_BIN_PATH=${PREFIX}/bin/python3 + export USE_DEFAULT_PYTHON_LIB_PATH=1 + export TF_NEED_JEMALLOC=1 + export TF_NEED_KAFKA=0 + export TF_NEED_OPENCL_SYCL=0 + export TF_NEED_AWS=0 + export TF_NEED_GCP=0 + export TF_NEED_HDFS=0 + export TF_NEED_S3=0 + 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=1 + export TF_NEED_NGRAPH=0 + export TF_NEED_IGNITE=0 + export TF_NEED_ROCM=0 + 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 NCCL_INSTALL_PATH=${CUDADIR} + export GCC_HOST_COMPILER_PATH=/usr/bin/gcc + export TF_CUDA_CLANG=0 + export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang + export TF_CUDA_PATHS=${CUDADIR},${CUDADIR}/extras/CUPTI,${CUDADIR}/nvvm + export TF_CUDA_VERSION=$(${CUDADIR}/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p') + export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' ${CUDADIR}/include/cudnn_version.h) + export TF_CUDA_COMPUTE_CAPABILITIES=3.5,3.7,5.0,5.2,5.3,6.0,6.1,6.2,7.0,7.2,7.5 + export CC_OPT_FLAGS="-march=nehalem" + export TF_NEED_CUDA=1 + + ./configure + + bazel build \ + --cxxopt="-march=nehalem" \ + --copt="-march=nehalem" \ + --noshow_loading_progress \ + --noshow_progress \ + --color="no" \ + //tensorflow:libtensorflow.so \ + //tensorflow:libtensorflow_cc.so \ + //tensorflow:install_headers \ + //tensorflow/tools/pip_package:build_pip_package + + bazel shutdown # otherwise it hogs in cwd + + # create a _clean/decent_ python package from so far created debris + test -d tensorflow-pip && rm -r tensorflow-pip + mkdir tensorflow-pip + ./bazel-bin/tensorflow/tools/pip_package/build_pip_package --src ${BUILDDIR}/tensorflow-pip + cd ${BUILDDIR} + # ... cope with the ??? symlink-structure placed in bazels' build-TMPDIR (-h) (tell me why ?) + test -e tensorflow-pip.tar && rm tensorflow-pip.tar + tar -chf tensorflow-pip.tar tensorflow-pip + + # and perform a regular install + test -d tensorflow-pip && rm -r tensorflow-pip + tar -xf tensorflow-pip.tar + cd ${BUILDDIR}/tensorflow-pip + python3 setup.py build + python3 setup.py install --prefix $PREFIX +) + +# load all packages, see warnings and spot installation errors +echo "# START load test." +python3 -c 'help("modules")' > /dev/null +echo "# END load test." + +exit + +### PATCHES + +# origin? Ooops, I've lost the ref. Found somewhere in TF-github issue-comments, and this code is actually present in TF 2.4 +# note: numpy 1.19 or so borked its API, possibly a common deprecation mech is better to be ignored ... + +#Epatch:f16 --- a/tensorflow/python/lib/core/bfloat16.cc 2021-01-04 21:20:31.000000000 +0100 +#Epatch:f16 +++ b/tensorflow/python/lib/core/bfloat16.cc 2021-02-22 17:52:49.012465507 +0100 +#Epatch:f16 @@ -517,7 +517,7 @@ +#Epatch:f16 } +#Epatch:f16 +#Epatch:f16 template +#Epatch:f16 -void BinaryUFunc(char** args, npy_intp* dimensions, npy_intp* steps, +#Epatch:f16 +void BinaryUFunc(char** args, const npy_intp* dimensions, const npy_intp* steps, +#Epatch:f16 void* data) { +#Epatch:f16 const char* i0 = args[0]; +#Epatch:f16 const char* i1 = args[1]; +#Epatch:f16 @@ -532,11 +532,17 @@ +#Epatch:f16 } +#Epatch:f16 } +#Epatch:f16 +#Epatch:f16 +// Numpy changed const-ness of PyUFuncGenericFunction, provide overload. +#Epatch:f16 template +#Epatch:f16 void CompareUFunc(char** args, npy_intp* dimensions, npy_intp* steps, +#Epatch:f16 void* data) { +#Epatch:f16 BinaryUFunc(args, dimensions, steps, data); +#Epatch:f16 } +#Epatch:f16 +template +#Epatch:f16 +void CompareUFunc(char** args, const npy_intp* dimensions, +#Epatch:f16 + const npy_intp* steps, void* data) { +#Epatch:f16 + BinaryUFunc(args, dimensions, steps, data); +#Epatch:f16 +} +#Epatch:f16 +#Epatch:f16 struct Bfloat16EqFunctor { +#Epatch:f16 npy_bool operator()(bfloat16 a, bfloat16 b) { return a == b; } + + +# https://github.com/tensorflow/tensorflow/issues/43588 +# conclusio: nvidia disted a 'strange' SOVERSION in libcudart, some distro 'fixed' it ... +# ... based on the assumtion that libcudart must be 11.1 +# tensorflaw buddies took the distro -- well, know your code + +# n.b. this is a hack for linux only. + +#Epatch:rtver --- a/third_party/gpus/cuda_configure.bzl 2021-01-04 21:20:31.000000000 +0100 +#Epatch:rtver +++ b/third_party/gpus/cuda_configure.bzl 2021-02-23 21:16:21.699194719 +0100 +#Epatch:rtver @@ -533,14 +533,14 @@ +#Epatch:rtver "cudart", +#Epatch:rtver cpu_value, +#Epatch:rtver cuda_config.config["cuda_library_dir"], +#Epatch:rtver - cuda_config.cuda_version, +#Epatch:rtver + "11.0", +#Epatch:rtver static = False, +#Epatch:rtver ), +#Epatch:rtver "cudart_static": _check_cuda_lib_params( +#Epatch:rtver "cudart_static", +#Epatch:rtver cpu_value, +#Epatch:rtver cuda_config.config["cuda_library_dir"], +#Epatch:rtver - cuda_config.cuda_version, +#Epatch:rtver + "11.0", +#Epatch:rtver static = True, +#Epatch:rtver ), +#Epatch:rtver "cublas": _check_cuda_lib_params( + +#Epatch:rtver --- a/third_party/gpus/cuda/cuda_config.h.tpl 2021-02-25 16:09:26.393892637 +0100 +#Epatch:rtver +++ b/third_party/gpus/cuda/cuda_config.h.tpl 2021-02-25 16:10:29.387584893 +0100 +#Epatch:rtver @@ -17,6 +17,7 @@ +#Epatch:rtver #define CUDA_CUDA_CONFIG_H_ +#Epatch:rtver +#Epatch:rtver #define TF_CUDA_VERSION "%{cuda_version}" +#Epatch:rtver +#define TF_CUDART_VERSION "11.0" +#Epatch:rtver #define TF_CUBLAS_VERSION "%{cublas_version}" +#Epatch:rtver #define TF_CUSOLVER_VERSION "%{cusolver_version}" +#Epatch:rtver #define TF_CURAND_VERSION "%{curand_version}" + +#Epatch:rtver --- a/tensorflow/stream_executor/platform/default/dso_loader.cc 2021-01-04 21:20:31.000000000 +0100 +#Epatch:rtver +++ b/tensorflow/stream_executor/platform/default/dso_loader.cc 2021-02-25 16:28:43.867234896 +0100 +#Epatch:rtver @@ -30,7 +30,8 @@ +#Epatch:rtver namespace internal { +#Epatch:rtver +#Epatch:rtver namespace { +#Epatch:rtver -string GetCudaVersion() { return TF_CUDA_VERSION; } +#Epatch:rtver +string GetCudaVersion() { return TF_CUDA_VERSION; } // just libcupti.so +#Epatch:rtver +string GetCudartVersion() { return TF_CUDART_VERSION; } // value is hardcoded in cuda_config.h.tpl +#Epatch:rtver string GetCudnnVersion() { return TF_CUDNN_VERSION; } +#Epatch:rtver string GetCublasVersion() { return TF_CUBLAS_VERSION; } +#Epatch:rtver string GetCusolverVersion() { return TF_CUSOLVER_VERSION; } +#Epatch:rtver @@ -77,7 +78,7 @@ +#Epatch:rtver } +#Epatch:rtver +#Epatch:rtver port::StatusOr GetCudaRuntimeDsoHandle() { +#Epatch:rtver - return GetDsoHandle("cudart", GetCudaVersion()); +#Epatch:rtver + return GetDsoHandle("cudart", GetCudartVersion()); +#Epatch:rtver } +#Epatch:rtver +#Epatch:rtver port::StatusOr GetCublasDsoHandle() {