install.sh 2.44 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# [2021/06/22 Temporary workaround] Disabling the original installation
# The orignal, conda-based instartion is working for GPUs, but not for CPUs
# For CPUs we use pip-based installation
# if [ -z "${CUDA_VERSION:-}" ] ; then
#     if [ "${os}" == MacOSX ] ; then
#         cudatoolkit=''
#     else
#         cudatoolkit="cpuonly"
#     fi
# else
#     version="$(python -c "print('.'.join(\"${CUDA_VERSION}\".split('.')[:2]))")"
#     cudatoolkit="cudatoolkit=${version}"
# fi
# printf "Installing PyTorch with %s\n" "${cudatoolkit}"
# (
#     set -x
#     conda install ${CONDA_CHANNEL_FLAGS:-} -y -c "pytorch-${UPLOAD_CHANNEL}" "pytorch-${UPLOAD_CHANNEL}::pytorch" ${cudatoolkit}
# )

if [ "${os}" == MacOSX ] || [ -z "${CUDA_VERSION:-}" ] ; then
    device="cpu"
moto's avatar
moto committed
47
else
48
    device=cu"$(python -c "print(''.join(\"${CUDA_VERSION}\".split('.')[:2]))")"
moto's avatar
moto committed
49
fi
50
51
52
53
54
printf "Installing PyTorch with %s\n" "${device}"
(
    set -x
    pip install --pre torch==1.10.0.dev20210618 -f "https://download.pytorch.org/whl/nightly/${device}/torch_nightly.html"
)
55

moto's avatar
moto committed
56
# 2. Install torchaudio
57
printf "* Installing torchaudio\n"
moto's avatar
moto committed
58
git submodule update --init --recursive
59
BUILD_TRANSDUCER=1 BUILD_SOX=1 python setup.py install
moto's avatar
moto committed
60
61
62

# 3. Install Test tools
printf "* Installing test tools\n"
Eli Uriegas's avatar
Eli Uriegas committed
63
64
65
66
67
NUMBA_DEV_CHANNEL=""
if [[ "$(python --version)" = *3.9* ]]; then
    # Numba isn't available for Python 3.9 except on the numba dev channel and building from source fails
    # See https://github.com/librosa/librosa/issues/1270#issuecomment-759065048
    NUMBA_DEV_CHANNEL="-c numba/label/dev"
moto's avatar
moto committed
68
fi
Eli Uriegas's avatar
Eli Uriegas committed
69
70
71
72
# 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'
73
    pip install kaldi-io SoundFile coverage pytest pytest-cov scipy transformers
Eli Uriegas's avatar
Eli Uriegas committed
74
)
moto's avatar
moto committed
75
76
77
78
79
# Install fairseq
git clone https://github.com/pytorch/fairseq
cd fairseq
git checkout e6eddd80
pip install .