Date: Monday, October 5, 2020 @ 07:52:35 Author: svenstaro Revision: 718730
upgpkg: tensorflow 2.3.1-2: Fix libcudart.so.11.1 dynamic loading error (FS#68078) Modified: tensorflow/trunk/PKGBUILD tensorflow/trunk/cuda11.1.patch ----------------+ PKGBUILD | 6 +- cuda11.1.patch | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 122 insertions(+), 5 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2020-10-05 07:40:32 UTC (rev 718729) +++ PKGBUILD 2020-10-05 07:52:35 UTC (rev 718730) @@ -7,7 +7,7 @@ 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=1 +pkgrel=2 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" license=('APACHE') @@ -19,12 +19,14 @@ '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 build-against-actual-mkl.patch) sha512sums=('e497ef4564f50abf9f918be4522cf702f4cf945cb1ebf83af1386ac4ddc7373b3ba70c7f803f8ca06faf2c6b5396e60b1e0e9b97bfbd667e733b08b6e6d70ef0' + '9dcaef0dd4fdd7008a27e383ef87c97990ba883a3094f214f821a039994933ec6ec47f5a832570e5c4b783e0493ce2236e7957e596395c4dee40f9bf2621ff2f' 'df2e0373e2f63b8766f31933f7db57f6a7559b8f03af1db51644fba87731451a7cd3895529a3192e5394612fcb42f245b794b1c9ca3c05881ca03a547c8c9acc' - '8e9c6fae8b7ac8ad6640e9306a60b194987bcb3744d3d1e2c96cb6905016d9271f885d36a87f78ee158cf42fd9dd6257c2effcd4c9c567da3012e5462916ad16' + '0caa5170c22fdea2c708ecdb2c980d668464d9dba9c9730a9ec5e9258572576d783fa1d19da04d5f9d2b06aed36d30971526f212fc64c53d09c3e821bd1a3b5d' 'e51e3f3dced121db3a09fbdaefd33555536095584b72a5eb6f302fa6fa68ab56ea45e8a847ec90ff4ba076db312c06f91ff672e08e95263c658526582494ce08') get_pyver () { Modified: cuda11.1.patch =================================================================== --- cuda11.1.patch 2020-10-05 07:40:32 UTC (rev 718729) +++ cuda11.1.patch 2020-10-05 07:52:35 UTC (rev 718730) @@ -1,5 +1,14 @@ +From 4a64bbe4ff9fb03a948ee76f7349cfdb9e9b7528 Mon Sep 17 00:00:00 2001 +From: Nathan Luehr <[email protected]> +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 ea33963fe1..3ec6b0efa8 100644 +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): @@ -7,7 +16,7 @@ cpu_value, cuda_config.config["cuda_library_dir"], - cuda_config.cuda_version, -+ "11.0", ++ cuda_config.cudart_version, static = False, ), "cudart_static": _check_cuda_lib_params( @@ -15,7 +24,113 @@ cpu_value, cuda_config.config["cuda_library_dir"], - cuda_config.cuda_version, -+ "11.0", ++ 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 <[email protected]> +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,
