Date: Thursday, November 9, 2017 @ 16:29:54 Author: svenstaro Revision: 266028
upgpkg: tensorflow 1.4.0-2 Modified: tensorflow/trunk/PKGBUILD ----------+ PKGBUILD | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-11-09 16:26:45 UTC (rev 266027) +++ PKGBUILD 2017-11-09 16:29:54 UTC (rev 266028) @@ -3,10 +3,10 @@ # Contributor: Thibault Lorrain (fredszaq) <freds...@gmail.com> pkgbase=tensorflow -pkgname=(tensorflow tensorflow-opt tensorflow-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda) +pkgname=(tensorflow tensorflow-opt tensorflow-cuda tensorflow-opt-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda python-tensorflow-opt-cuda) pkgver=1.4.0 _pkgver=1.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" license=('APACHE') @@ -20,6 +20,7 @@ prepare() { 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 @@ -42,6 +43,22 @@ bazel build --config=opt //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmp + cd ${srcdir}/tensorflow-${_pkgver}-cuda + export CC_OPT_FLAGS="-march=x86-64" + export TF_NEED_CUDA=1 + # For next version instead of the gcc-6 stuff: + export GCC_HOST_COMPILER_PATH=/usr/bin/gcc-6 + export TF_CUDA_CLANG=0 + # export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang + export CUDA_TOOLKIT_PATH=/opt/cuda + export TF_CUDA_VERSION=$($CUDA_TOOLKIT_PATH/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p') + export CUDNN_INSTALL_PATH=/opt/cuda + export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' $CUDNN_INSTALL_PATH/include/cudnn.h) + export TF_CUDA_COMPUTE_CAPABILITIES=3.0,3.5,5.2,6.1,6.2 + ./configure + bazel build --config=opt --config=cuda //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package + bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpcuda + cd ${srcdir}/tensorflow-${_pkgver}-opt export CC_OPT_FLAGS="-march=haswell" export TF_NEED_CUDA=0 @@ -49,7 +66,7 @@ bazel build --config=opt //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpopt - cd ${srcdir}/tensorflow-${_pkgver}-cuda + cd ${srcdir}/tensorflow-${_pkgver}-opt-cuda export CC_OPT_FLAGS="-march=haswell" export TF_NEED_CUDA=1 # For next version instead of the gcc-6 stuff: @@ -63,7 +80,7 @@ export TF_CUDA_COMPUTE_CAPABILITIES=3.0,3.5,5.2,6.1,6.2 ./configure bazel build --config=opt --config=cuda //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package - bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpcuda + bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpcudaopt } package_tensorflow() { @@ -108,6 +125,22 @@ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE } +package_tensorflow-opt-cuda() { + depends=(cuda cudnn) + conflicts=(tensorflow) + provides=(tensorflow) + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" + + cd ${srcdir}/tensorflow-${_pkgver}-opt-cuda + + tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver} + install -Dm644 tensorflow.pc ${pkgdir}/usr/lib/pkgconfig/tensorflow.pc + install -Dm755 bazel-bin/tensorflow/libtensorflow.so ${pkgdir}/usr/lib/libtensorflow.so + install -Dm755 bazel-bin/tensorflow/libtensorflow_framework.so ${pkgdir}/usr/lib/libtensorflow_framework.so + install -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} + package_python-tensorflow() { depends=(python python-protobuf) @@ -162,4 +195,23 @@ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE } +package_python-tensorflow-opt-cuda() { + depends=(python cuda cudnn python-pycuda python-protobuf) + conflicts=(python-tensorflow) + provides=(python-tensorflow) + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA and CPU optimizations)" + + cd ${srcdir}/tensorflow-${_pkgver}-cuda + + WHEEL_PACKAGE=$(find ${srcdir}/tmpcuda -name "tensor*.whl") + pip install --ignore-installed --upgrade --root $pkgdir/ $WHEEL_PACKAGE --no-dependencies + + # 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 +} + # vim:set ts=2 sw=2 et: