Files
alltalk_tts/deepspeed/build-deepspeed.sh
T

65 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
CUDA_VERSION=12.1.1
PYTHON_VERSION=3.11
PYTORCH_VERSION=2.2.1
DEEPSPEED_VERSION=0.16.1
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd $SCRIPT_DIR
# Parse arguments
while [ "$#" -gt 0 ]; do
case "$1" in
--cuda-version)
CUDA_VERSION="$2"
shift
;;
--python-version)
PYTHON_VERSION="$2"
shift
;;
--pytorch-version)
PYTORCH_VERSION="$2"
shift
;;
--deepspeed-version)
DEEPSPEED_VERSION="$2"
shift
;;
*)
# Allow to pass arbitrary arguments to docker as well to be flexible:
echo "Unknown argument '$1'"
exit 1
;;
esac
shift
done
PYTHON_VERSION_NO_DOT=${PYTHON_VERSION//./}
if [[ -n $(find build -name "deepspeed-${DEEPSPEED_VERSION}*-cp${PYTHON_VERSION_NO_DOT}-cp${PYTHON_VERSION_NO_DOT}-*.whl") ]]
then
echo "DeepSpeed was already built - skipping..."
exit 0
fi
echo "Building DeepSpeed $DEEPSPEED_VERSION for CUDA $CUDA_VERSION using python ${PYTHON_VERSION} with PyTorch ${PYTORCH_VERSION}"
rm -rf build # make sure to properly clean up - we only want 1 wheel at the time
mkdir -p build
docker buildx \
build \
--build-arg CUDA_VERSION=$CUDA_VERSION \
--build-arg PYTHON_VERSION=$PYTHON_VERSION \
--build-arg PYTORCH_VERSION=$PYTORCH_VERSION \
--build-arg DEEPSPEED_VERSION=$DEEPSPEED_VERSION \
-t deepspeed:cu-$CUDA_VERSION-ds-$DEEPSPEED_VERSION \
.
docker run \
--rm \
-it \
--gpus=all \
--name deepspeed \
-v $SCRIPT_DIR/build:/deepspeed \
deepspeed:cu-$CUDA_VERSION-ds-$DEEPSPEED_VERSION