[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