[arch-commits] Commit in tensorflow/trunk (PKGBUILD)

Sven-Hendrik Haase svenstaro at archlinux.org
Wed Oct 18 09:57:31 UTC 2017


    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) <fredszaq at 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
 



More information about the arch-commits mailing list