cuda.sh 4.59 KB
Newer Older
rusty1s's avatar
rusty1s committed
1
2
#!/bin/bash

rusty1s's avatar
rusty1s committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "$IDX" = "cpu" ]; then
  export TOOLKIT=cpuonly
fi

if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "$IDX" = "cu92" ]; then
  export CUDA_SHORT=9.2
  export CUDA=9.2.148-1
  export UBUNTU_VERSION=ubuntu1604
  export CUBLAS=cuda-cublas-dev-9-2
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "$IDX" = "cu100" ]; then
  export CUDA_SHORT=10.0
  export CUDA=10.0.130-1
  export UBUNTU_VERSION=ubuntu1804
  export CUBLAS=cuda-cublas-dev-10-0
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "$IDX" = "cu101" ]; then
  export IDX=cu101
  export CUDA_SHORT=10.1
  export CUDA=10.1.105-1
  export UBUNTU_VERSION=ubuntu1804
  export CUBLAS=libcublas-dev
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

rusty1s's avatar
rusty1s committed
32
33
34
35
36
37
if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "$IDX" = "cpu" ]; then
  export TOOLKIT=cpuonly
fi

if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "$IDX" = "cu92" ]; then
  export CUDA_SHORT=9.2
rusty1s's avatar
fix url  
rusty1s committed
38
39
  export CUDA_URL=https://developer.nvidia.com/compute/cuda/${CUDA_SHORT}/Prod2/local_installers2
  export CUDA_FILE=cuda_${CUDA_SHORT}.148_win10
rusty1s's avatar
rusty1s committed
40
41
42
43
44
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "$IDX" = "cu100" ]; then
  export CUDA_SHORT=10.0
rusty1s's avatar
fix url  
rusty1s committed
45
46
  export CUDA_URL=https://developer.nvidia.com/compute/cuda/${CUDA_SHORT}/Prod/local_installers
  export CUDA_FILE=cuda_${CUDA_SHORT}.130_411.31_win10
rusty1s's avatar
rusty1s committed
47
48
49
50
51
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "$IDX" = "cu101" ]; then
  export CUDA_SHORT=10.1
rusty1s's avatar
fix url  
rusty1s committed
52
53
  export CUDA_URL=https://developer.nvidia.com/compute/cuda/${CUDA_SHORT}/Prod/local_installers
  export CUDA_FILE=cuda_${CUDA_SHORT}.105_418.96_win10.exe
rusty1s's avatar
rusty1s committed
54
55
56
57
  export TOOLKIT="cudatoolkit=${CUDA_SHORT}"
fi

if [ "${TRAVIS_OS_NAME}" = "osx" ] && [ "$IDX" = "cpu" ]; then
rusty1s's avatar
rusty1s committed
58
59
60
  export TOOLKIT=""
fi

rusty1s's avatar
typos  
rusty1s committed
61
62
63
if [ "${IDX}" = "cpu" ]; then
  export FORCE_CPU=1
else
rusty1s's avatar
rusty1s committed
64
65
66
  export FORCE_CUDA=1
fi

rusty1s's avatar
rusty1s committed
67
68
69
# if [ "${IDX}" == "cu100" ] || [ "${IDX}" == "cu101" ]; then
#   export NVCC_FLAGS="-gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_50,code=compute_50"
# fi
rusty1s's avatar
rusty1s committed
70

rusty1s's avatar
rusty1s committed
71
72
73
# if [ "${IDX}" == "cu92" ]; then
#   export NVCC_FLAGS="-gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_50,code=compute_50"
# fi
rusty1s's avatar
rusty1s committed
74

rusty1s's avatar
update  
rusty1s committed
75
if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "${IDX}" != "cpu" ]; then
rusty1s's avatar
rusty1s committed
76
  INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb
rusty1s's avatar
rusty1s committed
77
  wget -nv "http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER}"
rusty1s's avatar
rusty1s committed
78
  sudo dpkg -i "${INSTALLER}"
rusty1s's avatar
rusty1s committed
79
  wget -nv "https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub"
rusty1s's avatar
rusty1s committed
80
81
  sudo apt-key add 7fa2af80.pub
  sudo apt update -qq
rusty1s's avatar
fix  
rusty1s committed
82
  sudo apt install -y "cuda-core-${CUDA_SHORT/./-}" "cuda-cudart-dev-${CUDA_SHORT/./-}" "${CUBLAS}" "cuda-cusparse-dev-${CUDA_SHORT/./-}"
rusty1s's avatar
rusty1s committed
83
  sudo apt clean
rusty1s's avatar
rusty1s committed
84
85
86
  CUDA_HOME=/usr/local/cuda-${CUDA_SHORT}
  LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
  PATH=${CUDA_HOME}/bin:${PATH}
rusty1s's avatar
rusty1s committed
87
88
  nvcc --version
fi
rusty1s's avatar
rusty1s committed
89

rusty1s's avatar
rusty1s committed
90
if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "${IDX}" != "cpu" ]; then
rusty1s's avatar
fix url  
rusty1s committed
91
  wget -nv "${CUDA_URL}/${CUDA_FILE}"
rusty1s's avatar
rusty1s committed
92
  PowerShell -Command "Start-Process -FilePath \"${CUDA_FILE}\" -ArgumentList \"-s nvcc_${CUDA_SHORT} cublas_dev_${CUDA_SHORT} cusparse_dev_${CUDA_SHORT}\" -Wait -NoNewWindow"
rusty1s's avatar
rusty1s committed
93
94
  CUDA_HOME=/c/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v${CUDA_SHORT}
  PATH=${CUDA_HOME}/bin:$PATH
rusty1s's avatar
rusty1s committed
95
  PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH
rusty1s's avatar
rusty1s committed
96
  nvcc --version
rusty1s's avatar
rusty1s committed
97
98
99
100
fi

# Fix Cuda9.2 on Windows: https://github.com/pytorch/pytorch/issues/6109
if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "${IDX}" = "cu92" ]; then
rusty1s's avatar
typo  
rusty1s committed
101
  cat -n "${CUDA_HOME}/include/crt/host_config.h"
rusty1s's avatar
fix  
rusty1s committed
102
  sed -i.bak -e '129,141d' "${CUDA_HOME}/include/crt/host_config.h"
rusty1s's avatar
typo  
rusty1s committed
103
  cat -n "${CUDA_HOME}/include/crt/host_config.h"
rusty1s's avatar
rusty1s committed
104
fi
rusty1s's avatar
rusty1s committed
105
106
107
108
109
110
111

# Fix "member may not be initialized" error on Windows: https://github.com/pytorch/pytorch/issues/27958
if [ "${TRAVIS_OS_NAME}" = "windows" ] && [ "${IDX}" != "cpu" ]; then
  sed -i.bak -e 's/constexpr/const/g' /c/tools/miniconda3/envs/test/lib/site-packages/torch/include/torch/csrc/jit/script/module.h
  sed -i.bak -e 's/constexpr/const/g' /c/tools/miniconda3/envs/test/lib/site-packages/torch/include/torch/csrc/jit/script/argument_spec.h
  sed -i.bak -e 's/return \*(this->value)/return \*((type\*)this->value)/g' /c/tools/miniconda3/envs/test/lib/site-packages/torch/include/pybind11/cast.h
fi