question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Cannot build deepvariant with tensorflow master due to bazel version requirements

See original GitHub issue

With DV_CPP_TENSORFLOW_TAG=master, I believe deepvariant will not build from source. TF master does not build with Bazel=0.15.0:

+ bazel test -c opt --local_test_jobs=1 --copt=-march=corei7 --copt=-Wno-sign-compare --copt=-Wno-write-strings deepvariant/...
[bazel INFO src/main/cpp/option_processor.cc:235] Looking for master bazelrcs in the following three paths: /root/deepvariant/tools/bazel.rc, , /etc/bazel.bazelrc
[bazel INFO src/main/cpp/option_processor.cc:165] User provided no rc file.
[bazel INFO src/main/cpp/rc_file.cc:53] Parsing the RcFile /root/deepvariant/tools/bazel.rc
[bazel INFO src/main/cpp/rc_file.cc:53] Parsing the RcFile /root/deepvariant/../tensorflow/tools/bazel.rc
[bazel FATAL src/main/cpp/blaze.cc:1263] Unexpected error reading .blazerc file '/root/deepvariant/../tensorflow/tools/bazel.rc'

And deepvariant does not build with bazel=0.19.0, see #134.


Linux xxx 4.15.0-1031-aws #33-Ubuntu SMP Fri Dec 7 09:32:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

# Copyright 2017 Google LLC.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
#    this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
#    contributors may be used to endorse or promote products derived from this
#    software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

# Source this file---these options are needed for TF config and for
# successive bazel runs.

# Set this to 1 if the system image already has TensorFlow preinstalled.  This
# will skip the installation of TensorFlow.
export DV_USE_PREINSTALLED_TF="${DV_USE_PREINSTALLED_TF:-0}"

export TF_CUDA_CLANG=0
export TF_ENABLE_XLA=1
export TF_NEED_CUDA=1
export TF_NEED_GCP=1
export TF_NEED_GDR=0
export TF_NEED_HDFS=0
export TF_NEED_JEMALLOC=0
export TF_NEED_MKL=1
export TF_NEED_MPI=0
export TF_NEED_OPENCL=0
export TF_NEED_OPENCL_SYCL=0
export TF_NEED_S3=1
export TF_NEED_VERBS=0

# Used if TF_NEED_CUDA=1
export TF_CUDA_VERSION="10.0"
export CUDA_TOOLKIT_PATH="/usr/local/cuda"
export TF_CUDNN_VERSION="7"
export CUDNN_INSTALL_PATH="/usr/lib/x86_64-linux-gnu"

# The version of bazel we want to build DeepVariant.
DV_BAZEL_VERSION="0.15.0"

# We need to make sure that $HOME/bin is first in the binary search path so that
# `bazel` will find the latest version of bazel installed in the user's home
# directory. This is set in setting.sh as all DeepVariant scripts source
# settings.sh and assume that `bazel` will find the right version.
export PATH="$HOME/bin:$PATH"

# Path to the public bucket containing DeepVariant-related artifacts.
export DEEPVARIANT_BUCKET="gs://deepvariant"
export DV_PACKAGE_BUCKET_PATH="${DEEPVARIANT_BUCKET}/packages"
export DV_PACKAGE_CURL_PATH="https://storage.googleapis.com/deepvariant/packages"

# Set this to 1 to use the nightly (latest) build of TensorFlow instead of a
# named release version. Set it to an already existing value in the environment
# (allowing command line control of the build), defaulting to 0 (release build).
# Note that setting this to 1 implies that the C++ code in DeepVariant will be
# build using the master branch and not the pinned version to avoid
# incompatibilities between TensorFlow C++ used to build DeepVariant and the
# tf-nightly wheel.
export DV_TF_NIGHTLY_BUILD="${DV_TF_NIGHTLY_BUILD:-1}"

# The branch/tag we checkout to build our C++ dependencies against. This is not
# the same as the python version of TensorFlow we use, but should be similar or
# we risk having version incompatibilities between our C++ code and the Python
# code we use at runtime.
if [[ "${DV_TF_NIGHTLY_BUILD}" = "1" ]]; then
  export DV_CPP_TENSORFLOW_TAG="master"
else
  export DV_CPP_TENSORFLOW_TAG="r1.12"
fi
export DV_GCP_OPTIMIZED_TF_WHL_VERSION="1.12.0"
export DV_TENSORFLOW_STANDARD_GPU_WHL_VERSION="1.12.0"
export DV_TENSORFLOW_STANDARD_CPU_WHL_VERSION="1.12.0"

# Set this to 1 to use DeepVariant with GPUs. Set it to an already existing
# value in the environment (allowing command line control of the build),
# defaulting to 0 (CPU only build).
export DV_GPU_BUILD="${DV_GPU_BUILD:-1}"

# If this variable is set to 1, DeepVariant will use a TensorFlow wheel file
# compiled with MKL support for corei7 or better chipsets, which
# significantly speeds up execution when running on modern CPUs. The default
# TensorFlow wheel files don't contain these instructions (and thereby run on a
# broader set of CPUs). Using this optimized wheel reduces the runtime of
# DeepVariant's call_variants step by >3x. This is called the GCP (Google Cloud
# Platform) optimized wheel because all GCP instances have at least Sandy Bridge
# or better chipsets, so this wheel should run anywhere on GCP.
export DV_USE_GCP_OPTIMIZED_TF_WHL="${DV_USE_GCP_OPTIMIZED_TF_WHL:-1}"
export GCP_OPTIMIZED_TF_WHL_FILENAME="tensorflow-${DV_GCP_OPTIMIZED_TF_WHL_VERSION}.deepvariant_gcp-cp27-none-linux_x86_64.whl"
export GCP_OPTIMIZED_TF_WHL_PATH="${DV_PACKAGE_BUCKET_PATH}/tensorflow"
export GCP_OPTIMIZED_TF_WHL_CURL_PATH="${DV_PACKAGE_CURL_PATH}/tensorflow"

# Set this to 1 to make our prereq scripts install the CUDA libraries.
# If you already have CUDA installed, such as on a properly provisioned
# Docker image, it shouldn't be necessary.
export DV_INSTALL_GPU_DRIVERS="${DV_INSTALL_GPU_DRIVERS:-0}"

export PYTHON_BIN_PATH=$(which python)
export USE_DEFAULT_PYTHON_LIB_PATH=1
export DV_COPT_FLAGS="--copt=-march=corei7 --copt=-Wno-sign-compare --copt=-Wno-write-strings"

function note_build_stage {
  echo "========== [$(date)] Stage '${1}' starting"
}

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
sgoe1commented, Feb 14, 2019

Currently some of the settings in settings.sh are outdated/not in-use (particularly the CUDA related ones), so I don’t think you specifying the CUDA version there did anything. If you notice in run-prereq.sh it doesn’t check for TF_CUDA_VERSION, it just automatically installs CUDA 9.0.

You should be able to use CUDA 10, but you’ll have to modify the code in the CUDA section of run-prereq.sh (which is a bit annoying since you’ll have to manually figure out each URL).

We’ll clean this up as well - thanks for pointing out the issue.

1reaction
sgoe1commented, Feb 12, 2019

Hi @andrewrech, you should go ahead with r1.12. You will also need to set pip install --user 'intervaltree==2.1.0' in run-prereq.sh (we’ll have a patch out for this shortly).

Let me know if you have any issues after that.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Troubles with bazel and building tensorflow on ubuntu
I'm trying to build tensorflow on ubuntu using bazel, I failed using bazelisk and bazel. There is some silly bug with the installer....
Read more >
DeepVariant 安装出现的问题- 技术问答 - tf.wiki 社区
我希望在Tensorflow 讨论区寻找一些帮助。DeepVariant 的安装脚本需要安装Tensorflow,CUDA,CUDNN 以及bazel 等依赖的软件工具包。安装DeepVariant 时,需要先运行build- ...
Read more >
How to Setup Your Python Environment for Machine Learning ...
1. Install the Theano deep learning library by typing: 1. conda install theano · 2. Install the TensorFlow deep learning library (all except ......
Read more >
Building Bazel and TensorFlow on AArch64 - AI and ML blog
TensorFlow's configure.py file specifies: Different versions of TensorFlow require different versions of Bazel to build.
Read more >
based methods into the variant calling analysis pipeline
inaccurate due to the various sequencing errors and inconsistencies ... Nucleus, which in turn may need a specific version of a building system...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found