install.sh 2.87 KB
Newer Older
1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash

unset PYTORCH_VERSION
# For unittest, nightly PyTorch is used as the following section,
# so no need to set PYTORCH_VERSION.
# In fact, keeping PYTORCH_VERSION forces us to hardcode PyTorch version in config.

set -e

moto's avatar
moto committed
10
11
12
root_dir="$(git rev-parse --show-toplevel)"
conda_dir="${root_dir}/conda"
env_dir="${root_dir}/env"
13

moto's avatar
moto committed
14
15
16
17
18
19
20
21
22
23
24
25
cd "${root_dir}"

case "$(uname -s)" in
    Darwin*) os=MacOSX;;
    *) os=Linux
esac

# 0. Activate conda env
eval "$("${conda_dir}/bin/conda" shell.bash hook)"
conda activate "${env_dir}"

# 1. Install PyTorch
moto's avatar
moto committed
26
27
28
29
30
31
if [ -z "${CUDA_VERSION:-}" ] ; then
    if [ "${os}" == MacOSX ] ; then
        cudatoolkit=''
    else
        cudatoolkit="cpuonly"
    fi
32
    version="cpu"
moto's avatar
moto committed
33
else
moto's avatar
moto committed
34
    version="$(python -c "print('.'.join(\"${CUDA_VERSION}\".split('.')[:2]))")"
35
36
37
38
39
40
41
42

    export CUDATOOLKIT_CHANNEL="nvidia"
    cuda_toolkit_pckg="cudatoolkit"
    if [[ "$CU_VERSION" == cu116 ]]; then
        export CUDATOOLKIT_CHANNEL="nvidia/label/cuda-11.6.2"
        cuda_toolkit_pckg="cuda"
    fi
    cudatoolkit="${cuda_toolkit_pckg}=${version}"
moto's avatar
moto committed
43
fi
44

moto's avatar
moto committed
45
printf "Installing PyTorch with %s\n" "${cudatoolkit}"
46
(
47
48
49
50
    if [[ "$(python --version)" = *3.10* ]]; then
        CONDA_CHANNEL_FLAGS="-c conda-forge"
    fi

Nikita Shulga's avatar
Nikita Shulga committed
51
52
53
54
    if [ "${os}" == MacOSX ] ; then
      # TODO: this can be removed as soon as linking issue could be resolved
      #  see https://github.com/pytorch/pytorch/issues/62424 from details
      MKL_CONSTRAINT='mkl==2021.2.0'
55
      pytorch_build=pytorch
Nikita Shulga's avatar
Nikita Shulga committed
56
57
    else
      MKL_CONSTRAINT=''
58
      pytorch_build="pytorch[build="*${version}*"]"
Nikita Shulga's avatar
Nikita Shulga committed
59
    fi
60
    set -x
61
62
63
64
65
66

    if [[ -z "$cudatoolkit" ]]; then
        conda install ${CONDA_CHANNEL_FLAGS:-} -y -c "pytorch-${UPLOAD_CHANNEL}" $MKL_CONSTRAINT "pytorch-${UPLOAD_CHANNEL}::${pytorch_build}"
    else
        conda install ${CONDA_CHANNEL_FLAGS:-} -y -c "pytorch-${UPLOAD_CHANNEL}" $MKL_CONSTRAINT "pytorch-${UPLOAD_CHANNEL}::${pytorch_build}" "$CUDATOOLKIT_CHANNEL::${cudatoolkit}"
    fi
67
)
68

moto's avatar
moto committed
69
# 2. Install torchaudio
70
printf "* Installing torchaudio\n"
71
python setup.py install
moto's avatar
moto committed
72
73
74

# 3. Install Test tools
printf "* Installing test tools\n"
Eli Uriegas's avatar
Eli Uriegas committed
75
NUMBA_DEV_CHANNEL=""
76
77
if [[ "$(python --version)" = *3.9* || "$(python --version)" = *3.10* ]]; then
    # Numba isn't available for Python 3.9 and 3.10 except on the numba dev channel and building from source fails
Eli Uriegas's avatar
Eli Uriegas committed
78
79
    # See https://github.com/librosa/librosa/issues/1270#issuecomment-759065048
    NUMBA_DEV_CHANNEL="-c numba/label/dev"
moto's avatar
moto committed
80
fi
Eli Uriegas's avatar
Eli Uriegas committed
81
82
83
84
# Note: installing librosa via pip fail because it will try to compile numba.
(
    set -x
    conda install -y -c conda-forge ${NUMBA_DEV_CHANNEL} 'librosa>=0.8.0' parameterized 'requests>=2.20'
moto's avatar
moto committed
85
    pip install kaldi-io SoundFile coverage pytest pytest-cov 'scipy==1.7.3' transformers expecttest unidecode inflect Pillow sentencepiece pytorch-lightning 'protobuf<4.21.0'
Eli Uriegas's avatar
Eli Uriegas committed
86
)
moto's avatar
moto committed
87
88
89
# Install fairseq
git clone https://github.com/pytorch/fairseq
cd fairseq
90
git checkout e47a4c8
moto's avatar
moto committed
91
pip install .