66 lines
2.9 KiB
Bash
66 lines
2.9 KiB
Bash
#!/bin/bash
|
|
# Required environment variables:
|
|
# $BUILD_ENVIRONMENT (should be set by your Docker image)
|
|
|
|
if [[ "$BUILD_ENVIRONMENT" != *win-* ]]; then
|
|
# Save the absolute path in case later we chdir (as occurs in the gpu perf test)
|
|
script_dir="$( cd "$(dirname "${BASH_SOURCE[0]}")" || exit ; pwd -P )"
|
|
|
|
if [[ "${BUILD_ENVIRONMENT}" == *-pch* ]]; then
|
|
# This is really weird, but newer sccache somehow produces broken binary
|
|
# see https://github.com/pytorch/pytorch/issues/139188
|
|
sudo mv /opt/cache/bin/sccache-0.2.14a /opt/cache/bin/sccache
|
|
fi
|
|
|
|
if which sccache > /dev/null; then
|
|
# Save sccache logs to file
|
|
sccache --stop-server > /dev/null 2>&1 || true
|
|
rm -f ~/sccache_error.log || true
|
|
|
|
function sccache_epilogue() {
|
|
echo "::group::Sccache Compilation Log"
|
|
echo '=================== sccache compilation log ==================='
|
|
python "$script_dir/print_sccache_log.py" ~/sccache_error.log 2>/dev/null || true
|
|
echo '=========== If your build fails, please take a look at the log above for possible reasons ==========='
|
|
sccache --show-stats
|
|
sccache --stop-server || true
|
|
echo "::endgroup::"
|
|
}
|
|
|
|
# Register the function here so that the error log can be printed even when
|
|
# sccache fails to start, i.e. timeout error
|
|
trap_add sccache_epilogue EXIT
|
|
|
|
if [[ -n "${SKIP_SCCACHE_INITIALIZATION:-}" ]]; then
|
|
# sccache --start-server seems to hang forever on self hosted runners for GHA
|
|
# so let's just go ahead and skip the --start-server altogether since it seems
|
|
# as though sccache still gets used even when the sscache server isn't started
|
|
# explicitly
|
|
echo "Skipping sccache server initialization, setting environment variables"
|
|
export SCCACHE_IDLE_TIMEOUT=0
|
|
export SCCACHE_ERROR_LOG=~/sccache_error.log
|
|
export RUST_LOG=sccache::server=error
|
|
elif [[ "${BUILD_ENVIRONMENT}" == *rocm* ]]; then
|
|
SCCACHE_ERROR_LOG=~/sccache_error.log SCCACHE_IDLE_TIMEOUT=0 sccache --start-server
|
|
else
|
|
# increasing SCCACHE_IDLE_TIMEOUT so that extension_backend_test.cpp can build after this PR:
|
|
# https://github.com/pytorch/pytorch/pull/16645
|
|
SCCACHE_ERROR_LOG=~/sccache_error.log SCCACHE_IDLE_TIMEOUT=0 RUST_LOG=sccache::server=error sccache --start-server
|
|
fi
|
|
|
|
# Report sccache stats for easier debugging. It's ok if this commands
|
|
# timeouts and fails on MacOS
|
|
sccache --zero-stats || true
|
|
fi
|
|
|
|
if which ccache > /dev/null; then
|
|
# Report ccache stats for easier debugging
|
|
ccache --zero-stats
|
|
ccache --show-stats
|
|
function ccache_epilogue() {
|
|
ccache --show-stats
|
|
}
|
|
trap_add ccache_epilogue EXIT
|
|
fi
|
|
fi
|