1#!/usr/bin/env bash 2# Copyright 2016 The TensorFlow Authors. All Rights Reserved. 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# ============================================================================== 16# Build a whl and container with Intel(R) MKL support 17# Usage: build-dev-container.sh 18 19# Helper function to traverse directories up until given file is found. 20function upsearch () { 21 test / == "$PWD" && return || \ 22 test -e "$1" && echo "$PWD" && return || \ 23 cd .. && upsearch "$1" 24} 25 26# Set up WORKSPACE. 27WORKSPACE="${WORKSPACE:-$(upsearch WORKSPACE)}" 28 29TF_DOCKER_BUILD_DEVEL_BRANCH=${TF_DOCKER_BUILD_DEVEL_BRANCH:-master} 30TF_DOCKER_BUILD_IMAGE_NAME=${TF_DOCKER_BUILD_IMAGE_NAME:-intel-mkl/tensorflow} 31TF_DOCKER_BUILD_VERSION=${TF_DOCKER_BUILD_VERSION:-nightly} 32 33echo "TF_DOCKER_BUILD_DEVEL_BRANCH=${TF_DOCKER_BUILD_DEVEL_BRANCH}" 34echo "TF_DOCKER_BUILD_IMAGE_NAME=${TF_DOCKER_BUILD_IMAGE_NAME}" 35echo "TF_DOCKER_BUILD_VERSION=${TF_DOCKER_BUILD_VERSION}" 36 37# Build containers for AVX 38# Include the instructions for sandybridge and later, but tune for ivybridge 39TF_BAZEL_BUILD_OPTIONS="--config=mkl --copt=-march=sandybridge --copt=-mtune=ivybridge --copt=-O3 --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" 40 41# build the python 2 container and whl 42TF_DOCKER_BUILD_TYPE="MKL" \ 43 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 44 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 45 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 46 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}" \ 47 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 48 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 49 50# build the python 3 container and whl 51TF_DOCKER_BUILD_TYPE="MKL" \ 52 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 53 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 54 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 55 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}" \ 56 TF_DOCKER_BUILD_PYTHON_VERSION="PYTHON3" \ 57 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 58 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 59 60# build the python3.6 container and whl 61TF_DOCKER_BUILD_TYPE="MKL" \ 62 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 63 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 64 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 65 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}" \ 66 TF_DOCKER_BUILD_PYTHON_VERSION="PYTHON3.6" \ 67 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 68 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 69 70 71# Build containers for AVX2 72# Include the instructions for haswell and later, but tune for broadwell 73TF_BAZEL_BUILD_OPTIONS="--config=mkl --copt=-march=haswell --copt=-mtune=broadwell --copt=-O3 --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" 74 75# build the python 2 container and whl 76TF_DOCKER_BUILD_TYPE="MKL" \ 77 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 78 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 79 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 80 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}-avx2" \ 81 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 82 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 83 84# build the python 3 container and whl 85TF_DOCKER_BUILD_TYPE="MKL" \ 86 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 87 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 88 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 89 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}-avx2" \ 90 TF_DOCKER_BUILD_PYTHON_VERSION="PYTHON3" \ 91 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 92 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 93 94# build the python3.6 container and whl 95TF_DOCKER_BUILD_TYPE="MKL" \ 96 TF_DOCKER_BUILD_IS_DEVEL="YES" \ 97 TF_DOCKER_BUILD_DEVEL_BRANCH="${TF_DOCKER_BUILD_DEVEL_BRANCH}" \ 98 TF_DOCKER_BUILD_IMAGE_NAME="${TF_DOCKER_BUILD_IMAGE_NAME}" \ 99 TF_DOCKER_BUILD_VERSION="${TF_DOCKER_BUILD_VERSION}-avx2" \ 100 TF_DOCKER_BUILD_PYTHON_VERSION="PYTHON3.6" \ 101 TF_BAZEL_BUILD_OPTIONS="${TF_BAZEL_BUILD_OPTIONS}" \ 102 ${WORKSPACE}/tensorflow/tools/docker/parameterized_docker_build.sh 103 104