52 lines
2.1 KiB
Bash
Executable File
52 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# shellcheck disable=SC2034
|
|
# shellcheck source=./macos-common.sh
|
|
source "$(dirname "${BASH_SOURCE[0]}")/macos-common.sh"
|
|
# shellcheck source=./common-build.sh
|
|
source "$(dirname "${BASH_SOURCE[0]}")/common-build.sh"
|
|
|
|
# Build PyTorch
|
|
if [ -z "${CI}" ]; then
|
|
export DEVELOPER_DIR=/Applications/Xcode9.app/Contents/Developer
|
|
fi
|
|
|
|
# This helper function wraps calls to binaries with sccache, but only if they're not already wrapped with sccache.
|
|
# For example, `clang` will be `sccache clang`, but `sccache clang` will not become `sccache sccache clang`.
|
|
# The way this is done is by detecting the command of the parent pid of the current process and checking whether
|
|
# that is sccache, and wrapping sccache around the process if its parent were not already sccache.
|
|
function write_sccache_stub() {
|
|
output=$1
|
|
binary=$(basename "${output}")
|
|
|
|
printf "#!/bin/sh\nif [ \$(ps auxc \$(ps auxc -o ppid \$\$ | grep \$\$ | rev | cut -d' ' -f1 | rev) | tr '\\\\n' ' ' | rev | cut -d' ' -f2 | rev) != sccache ]; then\n exec sccache %s \"\$@\"\nelse\n exec %s \"\$@\"\nfi" "$(which "${binary}")" "$(which "${binary}")" > "${output}"
|
|
chmod a+x "${output}"
|
|
}
|
|
|
|
if which sccache > /dev/null; then
|
|
# Create temp directory for sccache shims
|
|
tmp_dir=$(mktemp -d)
|
|
trap 'rm -rfv ${tmp_dir}' EXIT
|
|
write_sccache_stub "${tmp_dir}/clang++"
|
|
write_sccache_stub "${tmp_dir}/clang"
|
|
|
|
export PATH="${tmp_dir}:$PATH"
|
|
fi
|
|
|
|
print_cmake_info
|
|
if [[ ${BUILD_ENVIRONMENT} == *"distributed"* ]]; then
|
|
# Needed for inductor benchmarks, as lots of HF networks make `torch.distribtued` calls
|
|
USE_DISTRIBUTED=1 USE_OPENMP=1 WERROR=1 python setup.py bdist_wheel
|
|
else
|
|
# Explicitly set USE_DISTRIBUTED=0 to align with the default build config on mac. This also serves as the sole CI config that tests
|
|
# that building with USE_DISTRIBUTED=0 works at all. See https://github.com/pytorch/pytorch/issues/86448
|
|
USE_DISTRIBUTED=0 USE_OPENMP=1 MACOSX_DEPLOYMENT_TARGET=11.0 WERROR=1 BUILD_TEST=OFF USE_PYTORCH_METAL=1 python setup.py bdist_wheel --plat-name macosx_11_0_arm64
|
|
fi
|
|
if which sccache > /dev/null; then
|
|
print_sccache_stats
|
|
fi
|
|
|
|
python tools/stats/export_test_times.py
|
|
|
|
assert_git_not_dirty
|