gnu: tensorflow: Enable parallel build (at least partially).
There are still many parts of the build that happen sequentially, but at least this hastens the long build somewhat. * gnu/packages/machine-learning.scm (tensorflow)[phases]: Remove trailing #t. {build-pip-package}: Honor the PARALLEL-BUILD? argument.master
parent
a91eaf1bdc
commit
92c3d1c3d0
|
@ -1730,7 +1730,7 @@ Python.")
|
||||||
((guix build python-build-system)
|
((guix build python-build-system)
|
||||||
#:select (python-version)))
|
#:select (python-version)))
|
||||||
#:imported-modules (,@%cmake-build-system-modules
|
#:imported-modules (,@%cmake-build-system-modules
|
||||||
(guix build python-build-system))
|
(guix build python-build-system))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'set-source-file-times-to-1980
|
(add-after 'unpack 'set-source-file-times-to-1980
|
||||||
|
@ -1853,8 +1853,7 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive "
|
||||||
(("tf_core_cpu grpc") "tf_core_cpu"))
|
(("tf_core_cpu grpc") "tf_core_cpu"))
|
||||||
|
|
||||||
;; This directory is a dependency of many targets.
|
;; This directory is a dependency of many targets.
|
||||||
(mkdir-p "protobuf")
|
(mkdir-p "protobuf")))
|
||||||
#t))
|
|
||||||
(add-after 'configure 'unpack-third-party-sources
|
(add-after 'configure 'unpack-third-party-sources
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
;; This is needed to configure bundled packages properly.
|
;; This is needed to configure bundled packages properly.
|
||||||
|
@ -1932,17 +1931,20 @@ COMPILE_FLAGS ${target_compile_flags} \
|
||||||
INSTALL_RPATH_USE_LINK_PATH TRUE \
|
INSTALL_RPATH_USE_LINK_PATH TRUE \
|
||||||
INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))))
|
INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))))
|
||||||
(add-after 'build 'build-pip-package
|
(add-after 'build 'build-pip-package
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs parallel-build? #:allow-other-keys)
|
||||||
(setenv "LDFLAGS"
|
(setenv "LDFLAGS"
|
||||||
(string-append "-Wl,-rpath="
|
(string-append "-Wl,-rpath="
|
||||||
(assoc-ref outputs "out") "/lib"))
|
(assoc-ref outputs "out") "/lib"))
|
||||||
(invoke "make" "tf_python_build_pip_package")))
|
(invoke "make" "-j" (if parallel-build?
|
||||||
|
(number->string (parallel-job-count))
|
||||||
|
"1")
|
||||||
|
"tf_python_build_pip_package")))
|
||||||
(add-after 'build-pip-package 'install-python
|
(add-after 'build-pip-package 'install-python
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let ((out (assoc-ref outputs "out"))
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(wheel (car (find-files "../build/tf_python/dist/" "\\.whl$")))
|
(wheel (car (find-files "../build/tf_python/dist/" "\\.whl$")))
|
||||||
(python-version (python-version
|
(python-version (python-version
|
||||||
(assoc-ref inputs "python"))))
|
(assoc-ref inputs "python"))))
|
||||||
(invoke "python" "-m" "pip" "install" wheel
|
(invoke "python" "-m" "pip" "install" wheel
|
||||||
(string-append "--prefix=" out))
|
(string-append "--prefix=" out))
|
||||||
|
|
||||||
|
|
Reference in New Issue