forked from deeplearning4j/deeplearning4j
-
Notifications
You must be signed in to change notification settings - Fork 0
/
change-cuda-versions.sh
executable file
·120 lines (100 loc) · 2.86 KB
/
change-cuda-versions.sh
1
2
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env bash
#
# /* ******************************************************************************
# *
# *
# * This program and the accompanying materials are made available under the
# * terms of the Apache License, Version 2.0 which is available at
# * https://www.apache.org/licenses/LICENSE-2.0.
# *
# * See the NOTICE file distributed with this work for additional
# * information regarding copyright ownership.
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# * License for the specific language governing permissions and limitations
# * under the License.
# *
# * SPDX-License-Identifier: Apache-2.0
# ******************************************************************************/
#
set -e
VALID_VERSIONS=( 9.2 10.0 10.1 10.2 11.0 11.1 11.2 11.4 11.6 11.8)
usage() {
echo "Usage: $(basename $0) [-h|--help] <cuda version to be used>
where :
-h| --help Display this help text
valid cuda version values : ${VALID_VERSIONS[*]}
" 1>&2
exit 1
}
if [[ ($# -ne 1) || ( $1 == "--help") || $1 == "-h" ]]; then
usage
fi
VERSION=$1
check_cuda_version() {
for i in ${VALID_VERSIONS[*]}; do [ $i = "$1" ] && return 0; done
echo "Invalid CUDA version: $1. Valid versions: ${VALID_VERSIONS[*]}" 1>&2
exit 1
}
check_cuda_version "$VERSION"
case $VERSION in
11.8)
VERSION2="8.6"
VERSION3="1.5.8"
;;
11.6)
VERSION2="8.3"
VERSION3="1.5.7"
;;
11.4)
VERSION2="8.2"
VERSION3="1.5.6"
;;
11.2)
VERSION2="8.1"
VERSION3="1.5.5"
;;
11.1)
VERSION2="8.0"
VERSION3="1.5.5"
;;
11.0)
VERSION2="8.0"
VERSION3="1.5.4"
;;
10.2)
VERSION2="8.2"
VERSION3="1.5.6"
;;
10.1)
VERSION2="7.6"
VERSION3="1.5.2"
;;
10.0)
VERSION2="7.4"
VERSION3="1.5"
;;
9.2)
VERSION2="7.2"
VERSION3="1.5"
;;
esac
sed_i() {
if test -f "$2" && test -f "$1"; then
sed -i "" -e "$1" "$2" > "$2.tmp" && mv "$2.tmp" "$2"
fi
}
export -f sed_i
echo "Updating CUDA versions in pom.xml files to CUDA $1";
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
BASEDIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
cd "${BASEDIR}/"contrib/version-updater
mvn clean compile
mvn exec:java -Dexec.args="--root-dir=${BASEDIR} --cuda-version=${VERSION} --cudnn-version=${VERSION2} --javacpp-version=${VERSION3} --update-type=cuda"
echo "Done updating CUDA versions.";