54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # https://developer.nvidia.com/cuda-toolkit-archive
 | |
| VERSIONS=()
 | |
| VERSIONS+=("https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux")
 | |
| VERSIONS+=("https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.168_418.67_linux.run")
 | |
| 
 | |
| HERE="$(dirname "$0")"
 | |
| 
 | |
| # shellcheck source=net/datacenter-node-install/utils.sh
 | |
| source "$HERE"/utils.sh
 | |
| 
 | |
| ensure_env || exit 1
 | |
| 
 | |
| set -xe
 | |
| 
 | |
| RUN_FILES=()
 | |
| FAILED=()
 | |
| for i in "${!VERSIONS[@]}"; do
 | |
|   URL=${VERSIONS[$i]}
 | |
|   RUN_FILE="$(basename "$URL")"
 | |
|   DEST="${HERE}/${RUN_FILE}"
 | |
|   if [[ -f "$DEST" ]]; then
 | |
|     RUN_FILES+=( "$DEST" )
 | |
|   else
 | |
|     echo -ne "Downloading ${RUN_FILE}:\t"
 | |
|     if wget --read-timeout=180 --tries=3 -O "$DEST" "$URL"; then
 | |
|       echo "OK"
 | |
|       RUN_FILES+=( "$DEST" )
 | |
|     else
 | |
|       echo "FAILED. Retrying..."
 | |
|       FAILED+=( "$URL" )
 | |
|     fi
 | |
|   fi
 | |
| done
 | |
| 
 | |
| if [[ 0 -ne ${#FAILED[@]} ]]; then
 | |
|   for f in "${FAILED[@]}"; do
 | |
|     echo "Failed to download required resource: $f"
 | |
|   done
 | |
|   echo "Please manually download the above resources, save them to \"${HERE}\" and rerun $0"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| apt update
 | |
| apt install -y gcc make dkms
 | |
| 
 | |
| for rf in "${RUN_FILES[@]}"; do
 | |
|   sh "$rf" --silent --driver --toolkit
 | |
| done
 | |
| 
 | |
| # Allow normal users to use CUDA profiler
 | |
| echo 'options nvidia "NVreg_RestrictProfilingToAdminUsers=0"' > /etc/modprobe.d/nvidia-enable-user-profiling.conf
 |