68 lines
2.5 KiB
Bash
Executable File
68 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eo pipefail
|
|
set -x
|
|
: ${NUM_THREADS:=$(nproc)}
|
|
: ${WORKSPACE_CWD:=$(pwd)}
|
|
: ${GPU:="cpu"}
|
|
export CCACHE_COMPILERCHECK=content
|
|
export CCACHE_NOHASHDIR=1
|
|
export CCACHE_DIR=/ccache
|
|
|
|
# Temporary workaround to install ccache.
|
|
if [[ ${GPU} != metal ]]; then
|
|
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
|
|
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
|
|
fi
|
|
conda install -c conda-forge ccache
|
|
|
|
if [[ ${GPU} != metal ]]; then
|
|
source /multibuild/manylinux_utils.sh
|
|
source /opt/rh/gcc-toolset-11/enable # GCC-11 is the hightest GCC version compatible with NVCC < 12
|
|
fi
|
|
|
|
mkdir -p $WORKSPACE_CWD/build
|
|
if [[ ${GPU} == rocm* ]]; then
|
|
echo set\(USE_VULKAN ON\) >>config.cmake
|
|
echo set\(USE_ROCM ON\) >>config.cmake
|
|
echo set\(USE_RCCL /opt/rocm/rccl/ \) >>config.cmake
|
|
elif [[ ${GPU} == cuda* ]]; then
|
|
echo set\(USE_VULKAN ON\) >>config.cmake
|
|
echo set\(CMAKE_CUDA_COMPILER_LAUNCHER ccache\) >>config.cmake
|
|
echo set\(CMAKE_CUDA_ARCHITECTURES "80;90;100;120"\) >>config.cmake
|
|
echo set\(CMAKE_CUDA_FLAGS \"\$\{CMAKE_CUDA_FLAGS\} -t $NUM_THREADS\"\) >>config.cmake
|
|
echo set\(USE_CUDA ON\) >>config.cmake
|
|
echo set\(USE_CUBLAS ON\) >>config.cmake
|
|
echo set\(USE_NCCL ON\) >>config.cmake
|
|
elif [[ ${GPU} == metal ]]; then
|
|
export CCACHE_DIR=$HOME/ci/ccache
|
|
echo set\(USE_METAL ON\) >>config.cmake
|
|
else
|
|
echo set\(USE_VULKAN ON\) >>config.cmake
|
|
fi
|
|
|
|
cat config.cmake
|
|
|
|
AUDITWHEEL_OPTS="--plat ${AUDITWHEEL_PLAT} -w repaired_wheels/"
|
|
AUDITWHEEL_OPTS="--exclude libtvm --exclude libtvm_runtime --exclude libtvm_ffi --exclude libvulkan ${AUDITWHEEL_OPTS}"
|
|
if [[ ${GPU} == rocm* ]]; then
|
|
AUDITWHEEL_OPTS="--exclude libamdhip64 --exclude libhsa-runtime64 --exclude librocm_smi64 --exclude librccl ${AUDITWHEEL_OPTS}"
|
|
elif [[ ${GPU} == cuda* ]]; then
|
|
AUDITWHEEL_OPTS="--exclude libcuda --exclude libcudart --exclude libnvrtc --exclude libcublas --exclude libcublasLt ${AUDITWHEEL_OPTS}"
|
|
fi
|
|
|
|
rm -rf ${WORKSPACE_CWD}/dist
|
|
cd ${WORKSPACE_CWD} && pip wheel --no-deps -w dist . -v
|
|
|
|
rm -rf ${WORKSPACE_CWD}/wheels/
|
|
if [[ ${GPU} != metal ]]; then
|
|
mkdir -p ${WORKSPACE_CWD}/repaired_wheels
|
|
rm -rf ${WORKSPACE_CWD}/repaired_wheels/*
|
|
auditwheel repair ${AUDITWHEEL_OPTS} dist/*.whl
|
|
mv ${WORKSPACE_CWD}/repaired_wheels/ ${WORKSPACE_CWD}/wheels/
|
|
else
|
|
mkdir ${WORKSPACE_CWD}/wheels/
|
|
mv dist/*.whl ${WORKSPACE_CWD}/wheels/
|
|
fi
|
|
|
|
chown -R $ENV_USER_ID:$ENV_GROUP_ID ${WORKSPACE_CWD}/wheels/
|