Date: Wednesday, October 18, 2017 @ 09:57:30 Author: svenstaro Revision: 263224
Prepare opt package Modified: tensorflow/trunk/PKGBUILD ----------+ PKGBUILD | 58 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 9 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-10-18 09:38:00 UTC (rev 263223) +++ PKGBUILD 2017-10-18 09:57:30 UTC (rev 263224) @@ -3,10 +3,10 @@ # Contributor: Thibault Lorrain (fredszaq) <freds...@gmail.com> pkgbase=tensorflow -pkgname=(tensorflow tensorflow-cuda python-tensorflow python-tensorflow-cuda) +pkgname=(tensorflow tensorflow-opt tensorflow-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda) pkgver=1.4.0rc0 _pkgver=1.4.0-rc0 -pkgrel=2 +pkgrel=3 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" license=('Apache2') @@ -18,12 +18,12 @@ sha512sums=('d4347fd42a372c1023fe874fe66b4806f13f116614ede0c92d279aea155489ecdd08bb33d9dfd4009059aa660941020b34e4c8105562f5eb8c79d8434e8a70a0') prepare() { + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda # These environment variables influence the behavior of the configure call below. export TF_NEED_MKL=0 export PYTHON_BIN_PATH=/usr/bin/python export USE_DEFAULT_PYTHON_LIB_PATH=1 - export CC_OPT_FLAGS="-march=x86-64" export TF_NEED_JEMALLOC=1 export TF_NEED_GCP=0 export TF_NEED_HDFS=0 @@ -36,15 +36,21 @@ build() { cd ${srcdir}/tensorflow-${_pkgver} - + export CC_OPT_FLAGS="-march=x86-64" export TF_NEED_CUDA=0 - ./configure - bazel build --config=opt //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package + bazel build --jobs $(nproc) --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}-opt + export CC_OPT_FLAGS="-march=haswell" + export TF_NEED_CUDA=0 + ./configure + bazel build --jobs $(nproc) --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 - + export CC_OPT_FLAGS="-march=haswell" export TF_NEED_CUDA=1 # For next version instead of the gcc-6 stuff: export GCC_HOST_COMPILER_PATH=/usr/bin/gcc-6 @@ -55,9 +61,8 @@ 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 build --jobs $(nproc) --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 } @@ -71,10 +76,25 @@ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE } +package_tensorflow-opt() { + conflicts=(tensorflow) + provides=(tensorflow) + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" + + cd ${srcdir}/tensorflow-${_pkgver}-opt + + 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 -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} + package_tensorflow-cuda() { depends=(cuda cudnn) conflicts=(tensorflow) provides=(tensorflow) + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)" cd ${srcdir}/tensorflow-${_pkgver}-cuda @@ -101,10 +121,30 @@ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE } +package_python-tensorflow-opt() { + depends=(python python-protobuf) + conflicts=(python-tensorflow) + provides=(python-tensorflow) + pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)" + + cd ${srcdir}/tensorflow-${_pkgver}-opt + + WHEEL_PACKAGE=$(find ${srcdir}/tmpopt -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 +} + package_python-tensorflow-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)" cd ${srcdir}/tensorflow-${_pkgver}-cuda