mirror of
				https://github.com/pytorch/pytorch.git
				synced 2025-11-04 16:04:58 +08:00 
			
		
		
		
	Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/16024 codemod with 'Yes to all': s/fwdproxy.any/fwdproxy/g in fbsource Reviewed By: maxgeorg Differential Revision: D13666336 fbshipit-source-id: a5a694d66efec5304a1c8c231d638441f88efe1d
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# This script installs CCache with CUDA support.
 | 
						|
# Example usage:
 | 
						|
#     ./ccache_setup.sh --path /installed/folder
 | 
						|
 | 
						|
set -e
 | 
						|
shopt -s expand_aliases
 | 
						|
 | 
						|
# Setup the proxy
 | 
						|
alias with_proxy="HTTPS_PROXY=http://fwdproxy:8080 HTTP_PROXY=http://fwdproxy:8080 FTP_PROXY=http://fwdproxy:8080 https_proxy=http://fwdproxy:8080 http_proxy=http://fwdproxy:8080 ftp_proxy=http://fwdproxy:8080 http_no_proxy='*.facebook.com|*.tfbnw.net|*.fb.com'"
 | 
						|
 | 
						|
# Parse options
 | 
						|
path="$HOME/ccache"
 | 
						|
force=false
 | 
						|
 | 
						|
while [[ $# -gt 0 ]]; do
 | 
						|
  case "$1" in
 | 
						|
    --path)
 | 
						|
      shift
 | 
						|
      path="$1"
 | 
						|
      path=$(realpath "$path")
 | 
						|
      ;;
 | 
						|
    --force)  # Force install
 | 
						|
      force=true
 | 
						|
      ;;
 | 
						|
    --help)
 | 
						|
      echo 'usage: ./ccache_setup.py --path /installed/folder [--force]'
 | 
						|
      exit 0
 | 
						|
      ;;
 | 
						|
    *)
 | 
						|
      echo "Invalid option: $1"
 | 
						|
      exit 1
 | 
						|
      ;;
 | 
						|
  esac
 | 
						|
  shift
 | 
						|
done
 | 
						|
 | 
						|
# Check whether you put nvcc in PATH
 | 
						|
set +e
 | 
						|
nvcc_path=$(which nvcc)
 | 
						|
if [[ -z "$nvcc_path" ]]; then
 | 
						|
  nvcc_path="/usr/local/cuda/bin/nvcc"
 | 
						|
  export PATH="/usr/local/cuda/bin:$PATH"
 | 
						|
fi
 | 
						|
set -e
 | 
						|
if [ ! -f "$nvcc_path" ] && ! $force; then
 | 
						|
  # shellcheck disable=SC2016
 | 
						|
  echo 'nvcc is not detected in $PATH'
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
echo "nvcc is detected at $nvcc_path"
 | 
						|
 | 
						|
if [ -f "$CUDA_NVCC_EXECUTABLE" ] && [[ "$CUDA_NVCC_EXECUTABLE" == *"ccache"* ]]; then  # Heuristic rule
 | 
						|
  if $CUDA_NVCC_EXECUTABLE --version; then
 | 
						|
    if ! $force; then
 | 
						|
      echo "CCache with nvcc support is already installed at $CUDA_NVCC_EXECUTABLE, please add --force"
 | 
						|
      exit 0
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
# Installing CCache
 | 
						|
echo "CCache will be installed at $path"
 | 
						|
if [ -e "$path" ]; then
 | 
						|
  mv --backup=t -T "$path" "${path}.old"
 | 
						|
fi
 | 
						|
 | 
						|
with_proxy git clone https://github.com/colesbury/ccache.git "$path" -b ccbin
 | 
						|
cd "$path"
 | 
						|
./autogen.sh
 | 
						|
./configure
 | 
						|
make install prefix="$path"
 | 
						|
 | 
						|
mkdir -p "$path/lib"
 | 
						|
mkdir -p "$path/cuda"
 | 
						|
ln -sf "$path/bin/ccache" "$path/lib/cc"
 | 
						|
ln -sf "$path/bin/ccache" "$path/lib/c++"
 | 
						|
ln -sf "$path/bin/ccache" "$path/lib/gcc"
 | 
						|
ln -sf "$path/bin/ccache" "$path/lib/g++"
 | 
						|
ln -sf "$path/bin/ccache" "$path/cuda/nvcc"
 | 
						|
"$path/bin/ccache" -M 25Gi
 | 
						|
 | 
						|
# Make sure the nvcc wrapped in CCache is runnable
 | 
						|
"$path/cuda/nvcc" --version
 | 
						|
echo 'Congrats! The CCache with nvcc support is installed!'
 | 
						|
echo -e "Please add the following lines to your bash init script:\\n"
 | 
						|
echo "################ Env Var for CCache with CUDA support ################"
 | 
						|
# shellcheck disable=SC2016
 | 
						|
echo 'export PATH="'"$path"'/lib:$PATH"'
 | 
						|
echo 'export CUDA_NVCC_EXECUTABLE="'"$path"'/cuda/nvcc"'
 | 
						|
echo '######################################################################'
 |