1*da0073e9SAndroid Build Coastguard Worker#!/bin/bash 2*da0073e9SAndroid Build Coastguard Worker 3*da0073e9SAndroid Build Coastguard Workerset -ex 4*da0073e9SAndroid Build Coastguard Worker 5*da0073e9SAndroid Build Coastguard Workerimage="$1" 6*da0073e9SAndroid Build Coastguard Workershift 7*da0073e9SAndroid Build Coastguard Worker 8*da0073e9SAndroid Build Coastguard Workerif [ -z "${image}" ]; then 9*da0073e9SAndroid Build Coastguard Worker echo "Usage: $0 IMAGE" 10*da0073e9SAndroid Build Coastguard Worker exit 1 11*da0073e9SAndroid Build Coastguard Workerfi 12*da0073e9SAndroid Build Coastguard Worker 13*da0073e9SAndroid Build Coastguard Workerfunction extract_version_from_image_name() { 14*da0073e9SAndroid Build Coastguard Worker eval export $2=$(echo "${image}" | perl -n -e"/$1(\d+(\.\d+)?(\.\d+)?)/ && print \$1") 15*da0073e9SAndroid Build Coastguard Worker if [ "x${!2}" = x ]; then 16*da0073e9SAndroid Build Coastguard Worker echo "variable '$2' not correctly parsed from image='$image'" 17*da0073e9SAndroid Build Coastguard Worker exit 1 18*da0073e9SAndroid Build Coastguard Worker fi 19*da0073e9SAndroid Build Coastguard Worker} 20*da0073e9SAndroid Build Coastguard Worker 21*da0073e9SAndroid Build Coastguard Workerfunction extract_all_from_image_name() { 22*da0073e9SAndroid Build Coastguard Worker # parts $image into array, splitting on '-' 23*da0073e9SAndroid Build Coastguard Worker keep_IFS="$IFS" 24*da0073e9SAndroid Build Coastguard Worker IFS="-" 25*da0073e9SAndroid Build Coastguard Worker declare -a parts=($image) 26*da0073e9SAndroid Build Coastguard Worker IFS="$keep_IFS" 27*da0073e9SAndroid Build Coastguard Worker unset keep_IFS 28*da0073e9SAndroid Build Coastguard Worker 29*da0073e9SAndroid Build Coastguard Worker for part in "${parts[@]}"; do 30*da0073e9SAndroid Build Coastguard Worker name=$(echo "${part}" | perl -n -e"/([a-zA-Z]+)\d+(\.\d+)?(\.\d+)?/ && print \$1") 31*da0073e9SAndroid Build Coastguard Worker vername="${name^^}_VERSION" 32*da0073e9SAndroid Build Coastguard Worker # "py" is the odd one out, needs this special case 33*da0073e9SAndroid Build Coastguard Worker if [ "x${name}" = xpy ]; then 34*da0073e9SAndroid Build Coastguard Worker vername=ANACONDA_PYTHON_VERSION 35*da0073e9SAndroid Build Coastguard Worker fi 36*da0073e9SAndroid Build Coastguard Worker # skip non-conforming fields such as "pytorch", "linux" or "bionic" without version string 37*da0073e9SAndroid Build Coastguard Worker if [ -n "${name}" ]; then 38*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name "${name}" "${vername}" 39*da0073e9SAndroid Build Coastguard Worker fi 40*da0073e9SAndroid Build Coastguard Worker done 41*da0073e9SAndroid Build Coastguard Worker} 42*da0073e9SAndroid Build Coastguard Worker 43*da0073e9SAndroid Build Coastguard Worker# Use the same pre-built XLA test image from PyTorch/XLA 44*da0073e9SAndroid Build Coastguard Workerif [[ "$image" == *xla* ]]; then 45*da0073e9SAndroid Build Coastguard Worker echo "Using pre-built XLA test image..." 46*da0073e9SAndroid Build Coastguard Worker exit 0 47*da0073e9SAndroid Build Coastguard Workerfi 48*da0073e9SAndroid Build Coastguard Worker 49*da0073e9SAndroid Build Coastguard Workerif [[ "$image" == *-focal* ]]; then 50*da0073e9SAndroid Build Coastguard Worker UBUNTU_VERSION=20.04 51*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *-jammy* ]]; then 52*da0073e9SAndroid Build Coastguard Worker UBUNTU_VERSION=22.04 53*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *ubuntu* ]]; then 54*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name ubuntu UBUNTU_VERSION 55*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *centos* ]]; then 56*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name centos CENTOS_VERSION 57*da0073e9SAndroid Build Coastguard Workerfi 58*da0073e9SAndroid Build Coastguard Worker 59*da0073e9SAndroid Build Coastguard Workerif [ -n "${UBUNTU_VERSION}" ]; then 60*da0073e9SAndroid Build Coastguard Worker OS="ubuntu" 61*da0073e9SAndroid Build Coastguard Workerelif [ -n "${CENTOS_VERSION}" ]; then 62*da0073e9SAndroid Build Coastguard Worker OS="centos" 63*da0073e9SAndroid Build Coastguard Workerelse 64*da0073e9SAndroid Build Coastguard Worker echo "Unable to derive operating system base..." 65*da0073e9SAndroid Build Coastguard Worker exit 1 66*da0073e9SAndroid Build Coastguard Workerfi 67*da0073e9SAndroid Build Coastguard Worker 68*da0073e9SAndroid Build Coastguard WorkerDOCKERFILE="${OS}/Dockerfile" 69*da0073e9SAndroid Build Coastguard Worker# When using ubuntu - 22.04, start from Ubuntu docker image, instead of nvidia/cuda docker image. 70*da0073e9SAndroid Build Coastguard Workerif [[ "$image" == *cuda* && "$UBUNTU_VERSION" != "22.04" ]]; then 71*da0073e9SAndroid Build Coastguard Worker DOCKERFILE="${OS}-cuda/Dockerfile" 72*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *rocm* ]]; then 73*da0073e9SAndroid Build Coastguard Worker DOCKERFILE="${OS}-rocm/Dockerfile" 74*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *xpu* ]]; then 75*da0073e9SAndroid Build Coastguard Worker DOCKERFILE="${OS}-xpu/Dockerfile" 76*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *cuda*linter* ]]; then 77*da0073e9SAndroid Build Coastguard Worker # Use a separate Dockerfile for linter to keep a small image size 78*da0073e9SAndroid Build Coastguard Worker DOCKERFILE="linter-cuda/Dockerfile" 79*da0073e9SAndroid Build Coastguard Workerelif [[ "$image" == *linter* ]]; then 80*da0073e9SAndroid Build Coastguard Worker # Use a separate Dockerfile for linter to keep a small image size 81*da0073e9SAndroid Build Coastguard Worker DOCKERFILE="linter/Dockerfile" 82*da0073e9SAndroid Build Coastguard Workerfi 83*da0073e9SAndroid Build Coastguard Worker 84*da0073e9SAndroid Build Coastguard Worker# CMake 3.18 is needed to support CUDA17 language variant 85*da0073e9SAndroid Build Coastguard WorkerCMAKE_VERSION=3.18.5 86*da0073e9SAndroid Build Coastguard Worker 87*da0073e9SAndroid Build Coastguard Worker_UCX_COMMIT=7bb2722ff2187a0cad557ae4a6afa090569f83fb 88*da0073e9SAndroid Build Coastguard Worker_UCC_COMMIT=20eae37090a4ce1b32bcce6144ccad0b49943e0b 89*da0073e9SAndroid Build Coastguard Worker 90*da0073e9SAndroid Build Coastguard Worker# It's annoying to rename jobs every time you want to rewrite a 91*da0073e9SAndroid Build Coastguard Worker# configuration, so we hardcode everything here rather than do it 92*da0073e9SAndroid Build Coastguard Worker# from scratch 93*da0073e9SAndroid Build Coastguard Workercase "$image" in 94*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9) 95*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4.1 96*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 97*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 98*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 99*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 100*da0073e9SAndroid Build Coastguard Worker DB=yes 101*da0073e9SAndroid Build Coastguard Worker VISION=yes 102*da0073e9SAndroid Build Coastguard Worker KATEX=yes 103*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 104*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 105*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 106*da0073e9SAndroid Build Coastguard Worker TRITON=yes 107*da0073e9SAndroid Build Coastguard Worker ;; 108*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9) 109*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.1.1 110*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 111*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 112*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 113*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 114*da0073e9SAndroid Build Coastguard Worker DB=yes 115*da0073e9SAndroid Build Coastguard Worker VISION=yes 116*da0073e9SAndroid Build Coastguard Worker KATEX=yes 117*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 118*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 119*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 120*da0073e9SAndroid Build Coastguard Worker TRITON=yes 121*da0073e9SAndroid Build Coastguard Worker ;; 122*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks) 123*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4.1 124*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 125*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 126*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 127*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 128*da0073e9SAndroid Build Coastguard Worker DB=yes 129*da0073e9SAndroid Build Coastguard Worker VISION=yes 130*da0073e9SAndroid Build Coastguard Worker KATEX=yes 131*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 132*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 133*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 134*da0073e9SAndroid Build Coastguard Worker TRITON=yes 135*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 136*da0073e9SAndroid Build Coastguard Worker ;; 137*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks) 138*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.1.1 139*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 140*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 141*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 142*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 143*da0073e9SAndroid Build Coastguard Worker DB=yes 144*da0073e9SAndroid Build Coastguard Worker VISION=yes 145*da0073e9SAndroid Build Coastguard Worker KATEX=yes 146*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 147*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 148*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 149*da0073e9SAndroid Build Coastguard Worker TRITON=yes 150*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 151*da0073e9SAndroid Build Coastguard Worker ;; 152*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.1-cudnn9-py3.12-gcc9-inductor-benchmarks) 153*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.1.1 154*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 155*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.12 156*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 157*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 158*da0073e9SAndroid Build Coastguard Worker DB=yes 159*da0073e9SAndroid Build Coastguard Worker VISION=yes 160*da0073e9SAndroid Build Coastguard Worker KATEX=yes 161*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 162*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 163*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 164*da0073e9SAndroid Build Coastguard Worker TRITON=yes 165*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 166*da0073e9SAndroid Build Coastguard Worker ;; 167*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.4-cudnn9-py3.12-gcc9-inductor-benchmarks) 168*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4.1 169*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 170*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.12 171*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 172*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 173*da0073e9SAndroid Build Coastguard Worker DB=yes 174*da0073e9SAndroid Build Coastguard Worker VISION=yes 175*da0073e9SAndroid Build Coastguard Worker KATEX=yes 176*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 177*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 178*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 179*da0073e9SAndroid Build Coastguard Worker TRITON=yes 180*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 181*da0073e9SAndroid Build Coastguard Worker ;; 182*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda11.8-cudnn9-py3-gcc9) 183*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=11.8.0 184*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 185*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 186*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 187*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 188*da0073e9SAndroid Build Coastguard Worker DB=yes 189*da0073e9SAndroid Build Coastguard Worker VISION=yes 190*da0073e9SAndroid Build Coastguard Worker KATEX=yes 191*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 192*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 193*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 194*da0073e9SAndroid Build Coastguard Worker TRITON=yes 195*da0073e9SAndroid Build Coastguard Worker ;; 196*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9) 197*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4.1 198*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 199*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 200*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 201*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 202*da0073e9SAndroid Build Coastguard Worker DB=yes 203*da0073e9SAndroid Build Coastguard Worker VISION=yes 204*da0073e9SAndroid Build Coastguard Worker KATEX=yes 205*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 206*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 207*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 208*da0073e9SAndroid Build Coastguard Worker TRITON=yes 209*da0073e9SAndroid Build Coastguard Worker ;; 210*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9) 211*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.1.1 212*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 213*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 214*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 215*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 216*da0073e9SAndroid Build Coastguard Worker DB=yes 217*da0073e9SAndroid Build Coastguard Worker VISION=yes 218*da0073e9SAndroid Build Coastguard Worker KATEX=yes 219*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 220*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 221*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 222*da0073e9SAndroid Build Coastguard Worker TRITON=yes 223*da0073e9SAndroid Build Coastguard Worker ;; 224*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9) 225*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4.1 226*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 227*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 228*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 229*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 230*da0073e9SAndroid Build Coastguard Worker DB=yes 231*da0073e9SAndroid Build Coastguard Worker VISION=yes 232*da0073e9SAndroid Build Coastguard Worker KATEX=yes 233*da0073e9SAndroid Build Coastguard Worker UCX_COMMIT=${_UCX_COMMIT} 234*da0073e9SAndroid Build Coastguard Worker UCC_COMMIT=${_UCC_COMMIT} 235*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 236*da0073e9SAndroid Build Coastguard Worker TRITON=yes 237*da0073e9SAndroid Build Coastguard Worker ;; 238*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-py3-clang10-onnx) 239*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 240*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=10 241*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 242*da0073e9SAndroid Build Coastguard Worker DB=yes 243*da0073e9SAndroid Build Coastguard Worker VISION=yes 244*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 245*da0073e9SAndroid Build Coastguard Worker ONNX=yes 246*da0073e9SAndroid Build Coastguard Worker ;; 247*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-py3-clang9-android-ndk-r21e) 248*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 249*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=9 250*da0073e9SAndroid Build Coastguard Worker LLVMDEV=yes 251*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 252*da0073e9SAndroid Build Coastguard Worker ANDROID=yes 253*da0073e9SAndroid Build Coastguard Worker ANDROID_NDK_VERSION=r21e 254*da0073e9SAndroid Build Coastguard Worker GRADLE_VERSION=6.8.3 255*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.9.0 256*da0073e9SAndroid Build Coastguard Worker ;; 257*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-py3.9-clang10) 258*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 259*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=10 260*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 261*da0073e9SAndroid Build Coastguard Worker DB=yes 262*da0073e9SAndroid Build Coastguard Worker VISION=yes 263*da0073e9SAndroid Build Coastguard Worker VULKAN_SDK_VERSION=1.2.162.1 264*da0073e9SAndroid Build Coastguard Worker SWIFTSHADER=yes 265*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 266*da0073e9SAndroid Build Coastguard Worker TRITON=yes 267*da0073e9SAndroid Build Coastguard Worker ;; 268*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-py3.11-clang10) 269*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.11 270*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=10 271*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 272*da0073e9SAndroid Build Coastguard Worker DB=yes 273*da0073e9SAndroid Build Coastguard Worker VISION=yes 274*da0073e9SAndroid Build Coastguard Worker VULKAN_SDK_VERSION=1.2.162.1 275*da0073e9SAndroid Build Coastguard Worker SWIFTSHADER=yes 276*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 277*da0073e9SAndroid Build Coastguard Worker TRITON=yes 278*da0073e9SAndroid Build Coastguard Worker ;; 279*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-py3.9-gcc9) 280*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 281*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 282*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 283*da0073e9SAndroid Build Coastguard Worker DB=yes 284*da0073e9SAndroid Build Coastguard Worker VISION=yes 285*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 286*da0073e9SAndroid Build Coastguard Worker TRITON=yes 287*da0073e9SAndroid Build Coastguard Worker ;; 288*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-rocm-n-1-py3) 289*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 290*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 291*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 292*da0073e9SAndroid Build Coastguard Worker DB=yes 293*da0073e9SAndroid Build Coastguard Worker VISION=yes 294*da0073e9SAndroid Build Coastguard Worker ROCM_VERSION=6.1 295*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.9.0 296*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 297*da0073e9SAndroid Build Coastguard Worker TRITON=yes 298*da0073e9SAndroid Build Coastguard Worker ;; 299*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-rocm-n-py3) 300*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 301*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=9 302*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 303*da0073e9SAndroid Build Coastguard Worker DB=yes 304*da0073e9SAndroid Build Coastguard Worker VISION=yes 305*da0073e9SAndroid Build Coastguard Worker ROCM_VERSION=6.2 306*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.9.0 307*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 308*da0073e9SAndroid Build Coastguard Worker TRITON=yes 309*da0073e9SAndroid Build Coastguard Worker ;; 310*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-xpu-2024.0-py3) 311*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 312*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 313*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 314*da0073e9SAndroid Build Coastguard Worker DB=yes 315*da0073e9SAndroid Build Coastguard Worker VISION=yes 316*da0073e9SAndroid Build Coastguard Worker XPU_VERSION=0.5 317*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.9.0 318*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 319*da0073e9SAndroid Build Coastguard Worker TRITON=yes 320*da0073e9SAndroid Build Coastguard Worker ;; 321*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks) 322*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 323*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 324*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 325*da0073e9SAndroid Build Coastguard Worker DB=yes 326*da0073e9SAndroid Build Coastguard Worker VISION=yes 327*da0073e9SAndroid Build Coastguard Worker KATEX=yes 328*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 329*da0073e9SAndroid Build Coastguard Worker TRITON=yes 330*da0073e9SAndroid Build Coastguard Worker DOCS=yes 331*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 332*da0073e9SAndroid Build Coastguard Worker ;; 333*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-clang12) 334*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 335*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=11.8 336*da0073e9SAndroid Build Coastguard Worker CUDNN_VERSION=9 337*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=12 338*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 339*da0073e9SAndroid Build Coastguard Worker DB=yes 340*da0073e9SAndroid Build Coastguard Worker VISION=yes 341*da0073e9SAndroid Build Coastguard Worker TRITON=yes 342*da0073e9SAndroid Build Coastguard Worker ;; 343*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3-clang12-asan) 344*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 345*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=12 346*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 347*da0073e9SAndroid Build Coastguard Worker DB=yes 348*da0073e9SAndroid Build Coastguard Worker VISION=yes 349*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 350*da0073e9SAndroid Build Coastguard Worker TRITON=yes 351*da0073e9SAndroid Build Coastguard Worker ;; 352*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3-clang15-asan) 353*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 354*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=15 355*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 356*da0073e9SAndroid Build Coastguard Worker VISION=yes 357*da0073e9SAndroid Build Coastguard Worker ;; 358*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3.9-gcc11) 359*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 360*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 361*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 362*da0073e9SAndroid Build Coastguard Worker DB=yes 363*da0073e9SAndroid Build Coastguard Worker VISION=yes 364*da0073e9SAndroid Build Coastguard Worker KATEX=yes 365*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 366*da0073e9SAndroid Build Coastguard Worker TRITON=yes 367*da0073e9SAndroid Build Coastguard Worker DOCS=yes 368*da0073e9SAndroid Build Coastguard Worker UNINSTALL_DILL=yes 369*da0073e9SAndroid Build Coastguard Worker ;; 370*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3-clang12-executorch) 371*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 372*da0073e9SAndroid Build Coastguard Worker CLANG_VERSION=12 373*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 374*da0073e9SAndroid Build Coastguard Worker EXECUTORCH=yes 375*da0073e9SAndroid Build Coastguard Worker ;; 376*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-py3.12-halide) 377*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=12.4 378*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.12 379*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 380*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 381*da0073e9SAndroid Build Coastguard Worker HALIDE=yes 382*da0073e9SAndroid Build Coastguard Worker ;; 383*da0073e9SAndroid Build Coastguard Worker pytorch-linux-focal-linter) 384*da0073e9SAndroid Build Coastguard Worker # TODO: Use 3.9 here because of this issue https://github.com/python/mypy/issues/13627. 385*da0073e9SAndroid Build Coastguard Worker # We will need to update mypy version eventually, but that's for another day. The task 386*da0073e9SAndroid Build Coastguard Worker # would be to upgrade mypy to 1.0.0 with Python 3.11 387*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 388*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 389*da0073e9SAndroid Build Coastguard Worker ;; 390*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-linter) 391*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.9 392*da0073e9SAndroid Build Coastguard Worker CUDA_VERSION=11.8 393*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 394*da0073e9SAndroid Build Coastguard Worker ;; 395*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-aarch64-py3.10-gcc11) 396*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 397*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 398*da0073e9SAndroid Build Coastguard Worker ACL=yes 399*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 400*da0073e9SAndroid Build Coastguard Worker DB=yes 401*da0073e9SAndroid Build Coastguard Worker VISION=yes 402*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 403*da0073e9SAndroid Build Coastguard Worker # snadampal: skipping sccache due to the following issue 404*da0073e9SAndroid Build Coastguard Worker # https://github.com/pytorch/pytorch/issues/121559 405*da0073e9SAndroid Build Coastguard Worker SKIP_SCCACHE_INSTALL=yes 406*da0073e9SAndroid Build Coastguard Worker # snadampal: skipping llvm src build install because the current version 407*da0073e9SAndroid Build Coastguard Worker # from pytorch/llvm:9.0.1 is x86 specific 408*da0073e9SAndroid Build Coastguard Worker SKIP_LLVM_SRC_BUILD_INSTALL=yes 409*da0073e9SAndroid Build Coastguard Worker ;; 410*da0073e9SAndroid Build Coastguard Worker pytorch-linux-jammy-aarch64-py3.10-gcc11-inductor-benchmarks) 411*da0073e9SAndroid Build Coastguard Worker ANACONDA_PYTHON_VERSION=3.10 412*da0073e9SAndroid Build Coastguard Worker GCC_VERSION=11 413*da0073e9SAndroid Build Coastguard Worker ACL=yes 414*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 415*da0073e9SAndroid Build Coastguard Worker DB=yes 416*da0073e9SAndroid Build Coastguard Worker VISION=yes 417*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 418*da0073e9SAndroid Build Coastguard Worker # snadampal: skipping sccache due to the following issue 419*da0073e9SAndroid Build Coastguard Worker # https://github.com/pytorch/pytorch/issues/121559 420*da0073e9SAndroid Build Coastguard Worker SKIP_SCCACHE_INSTALL=yes 421*da0073e9SAndroid Build Coastguard Worker # snadampal: skipping llvm src build install because the current version 422*da0073e9SAndroid Build Coastguard Worker # from pytorch/llvm:9.0.1 is x86 specific 423*da0073e9SAndroid Build Coastguard Worker SKIP_LLVM_SRC_BUILD_INSTALL=yes 424*da0073e9SAndroid Build Coastguard Worker INDUCTOR_BENCHMARKS=yes 425*da0073e9SAndroid Build Coastguard Worker ;; 426*da0073e9SAndroid Build Coastguard Worker *) 427*da0073e9SAndroid Build Coastguard Worker # Catch-all for builds that are not hardcoded. 428*da0073e9SAndroid Build Coastguard Worker PROTOBUF=yes 429*da0073e9SAndroid Build Coastguard Worker DB=yes 430*da0073e9SAndroid Build Coastguard Worker VISION=yes 431*da0073e9SAndroid Build Coastguard Worker echo "image '$image' did not match an existing build configuration" 432*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *py* ]]; then 433*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name py ANACONDA_PYTHON_VERSION 434*da0073e9SAndroid Build Coastguard Worker fi 435*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *cuda* ]]; then 436*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name cuda CUDA_VERSION 437*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name cudnn CUDNN_VERSION 438*da0073e9SAndroid Build Coastguard Worker fi 439*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *rocm* ]]; then 440*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name rocm ROCM_VERSION 441*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.9.0 442*da0073e9SAndroid Build Coastguard Worker TRITON=yes 443*da0073e9SAndroid Build Coastguard Worker # To ensure that any ROCm config will build using conda cmake 444*da0073e9SAndroid Build Coastguard Worker # and thus have LAPACK/MKL enabled 445*da0073e9SAndroid Build Coastguard Worker CONDA_CMAKE=yes 446*da0073e9SAndroid Build Coastguard Worker fi 447*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *centos7* ]]; then 448*da0073e9SAndroid Build Coastguard Worker NINJA_VERSION=1.10.2 449*da0073e9SAndroid Build Coastguard Worker fi 450*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *gcc* ]]; then 451*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name gcc GCC_VERSION 452*da0073e9SAndroid Build Coastguard Worker fi 453*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *clang* ]]; then 454*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name clang CLANG_VERSION 455*da0073e9SAndroid Build Coastguard Worker fi 456*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *devtoolset* ]]; then 457*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name devtoolset DEVTOOLSET_VERSION 458*da0073e9SAndroid Build Coastguard Worker fi 459*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *glibc* ]]; then 460*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name glibc GLIBC_VERSION 461*da0073e9SAndroid Build Coastguard Worker fi 462*da0073e9SAndroid Build Coastguard Worker if [[ "$image" == *cmake* ]]; then 463*da0073e9SAndroid Build Coastguard Worker extract_version_from_image_name cmake CMAKE_VERSION 464*da0073e9SAndroid Build Coastguard Worker fi 465*da0073e9SAndroid Build Coastguard Worker ;; 466*da0073e9SAndroid Build Coastguard Workeresac 467*da0073e9SAndroid Build Coastguard Worker 468*da0073e9SAndroid Build Coastguard Workertmp_tag=$(basename "$(mktemp -u)" | tr '[:upper:]' '[:lower:]') 469*da0073e9SAndroid Build Coastguard Worker 470*da0073e9SAndroid Build Coastguard Worker#when using cudnn version 8 install it separately from cuda 471*da0073e9SAndroid Build Coastguard Workerif [[ "$image" == *cuda* && ${OS} == "ubuntu" ]]; then 472*da0073e9SAndroid Build Coastguard Worker IMAGE_NAME="nvidia/cuda:${CUDA_VERSION}-cudnn${CUDNN_VERSION}-devel-ubuntu${UBUNTU_VERSION}" 473*da0073e9SAndroid Build Coastguard Worker if [[ ${CUDNN_VERSION} == 9 ]]; then 474*da0073e9SAndroid Build Coastguard Worker IMAGE_NAME="nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION}" 475*da0073e9SAndroid Build Coastguard Worker fi 476*da0073e9SAndroid Build Coastguard Workerfi 477*da0073e9SAndroid Build Coastguard Worker 478*da0073e9SAndroid Build Coastguard Worker# Build image 479*da0073e9SAndroid Build Coastguard Workerdocker build \ 480*da0073e9SAndroid Build Coastguard Worker --no-cache \ 481*da0073e9SAndroid Build Coastguard Worker --progress=plain \ 482*da0073e9SAndroid Build Coastguard Worker --build-arg "BUILD_ENVIRONMENT=${image}" \ 483*da0073e9SAndroid Build Coastguard Worker --build-arg "PROTOBUF=${PROTOBUF:-}" \ 484*da0073e9SAndroid Build Coastguard Worker --build-arg "LLVMDEV=${LLVMDEV:-}" \ 485*da0073e9SAndroid Build Coastguard Worker --build-arg "DB=${DB:-}" \ 486*da0073e9SAndroid Build Coastguard Worker --build-arg "VISION=${VISION:-}" \ 487*da0073e9SAndroid Build Coastguard Worker --build-arg "UBUNTU_VERSION=${UBUNTU_VERSION}" \ 488*da0073e9SAndroid Build Coastguard Worker --build-arg "CENTOS_VERSION=${CENTOS_VERSION}" \ 489*da0073e9SAndroid Build Coastguard Worker --build-arg "DEVTOOLSET_VERSION=${DEVTOOLSET_VERSION}" \ 490*da0073e9SAndroid Build Coastguard Worker --build-arg "GLIBC_VERSION=${GLIBC_VERSION}" \ 491*da0073e9SAndroid Build Coastguard Worker --build-arg "CLANG_VERSION=${CLANG_VERSION}" \ 492*da0073e9SAndroid Build Coastguard Worker --build-arg "ANACONDA_PYTHON_VERSION=${ANACONDA_PYTHON_VERSION}" \ 493*da0073e9SAndroid Build Coastguard Worker --build-arg "GCC_VERSION=${GCC_VERSION}" \ 494*da0073e9SAndroid Build Coastguard Worker --build-arg "CUDA_VERSION=${CUDA_VERSION}" \ 495*da0073e9SAndroid Build Coastguard Worker --build-arg "CUDNN_VERSION=${CUDNN_VERSION}" \ 496*da0073e9SAndroid Build Coastguard Worker --build-arg "TENSORRT_VERSION=${TENSORRT_VERSION}" \ 497*da0073e9SAndroid Build Coastguard Worker --build-arg "ANDROID=${ANDROID}" \ 498*da0073e9SAndroid Build Coastguard Worker --build-arg "ANDROID_NDK=${ANDROID_NDK_VERSION}" \ 499*da0073e9SAndroid Build Coastguard Worker --build-arg "GRADLE_VERSION=${GRADLE_VERSION}" \ 500*da0073e9SAndroid Build Coastguard Worker --build-arg "VULKAN_SDK_VERSION=${VULKAN_SDK_VERSION}" \ 501*da0073e9SAndroid Build Coastguard Worker --build-arg "SWIFTSHADER=${SWIFTSHADER}" \ 502*da0073e9SAndroid Build Coastguard Worker --build-arg "CMAKE_VERSION=${CMAKE_VERSION:-}" \ 503*da0073e9SAndroid Build Coastguard Worker --build-arg "NINJA_VERSION=${NINJA_VERSION:-}" \ 504*da0073e9SAndroid Build Coastguard Worker --build-arg "KATEX=${KATEX:-}" \ 505*da0073e9SAndroid Build Coastguard Worker --build-arg "ROCM_VERSION=${ROCM_VERSION:-}" \ 506*da0073e9SAndroid Build Coastguard Worker --build-arg "PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH:-gfx906;gfx90a}" \ 507*da0073e9SAndroid Build Coastguard Worker --build-arg "IMAGE_NAME=${IMAGE_NAME}" \ 508*da0073e9SAndroid Build Coastguard Worker --build-arg "UCX_COMMIT=${UCX_COMMIT}" \ 509*da0073e9SAndroid Build Coastguard Worker --build-arg "UCC_COMMIT=${UCC_COMMIT}" \ 510*da0073e9SAndroid Build Coastguard Worker --build-arg "CONDA_CMAKE=${CONDA_CMAKE}" \ 511*da0073e9SAndroid Build Coastguard Worker --build-arg "TRITON=${TRITON}" \ 512*da0073e9SAndroid Build Coastguard Worker --build-arg "ONNX=${ONNX}" \ 513*da0073e9SAndroid Build Coastguard Worker --build-arg "DOCS=${DOCS}" \ 514*da0073e9SAndroid Build Coastguard Worker --build-arg "INDUCTOR_BENCHMARKS=${INDUCTOR_BENCHMARKS}" \ 515*da0073e9SAndroid Build Coastguard Worker --build-arg "EXECUTORCH=${EXECUTORCH}" \ 516*da0073e9SAndroid Build Coastguard Worker --build-arg "HALIDE=${HALIDE}" \ 517*da0073e9SAndroid Build Coastguard Worker --build-arg "XPU_VERSION=${XPU_VERSION}" \ 518*da0073e9SAndroid Build Coastguard Worker --build-arg "ACL=${ACL:-}" \ 519*da0073e9SAndroid Build Coastguard Worker --build-arg "SKIP_SCCACHE_INSTALL=${SKIP_SCCACHE_INSTALL:-}" \ 520*da0073e9SAndroid Build Coastguard Worker --build-arg "SKIP_LLVM_SRC_BUILD_INSTALL=${SKIP_LLVM_SRC_BUILD_INSTALL:-}" \ 521*da0073e9SAndroid Build Coastguard Worker -f $(dirname ${DOCKERFILE})/Dockerfile \ 522*da0073e9SAndroid Build Coastguard Worker -t "$tmp_tag" \ 523*da0073e9SAndroid Build Coastguard Worker "$@" \ 524*da0073e9SAndroid Build Coastguard Worker . 525*da0073e9SAndroid Build Coastguard Worker 526*da0073e9SAndroid Build Coastguard Worker# NVIDIA dockers for RC releases use tag names like `11.0-cudnn9-devel-ubuntu18.04-rc`, 527*da0073e9SAndroid Build Coastguard Worker# for this case we will set UBUNTU_VERSION to `18.04-rc` so that the Dockerfile could 528*da0073e9SAndroid Build Coastguard Worker# find the correct image. As a result, here we have to replace the 529*da0073e9SAndroid Build Coastguard Worker# "$UBUNTU_VERSION" == "18.04-rc" 530*da0073e9SAndroid Build Coastguard Worker# with 531*da0073e9SAndroid Build Coastguard Worker# "$UBUNTU_VERSION" == "18.04" 532*da0073e9SAndroid Build Coastguard WorkerUBUNTU_VERSION=$(echo ${UBUNTU_VERSION} | sed 's/-rc$//') 533*da0073e9SAndroid Build Coastguard Worker 534*da0073e9SAndroid Build Coastguard Workerfunction drun() { 535*da0073e9SAndroid Build Coastguard Worker docker run --rm "$tmp_tag" $* 536*da0073e9SAndroid Build Coastguard Worker} 537*da0073e9SAndroid Build Coastguard Worker 538*da0073e9SAndroid Build Coastguard Workerif [[ "$OS" == "ubuntu" ]]; then 539*da0073e9SAndroid Build Coastguard Worker 540*da0073e9SAndroid Build Coastguard Worker if !(drun lsb_release -a 2>&1 | grep -qF Ubuntu); then 541*da0073e9SAndroid Build Coastguard Worker echo "OS=ubuntu, but:" 542*da0073e9SAndroid Build Coastguard Worker drun lsb_release -a 543*da0073e9SAndroid Build Coastguard Worker exit 1 544*da0073e9SAndroid Build Coastguard Worker fi 545*da0073e9SAndroid Build Coastguard Worker if !(drun lsb_release -a 2>&1 | grep -qF "$UBUNTU_VERSION"); then 546*da0073e9SAndroid Build Coastguard Worker echo "UBUNTU_VERSION=$UBUNTU_VERSION, but:" 547*da0073e9SAndroid Build Coastguard Worker drun lsb_release -a 548*da0073e9SAndroid Build Coastguard Worker exit 1 549*da0073e9SAndroid Build Coastguard Worker fi 550*da0073e9SAndroid Build Coastguard Workerfi 551*da0073e9SAndroid Build Coastguard Worker 552*da0073e9SAndroid Build Coastguard Workerif [ -n "$ANACONDA_PYTHON_VERSION" ]; then 553*da0073e9SAndroid Build Coastguard Worker if !(drun python --version 2>&1 | grep -qF "Python $ANACONDA_PYTHON_VERSION"); then 554*da0073e9SAndroid Build Coastguard Worker echo "ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION, but:" 555*da0073e9SAndroid Build Coastguard Worker drun python --version 556*da0073e9SAndroid Build Coastguard Worker exit 1 557*da0073e9SAndroid Build Coastguard Worker fi 558*da0073e9SAndroid Build Coastguard Workerfi 559*da0073e9SAndroid Build Coastguard Worker 560*da0073e9SAndroid Build Coastguard Workerif [ -n "$GCC_VERSION" ]; then 561*da0073e9SAndroid Build Coastguard Worker if !(drun gcc --version 2>&1 | grep -q " $GCC_VERSION\\W"); then 562*da0073e9SAndroid Build Coastguard Worker echo "GCC_VERSION=$GCC_VERSION, but:" 563*da0073e9SAndroid Build Coastguard Worker drun gcc --version 564*da0073e9SAndroid Build Coastguard Worker exit 1 565*da0073e9SAndroid Build Coastguard Worker fi 566*da0073e9SAndroid Build Coastguard Workerfi 567*da0073e9SAndroid Build Coastguard Worker 568*da0073e9SAndroid Build Coastguard Workerif [ -n "$CLANG_VERSION" ]; then 569*da0073e9SAndroid Build Coastguard Worker if !(drun clang --version 2>&1 | grep -qF "clang version $CLANG_VERSION"); then 570*da0073e9SAndroid Build Coastguard Worker echo "CLANG_VERSION=$CLANG_VERSION, but:" 571*da0073e9SAndroid Build Coastguard Worker drun clang --version 572*da0073e9SAndroid Build Coastguard Worker exit 1 573*da0073e9SAndroid Build Coastguard Worker fi 574*da0073e9SAndroid Build Coastguard Workerfi 575*da0073e9SAndroid Build Coastguard Worker 576*da0073e9SAndroid Build Coastguard Workerif [ -n "$KATEX" ]; then 577*da0073e9SAndroid Build Coastguard Worker if !(drun katex --version); then 578*da0073e9SAndroid Build Coastguard Worker echo "KATEX=$KATEX, but:" 579*da0073e9SAndroid Build Coastguard Worker drun katex --version 580*da0073e9SAndroid Build Coastguard Worker exit 1 581*da0073e9SAndroid Build Coastguard Worker fi 582*da0073e9SAndroid Build Coastguard Workerfi 583