Sven-Hendrik Haase pushed to branch main at Arch Linux / Packaging / Packages / tensorflow
Commits: 9f772fdf by loqs at 2024-10-08T14:03:44+01:00 Update _pkgver to 2.18.0-rc1 so source is updated. Update pkgver to 2.18.0rc1. Fixes https://gitlab.archlinux.org/archlinux/packaging/packages/tensorflow/-/issues/11. - - - - - e6618b49 by loqs at 2024-10-08T14:05:39+01:00 Update variables for hermetic CUDA using system CUDA, CUDNN, NCCL Rename TF_CUDA_VERSION to HERMETIC_CUDA_VERSION and converted to required triplet form. Rename TF_CUDNN_VERSION to HERMETIC_CUDNN_VERSION and converted to required triplet form. Rename TF_CUDA_COMPUTE_CAPABILITIES to HERMETIC_CUDA_COMPUTE_CAPABILITIES. - - - - - 1be5816d by loqs at 2024-10-11T20:38:17+01:00 Switch CUDA builds to config=cuda_wheel Prevents build failure with: TF wheel shouldn't be built with CUDA dependencies. Please provide `--config=cuda_wheel` for bazel build command. If you absolutely need to add CUDA dependencies, provide `--@local_config_cuda//cuda:override_include_cuda_libs=true`. - - - - - 496d6bd8 by loqs at 2024-10-11T20:41:24+01:00 Stop using system CUDA, CUDNN, NCCL - - - - - 9edbd7db by loqs at 2024-10-11T20:41:26+01:00 Add patch supporting Nvidia 560 series driver. - - - - - d224b9fd by loqs at 2024-10-11T20:43:45+01:00 Switch CUDA builds to config=cuda_clang config=cuda_wheel - - - - - d4db46ff by loqs at 2024-10-11T20:44:11+01:00 Add patch for clang to detect CUDA version. - - - - - 1 changed file: - PKGBUILD Changes: ===================================== PKGBUILD ===================================== @@ -5,8 +5,8 @@ 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.18rc0 -_pkgver=2.17.0 +pkgver=2.18rc1 +_pkgver=2.18.0-rc1 pkgrel=1 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" @@ -16,12 +16,16 @@ depends=('c-ares' 'pybind11' 'openssl' 'libpng' 'curl' 'giflib' 'icu' 'libjpeg-t 'intel-oneapi-compiler-shared-runtime-libs') makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'cudnn' 'python-wheel' 'openmp' 'python-installer' 'python-setuptools' 'python-h5py' 'python-keras-applications' - 'python-keras-preprocessing' 'cython' 'patchelf' 'python-requests' 'libxcrypt-compat' 'clang') + 'python-keras-preprocessing' 'cython' 'patchelf' 'python-requests' 'libxcrypt-compat' 'clang' 'lld') 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/13ea77ab753dc0e3bae6b92777cd835e464b26e7.patch + https://github.com/tensorflow/tensorflow/commit/3f4b2fda6ffe7dfe03c1663ef37f54fc4432cc8b.patch tensorflow-2.16.1-python-distutils-removal.patch https://github.com/bazelbuild/bazel/releases/download/6.5.0/bazel_nojdk-6.5.0-linux-x86_64) -sha512sums=('45061f075971cf2bc219a34b1cda2ee9851ba586e94046838e6e1fd26adcfb399d90e71e89a0f709d5282ff3be7cc3a82b81d62dce53db5010640ea41487a469' +sha512sums=('e7d9802d443f7c6abf8a2490f4ce86b5a9f583071b7b6bda7f944a621859e6075bd680a0dbceffca9c69db25508a16bf5b67c254253add5ffde440fb7413b7d9' + '243c194778c75a073393af246dd206b2f20e13ea8c922a8ba5286b947a3dab6146bebd397712c17473ee018fd0e3bc0f1c01443be2c5f143920d4e0c73ec23d3' + '03e8d7188a81cc237899f4f287f129e7759d268f604252636e007e1ffe71b6a07926c219f79b5bf1f8c088345e292eff461d2375ca1a73af435cdca182e9c26c' 'e4c44d2f5314b83d8ed404e5ec14960ef8b7df0c1a2a3e826f913a02c901f9fd0326f9014a602121e0fdb2f928d1459f8b8180455491a1f937ce84e12f6a7d3e' 'd3789f0ecd354468f2e24d98501041430ae99c173320fa9c3eb02f225c08ed298fd1ad259e4ad9bb70b6ae89d84cd87460aaa720de3486d40b30777a8fe45453') @@ -63,6 +67,12 @@ prepare() { export PATH="${srcdir}/bazel:$PATH" bazel --version + # [GPU] Fix compilation with NVIDIA driver 560. + patch -Np1 -i ../13ea77ab753dc0e3bae6b92777cd835e464b26e7.patch -d tensorflow-${_pkgver} + + # PR #16882: Symlink hermetic cuda headers to permit clang cuda version detection + patch -Np1 -i ../3f4b2fda6ffe7dfe03c1663ef37f54fc4432cc8b.patch -d tensorflow-${_pkgver} + # Python 3.12 removed the distutils module # https://gitlab.archlinux.org/archlinux/packaging/packages/tensorflow/-/issues/7 patch -Np1 -i ../tensorflow-2.16.1-python-distutils-removal.patch -d tensorflow-${_pkgver} @@ -71,6 +81,10 @@ prepare() { # thinks about which versions should be used anyway. ;) (FS#68772) sed -i -E "s/'([0-9a-z_-]+) .= [0-9].+[0-9]'/'\1'/" tensorflow-${_pkgver}/tensorflow/tools/pip_package/setup.py + # prevent configure.py prompting for paths for 'LOCAL_CUDA_PATH', 'LOCAL_CUDNN_PATH' and 'LOCAL_NCCL_PATH' + # Setting the variables as empty but defined does not prevent prompting by configure.py + sed -i "/set_cuda_local_path(environ_cp, '/d" tensorflow-${_pkgver}/configure.py + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt-cuda @@ -110,13 +124,16 @@ prepare() { 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 LOCAL_CUDA_PATH="/opt/cuda" + # export LOCAL_CUDNN_PATH="/usr/lib" + # export LOCAL_NCCL_PATH="/usr/lib" + export HERMETIC_CUDA_VERSION=$(/opt/cuda/bin/nvcc --version | sed -n 's/\(release [^.]\+.[^.]\+\),/\1.0,/;s/^.*release \(.*\),.*/\1/p') + export HERMETIC_CUDNN_VERSION="$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h).$(sed -n 's/^#define CUDNN_MINOR\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h).$(sed -n 's/^#define CUDNN_PATCHLEVEL\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h)" # https://github.com/tensorflow/tensorflow/blob/1ba2eb7b313c0c5001ee1683a3ec4fbae01105fd/third_party/gpus/cuda_configure.bzl#L411-L446 # according to the above, we should be specifying CUDA compute capabilities as 'sm_XX' or 'compute_XX' from now on # add latest PTX for future compatibility # Valid values can be discovered from nvcc --help - export TF_CUDA_COMPUTE_CAPABILITIES=sm_52,sm_53,sm_60,sm_61,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,sm_87,sm_89,sm_90,compute_90 + export HERMETIC_CUDA_COMPUTE_CAPABILITIES=sm_52,sm_53,sm_60,sm_61,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,sm_87,sm_89,sm_90,compute_90 export TF_PYTHON_VERSION=$(get_pyver) export PYTHON_BIN_PATH=/usr/bin/python$(get_pyver) export USE_DEFAULT_PYTHON_LIB_PATH=1 @@ -131,7 +148,7 @@ build() { export TF_NEED_CUDA=1 ./configure bazel \ - build --config=cuda \ + build --config=cuda_clang --config=cuda_wheel\ ${BAZEL_ARGS[@]} \ //tensorflow:libtensorflow.so \ //tensorflow:libtensorflow_cc.so \ @@ -146,7 +163,7 @@ build() { export TF_NEED_CUDA=1 ./configure bazel \ - build --config=opt --config=avx_linux --config=cuda \ + build --config=opt --config=avx_linux --config=cuda_clang --config=cuda_wheel\ ${BAZEL_ARGS[@]} \ //tensorflow:libtensorflow.so \ //tensorflow:libtensorflow_cc.so \ View it on GitLab: https://gitlab.archlinux.org/archlinux/packaging/packages/tensorflow/-/compare/fc5d7d380255790d43f633d832db8cba8be8b923...d4db46ffdf7ccdb755d1f2f2d9d73dc34493283f -- View it on GitLab: https://gitlab.archlinux.org/archlinux/packaging/packages/tensorflow/-/compare/fc5d7d380255790d43f633d832db8cba8be8b923...d4db46ffdf7ccdb755d1f2f2d9d73dc34493283f You're receiving this email because of your account on gitlab.archlinux.org.
