mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-07-31 10:52:50 +08:00
Summary: This is not actually needed and is causing a conda-forge confusion to do with python_abi - which needs users to have `-c conda-forge` when they install pytorch3d. Reviewed By: patricklabatut Differential Revision: D59587930 fbshipit-source-id: 961ae13a62e1b2b2ce6d8781db38bd97eca69e65
164 lines
7.6 KiB
Bash
164 lines
7.6 KiB
Bash
#!/bin/bash
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the BSD-style license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
set -ex
|
|
|
|
conda init bash
|
|
# shellcheck source=/dev/null
|
|
source ~/.bashrc
|
|
|
|
cd /inside
|
|
VERSION=$(python -c "exec(open('pytorch3d/__init__.py').read()); print(__version__)")
|
|
|
|
export BUILD_VERSION=$VERSION
|
|
export FORCE_CUDA=1
|
|
export MAX_JOBS=8
|
|
export CONDA_PKGS_DIRS=/conda_cache
|
|
|
|
if false
|
|
then
|
|
# We used to have to do this for old versions of CUDA
|
|
wget --no-verbose https://github.com/NVIDIA/cub/archive/1.10.0.tar.gz
|
|
tar xzf 1.10.0.tar.gz
|
|
CUB_HOME=$(realpath ./cub-1.10.0)
|
|
export CUB_HOME
|
|
echo "CUB_HOME is now $CUB_HOME"
|
|
fi
|
|
|
|
# As a rule, we want to build for any combination of dependencies which is supported by
|
|
# PyTorch3D and not older than the current Google Colab set up.
|
|
|
|
PYTHON_VERSIONS="3.8 3.9 3.10"
|
|
# the keys are pytorch versions
|
|
declare -A CONDA_CUDA_VERSIONS=(
|
|
# ["1.11.0"]="cu113"
|
|
# ["1.12.0"]="cu113"
|
|
# ["1.12.1"]="cu113"
|
|
# ["1.13.0"]="cu116"
|
|
# ["1.13.1"]="cu116 cu117"
|
|
# ["2.0.0"]="cu117 cu118"
|
|
["2.0.1"]="cu117 cu118"
|
|
)
|
|
|
|
|
|
|
|
for python_version in $PYTHON_VERSIONS
|
|
do
|
|
for pytorch_version in "${!CONDA_CUDA_VERSIONS[@]}"
|
|
do
|
|
if [[ "3.7 3.8 3.9" != *$python_version* ]] && [[ "1.7.0 1.7.1 1.8.0 1.8.1 1.9.0 1.9.1 1.10.0 1.10.1 1.10.2" == *$pytorch_version* ]]
|
|
then
|
|
#python 3.10 and later not supported by pytorch 1.10.2 and before
|
|
continue
|
|
fi
|
|
|
|
extra_channel="-c nvidia"
|
|
cudatools="pytorch-cuda"
|
|
if [[ "1.11.0" == "$pytorch_version" ]]
|
|
then
|
|
extra_channel=""
|
|
cudatools="cudatoolkit"
|
|
fi
|
|
if [[ "1.12.0" == "$pytorch_version" ]] || [[ "1.12.1" == "$pytorch_version" ]]
|
|
then
|
|
extra_channel="-c conda-forge"
|
|
cudatools="cudatoolkit"
|
|
fi
|
|
|
|
for cu_version in ${CONDA_CUDA_VERSIONS[$pytorch_version]}
|
|
do
|
|
if [[ $SELECTED_CUDA != "$cu_version" ]]
|
|
then
|
|
continue
|
|
fi
|
|
|
|
case "$cu_version" in
|
|
cu118)
|
|
export CUDA_HOME=/usr/local/cuda-11.8/
|
|
export CUDA_TAG=11.8
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu117)
|
|
export CUDA_HOME=/usr/local/cuda-11.7/
|
|
export CUDA_TAG=11.7
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu116)
|
|
export CUDA_HOME=/usr/local/cuda-11.6/
|
|
export CUDA_TAG=11.6
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu115)
|
|
export CUDA_HOME=/usr/local/cuda-11.5/
|
|
export CUDA_TAG=11.5
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu113)
|
|
export CUDA_HOME=/usr/local/cuda-11.3/
|
|
export CUDA_TAG=11.3
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu112)
|
|
export CUDA_HOME=/usr/local/cuda-11.2/
|
|
export CUDA_TAG=11.2
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu111)
|
|
export CUDA_HOME=/usr/local/cuda-11.1/
|
|
export CUDA_TAG=11.1
|
|
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_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu110)
|
|
export CUDA_HOME=/usr/local/cuda-11.0/
|
|
export CUDA_TAG=11.0
|
|
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_80,code=sm_80 -gencode=arch=compute_50,code=compute_50"
|
|
;;
|
|
cu102)
|
|
export CUDA_HOME=/usr/local/cuda-10.2/
|
|
export CUDA_TAG=10.2
|
|
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"
|
|
;;
|
|
cu101)
|
|
export CUDA_HOME=/usr/local/cuda-10.1/
|
|
export CUDA_TAG=10.1
|
|
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"
|
|
;;
|
|
*)
|
|
echo "Unrecognized cu_version=$cu_version"
|
|
exit 1
|
|
;;
|
|
esac
|
|
tag=py"${python_version//./}"_"${cu_version}"_pyt"${pytorch_version//./}"
|
|
|
|
outdir="/inside/packaging/linux_wheels/output/$tag"
|
|
if [[ -d "$outdir" ]]
|
|
then
|
|
continue
|
|
fi
|
|
|
|
conda create -y -n "$tag" "python=$python_version"
|
|
conda activate "$tag"
|
|
# shellcheck disable=SC2086
|
|
conda install -y -c pytorch $extra_channel "pytorch=$pytorch_version" "$cudatools=$CUDA_TAG"
|
|
pip install iopath
|
|
echo "python version" "$python_version" "pytorch version" "$pytorch_version" "cuda version" "$cu_version" "tag" "$tag"
|
|
|
|
rm -rf dist
|
|
|
|
python setup.py clean
|
|
python setup.py bdist_wheel
|
|
|
|
rm -rf "$outdir"
|
|
mkdir -p "$outdir"
|
|
cp dist/*whl "$outdir"
|
|
|
|
conda deactivate
|
|
done
|
|
done
|
|
done
|
|
echo "DONE"
|