main
sh 54 lines 1.41 KB
Raw
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 # Usage: install_gdrcopy.sh <GDRCOPY_OS_VERSION> <GDRCOPY_CUDA_VERSION> <uuarch>
5 # uuarch must be "x64" or "aarch64"
6 # Optional: set GDRCOPY_VERSION to override the libgdrapi package version (default: 2.5.1-1)
7 # Requires: curl, apt-get, root privileges
8 if [[ $(id -u) -ne 0 ]]; then
9 echo "Must be run as root" >&2
10 exit 1
11 fi
12 if [[ $# -ne 3 ]]; then
13 echo "Usage: $0 <GDRCOPY_OS_VERSION> <GDRCOPY_CUDA_VERSION> <uuarch(x64|aarch64)>" >&2
14 exit 1
15 fi
16 OS_VER="$1"
17 CUDA_VER="$2"
18 UUARCH_RAW="$3"
19 # Normalize/validate arch
20 case "${UUARCH_RAW,,}" in
21 aarch64|arm64)
22 URL_ARCH="aarch64"
23 DEB_ARCH="arm64"
24 ;;
25 x64|x86_64|amd64)
26 URL_ARCH="x64"
27 DEB_ARCH="amd64"
28 ;;
29 *)
30 echo "Unsupported uuarch: ${UUARCH_RAW}. Use 'x64' or 'aarch64'." >&2
31 exit 1
32 ;;
33 esac
34
35 OS_VER_LOWER="$(tr '[:upper:]' '[:lower:]' <<<"$OS_VER")"
36 GDRCOPY_PKG_VER="${GDRCOPY_VERSION:-2.5.1-1}"
37
38 DEB_NAME="libgdrapi_${GDRCOPY_PKG_VER}_${DEB_ARCH}.${OS_VER}.deb"
39 BASE_URL="https://developer.download.nvidia.com/compute/redist/gdrcopy"
40 URL="${BASE_URL}/CUDA%20${CUDA_VER}/${OS_VER_LOWER}/${URL_ARCH}/${DEB_NAME}"
41
42 echo "Downloading: ${URL}"
43 TMPDIR="$(mktemp -d)"
44 trap 'rm -rf "${TMPDIR}"' EXIT
45
46 curl -fSL "${URL}" -o "${TMPDIR}/${DEB_NAME}"
47
48 export DEBIAN_FRONTEND=noninteractive
49 apt-get update
50 apt-get install -y "${TMPDIR}/${DEB_NAME}"
51 apt-get clean
52 rm -rf /var/lib/apt/lists/*
53
54 echo "Installed ${DEB_NAME}"