mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
[CI] Add Py-3.11 wheels for all platforms (#93400)
As python-3.11 is now available on Conda for both MacOS and Windows Disable dimtorch for Python-3.11 on Windows as its current implementation relies on internal symbols which are not exposed on Windows runtime (and to be frank, not sure why they are exposed on Linux/Mac), see https://github.com/pytorch/pytorch/issues/93854 As with the previous PR, most of the changes are not in PyTorch repo, but in builder, namely:b71049dcbc
ece340ef7e
b0071ac366
Pull Request resolved: https://github.com/pytorch/pytorch/pull/93400 Approved by: https://github.com/weiwangmeta, https://github.com/atalman
This commit is contained in:
committed by
PyTorch MergeBot
parent
2ea3036d8b
commit
87b9ab4870
@ -182,11 +182,7 @@ def generate_wheels_matrix(os: str,
|
|||||||
if python_versions is None:
|
if python_versions is None:
|
||||||
# Define default python version
|
# Define default python version
|
||||||
python_versions = list(FULL_PYTHON_VERSIONS)
|
python_versions = list(FULL_PYTHON_VERSIONS)
|
||||||
|
python_versions.append("3.11")
|
||||||
if os == "linux":
|
|
||||||
# NOTE: We only build 3.11 wheel on linux as 3.11 is not
|
|
||||||
# available on conda right now
|
|
||||||
python_versions.append("3.11")
|
|
||||||
|
|
||||||
if arches is None:
|
if arches is None:
|
||||||
# Define default compute archivectures
|
# Define default compute archivectures
|
||||||
|
112
.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
generated
vendored
112
.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
generated
vendored
@ -370,3 +370,115 @@ jobs:
|
|||||||
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
uses: ./.github/workflows/_binary-upload.yml
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cpu-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: macos-12-xl
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
# For sccache access (only on non-forked PRs)
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
|
||||||
|
steps:
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "MAC_PACKAGE_WORK_DIR=${RUNNER_TEMP}" >> "${GITHUB_ENV}"
|
||||||
|
- name: Install conda and dependencies
|
||||||
|
run: |
|
||||||
|
# Install conda, setup-miniconda messes with the path that messes with the ruby stuff we do later on
|
||||||
|
curl --retry 3 --retry-all-errors -o "${RUNNER_TEMP}/conda.sh" https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||||
|
chmod +x "${RUNNER_TEMP}/conda.sh"
|
||||||
|
/bin/bash "${RUNNER_TEMP}/conda.sh" -b -p "${RUNNER_TEMP}/anaconda"
|
||||||
|
echo "${RUNNER_TEMP}/anaconda/bin" >> "${GITHUB_PATH}"
|
||||||
|
echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Install sccache (only for non-forked PRs, and pushes to trunk)
|
||||||
|
uses: nick-fields/retry@v2.8.2
|
||||||
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
|
with:
|
||||||
|
timeout_minutes: 5
|
||||||
|
max_attempts: 3
|
||||||
|
retry_wait_seconds: 90
|
||||||
|
command: |
|
||||||
|
sudo curl --retry 3 --retry-all-errors https://s3.amazonaws.com/ossci-macos/sccache_v2.15 --output /usr/local/bin/sccache
|
||||||
|
sudo chmod +x /usr/local/bin/sccache
|
||||||
|
echo "SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2" >> "${GITHUB_ENV}"
|
||||||
|
- name: Populate binary env
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cpu
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
wheel-py3_11-cpu-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cpu-build
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cpu
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cpu
|
||||||
|
use_s3: False
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
112
.github/workflows/generated-macos-binary-wheel-nightly.yml
generated
vendored
112
.github/workflows/generated-macos-binary-wheel-nightly.yml
generated
vendored
@ -368,3 +368,115 @@ jobs:
|
|||||||
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
uses: ./.github/workflows/_binary-upload.yml
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cpu-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: macos-12-xl
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
# For sccache access (only on non-forked PRs)
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
|
||||||
|
steps:
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "MAC_PACKAGE_WORK_DIR=${RUNNER_TEMP}" >> "${GITHUB_ENV}"
|
||||||
|
- name: Install conda and dependencies
|
||||||
|
run: |
|
||||||
|
# Install conda, setup-miniconda messes with the path that messes with the ruby stuff we do later on
|
||||||
|
curl --retry 3 --retry-all-errors -o "${RUNNER_TEMP}/conda.sh" https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||||
|
chmod +x "${RUNNER_TEMP}/conda.sh"
|
||||||
|
/bin/bash "${RUNNER_TEMP}/conda.sh" -b -p "${RUNNER_TEMP}/anaconda"
|
||||||
|
echo "${RUNNER_TEMP}/anaconda/bin" >> "${GITHUB_PATH}"
|
||||||
|
echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Install sccache (only for non-forked PRs, and pushes to trunk)
|
||||||
|
uses: nick-fields/retry@v2.8.2
|
||||||
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
|
with:
|
||||||
|
timeout_minutes: 5
|
||||||
|
max_attempts: 3
|
||||||
|
retry_wait_seconds: 90
|
||||||
|
command: |
|
||||||
|
sudo curl --retry 3 --retry-all-errors https://s3.amazonaws.com/ossci-macos/sccache_v2.15 --output /usr/local/bin/sccache
|
||||||
|
sudo chmod +x /usr/local/bin/sccache
|
||||||
|
echo "SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2" >> "${GITHUB_ENV}"
|
||||||
|
- name: Populate binary env
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
run: |
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cpu
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
wheel-py3_11-cpu-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cpu-build
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cpu
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cpu
|
||||||
|
use_s3: False
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
921
.github/workflows/generated-windows-binary-wheel-nightly.yml
generated
vendored
921
.github/workflows/generated-windows-binary-wheel-nightly.yml
generated
vendored
@ -2795,3 +2795,924 @@ jobs:
|
|||||||
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
uses: ./.github/workflows/_binary-upload.yml
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cpu-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: windows.4xlarge
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cpu
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cpu-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cpu-build
|
||||||
|
runs-on: windows.4xlarge
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
name: Download Build Artifacts
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cpu
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Test PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_test.sh"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cpu-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cpu-test
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cpu
|
||||||
|
GPU_ARCH_TYPE: cpu
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cpu
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cuda11_6-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: windows.4xlarge
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu116
|
||||||
|
GPU_ARCH_VERSION: 11.6
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_6
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_6-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_6-build
|
||||||
|
runs-on: windows.8xlarge.nvidia.gpu
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu116
|
||||||
|
GPU_ARCH_VERSION: 11.6
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
name: Download Build Artifacts
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_6
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Test PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_test.sh"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_6-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_6-test
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu116
|
||||||
|
GPU_ARCH_VERSION: 11.6
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cuda11_6
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cuda11_7-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: windows.4xlarge
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu117
|
||||||
|
GPU_ARCH_VERSION: 11.7
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_7
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_7-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_7-build
|
||||||
|
runs-on: windows.8xlarge.nvidia.gpu
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu117
|
||||||
|
GPU_ARCH_VERSION: 11.7
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
name: Download Build Artifacts
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_7
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Test PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_test.sh"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_7-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_7-test
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu117
|
||||||
|
GPU_ARCH_VERSION: 11.7
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cuda11_7
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
wheel-py3_11-cuda11_8-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
runs-on: windows.4xlarge
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu118
|
||||||
|
GPU_ARCH_VERSION: 11.8
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Build PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_8
|
||||||
|
retention-days: 14
|
||||||
|
if-no-files-found: error
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_8-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_8-build
|
||||||
|
runs-on: windows.8xlarge.nvidia.gpu
|
||||||
|
timeout-minutes: 240
|
||||||
|
env:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu118
|
||||||
|
GPU_ARCH_VERSION: 11.8
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
SKIP_ALL_TESTS: 1
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
steps:
|
||||||
|
- name: Display EC2 information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
function get_ec2_metadata() {
|
||||||
|
# Pulled from instance metadata endpoint for EC2
|
||||||
|
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
|
||||||
|
category=$1
|
||||||
|
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}"
|
||||||
|
}
|
||||||
|
echo "ami-id: $(get_ec2_metadata ami-id)"
|
||||||
|
echo "instance-id: $(get_ec2_metadata instance-id)"
|
||||||
|
echo "instance-type: $(get_ec2_metadata instance-type)"
|
||||||
|
echo "system info $(uname -a)"
|
||||||
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
|
uses: seemethere/add-github-ssh-key@v1
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560
|
||||||
|
- name: Enable long paths on Windows
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||||
|
# Since it's just a defensive command, the workflow should continue even the command fails
|
||||||
|
- name: Disables Windows Defender scheduled and real-time scanning for files in pytorch directory.
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Add-MpPreference -ExclusionPath $(Get-Location).tostring() -ErrorAction Ignore
|
||||||
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
|
# runner.temp variable, which we need.
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
name: Download Build Artifacts
|
||||||
|
with:
|
||||||
|
name: wheel-py3_11-cuda11_8
|
||||||
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
|
- name: Checkout PyTorch
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
|
submodules: recursive
|
||||||
|
path: pytorch
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean PyTorch checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: pytorch
|
||||||
|
- name: Checkout pytorch/builder
|
||||||
|
uses: malfet/checkout@silent-checkout
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
submodules: recursive
|
||||||
|
repository: pytorch/builder
|
||||||
|
path: builder
|
||||||
|
quiet-checkout: true
|
||||||
|
- name: Clean pytorch/builder checkout
|
||||||
|
run: |
|
||||||
|
# Remove any artifacts from the previous checkouts
|
||||||
|
git clean -fxd
|
||||||
|
working-directory: builder
|
||||||
|
- name: Populate binary env
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh"
|
||||||
|
- name: Test PyTorch binary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_test.sh"
|
||||||
|
- name: Wait until all sessions have drained
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
timeout-minutes: 120
|
||||||
|
run: |
|
||||||
|
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||||
|
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||||
|
shell: powershell
|
||||||
|
working-directory: pytorch
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
.github\scripts\kill_active_ssh_sessions.ps1
|
||||||
|
wheel-py3_11-cuda11_8-upload: # Uploading
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs: wheel-py3_11-cuda11_8-test
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
|
BUILDER_ROOT: ${{ github.workspace }}/builder
|
||||||
|
PACKAGE_TYPE: wheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu118
|
||||||
|
GPU_ARCH_VERSION: 11.8
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DESIRED_PYTHON: "3.11"
|
||||||
|
build_name: wheel-py3_11-cuda11_8
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }}
|
||||||
|
aws-pytorch-uploader-secret-access-key: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }}
|
||||||
|
conda-pytorchbot-token: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }}
|
||||||
|
uses: ./.github/workflows/_binary-upload.yml
|
||||||
|
@ -1472,15 +1472,17 @@ py::object create_dimlist(py::object name, py::handle size) {
|
|||||||
struct PyInstDecoder {
|
struct PyInstDecoder {
|
||||||
PyInstDecoder(PyCodeObject* code_object, int lasti)
|
PyInstDecoder(PyCodeObject* code_object, int lasti)
|
||||||
: code_object_(code_object), code_(_PyCode_CODE(code_object)), offset_(lasti / sizeof(_Py_CODEUNIT)) {}
|
: code_object_(code_object), code_(_PyCode_CODE(code_object)), offset_(lasti / sizeof(_Py_CODEUNIT)) {}
|
||||||
|
// On Windows, _PyOpcode_Caches and _PyOpcode_Deopt are private symbols
|
||||||
|
// See https://github.com/pytorch/pytorch/issues/93854
|
||||||
void next() {
|
void next() {
|
||||||
#if IS_PYTHON_3_11_PLUS
|
#if IS_PYTHON_3_11_PLUS && !defined(_WIN32)
|
||||||
offset_ += _PyOpcode_Caches[opcode()];
|
offset_ += _PyOpcode_Caches[opcode()];
|
||||||
#endif
|
#endif
|
||||||
offset_ += 1;
|
offset_ += 1;
|
||||||
}
|
}
|
||||||
int opcode() {
|
int opcode() {
|
||||||
auto r = _Py_OPCODE(code_[offset_]);
|
auto r = _Py_OPCODE(code_[offset_]);
|
||||||
#if IS_PYTHON_3_11_PLUS
|
#if IS_PYTHON_3_11_PLUS && !defined(_WIN32)
|
||||||
r = _PyOpcode_Deopt[r];
|
r = _PyOpcode_Deopt[r];
|
||||||
#endif
|
#endif
|
||||||
return r;
|
return r;
|
||||||
|
Reference in New Issue
Block a user