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

Sven-Hendrik Haase svenstaro at archlinux.org
Thu Nov 9 16:29:55 UTC 2017


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



More information about the arch-commits mailing list