IFU-main-2024-02-22 #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Validate manywheel binaries | |
# This workflow validates the size of the manywheel binaries after repackaging for PyPi | |
# Specify the direct URLs to the binaries (from https://download.pytorch.org/whl/test/torch/) in the matrix | |
# along with the python version. | |
# | |
# The workflow will: | |
# * download the binaries, | |
# * run release/pypi/prep_binary_for_pypi.sh | |
# * run smoke tests on the repackaged binaries | |
# * display the size before and after repackaging as the workflow annotation | |
# * optionally upload the repackaged binaries as artifacts (for debug or promotion) | |
on: | |
pull_request: | |
paths: | |
- .github/workflows/validate-repackaged-binary-sizes.yml | |
- release/pypi/prep_binary_for_pypi.sh | |
jobs: | |
validate-binary-size: | |
strategy: | |
fail-fast: false | |
matrix: | |
whl: | |
- url: https://download.pytorch.org/whl/test/cu121/torch-2.2.0%2Bcu121-cp312-cp312-linux_x86_64.whl | |
python: "3.12" | |
artifact: false | |
- url: https://download.pytorch.org/whl/test/cu121/torch-2.2.0%2Bcu121-cp311-cp311-linux_x86_64.whl | |
python: "3.11" # python version to use for smoke tests | |
upload_artifact: false # upload the repackaged binary as an artifact | |
- url: https://download.pytorch.org/whl/test/cu121/torch-2.2.0%2Bcu121-cp310-cp310-linux_x86_64.whl | |
python: "3.10" | |
artifact: false | |
- url: https://download.pytorch.org/whl/test/cu121/torch-2.2.0%2Bcu121-cp39-cp39-linux_x86_64.whl | |
python: "3.9" | |
artifact: false | |
- url: https://download.pytorch.org/whl/test/cu121/torch-2.2.0%2Bcu121-cp38-cp38-linux_x86_64.whl | |
python: "3.8" | |
artifact: false | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | |
with: | |
runner: linux.g5.4xlarge.nvidia.gpu | |
job-name: "Validate binary size" | |
upload-artifact: ${{ matrix.whl.upload_artifact == 'true' && 'repackaged-binary' || '' }} | |
script: | | |
set -ex | |
export ENV_NAME="conda-env-${{ github.run_id }}" | |
export MATRIX_GPU_ARCH_VERSION="12.1" | |
export MATRIX_GPU_ARCH_TYPE="cuda" | |
export MATRIX_CUDA_VER="12.1" | |
export DESIRED_PYTHON="${{ matrix.whl.python }}" | |
export MATRIX_PACKAGE_TYPE="wheel" | |
export TARGET_OS="linux" | |
# install zip | |
sudo yum install zip -y | |
# install patchelf | |
chmod a+x common/install_patchelf.sh | |
sudo common/install_patchelf.sh | |
# download torch whl | |
wget ${{ matrix.whl.url }} | |
FILENAME=$(ls -1 *.whl | head -n 1) | |
SIZE_BEFORE=$(du -h $FILENAME | cut -f1) | |
# repackage into manywheel | |
release/pypi/prep_binary_for_pypi.sh $FILENAME | |
NEW_FILENAME=$(ls -1 *.whl | head -n 1) | |
echo "::notice:: $FILENAME before: $SIZE_BEFORE after: $(du -h $NEW_FILENAME | cut -f1)" | |
# cp to ${RUNNER_ARTIFACT_DIR} | |
cp $NEW_FILENAME ${RUNNER_ARTIFACT_DIR}/ | |
# create conda env | |
conda create -y -n $ENV_NAME python=$DESIRED_PYTHON | |
conda activate $ENV_NAME | |
# install torch | |
pip install numpy pillow $NEW_FILENAME | |
# run smoke test | |
python ./test/smoke_test/smoke_test.py --package=torchonly |