Test ARC GPU #1
Workflow file for this run
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: linux-binary-test | ||
on: | ||
workflow_call: | ||
inputs: | ||
build_name: | ||
required: true | ||
type: string | ||
description: The build's name | ||
build_environment: | ||
required: true | ||
type: string | ||
description: The build environment | ||
ALPINE_IMAGE: | ||
required: false | ||
type: string | ||
default: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine" | ||
PYTORCH_ROOT: | ||
required: true | ||
type: string | ||
description: Root directory for the pytorch/pytorch repository | ||
BUILDER_ROOT: | ||
required: true | ||
type: string | ||
description: Root directory for the pytorch/builder repository | ||
PACKAGE_TYPE: | ||
required: true | ||
type: string | ||
description: Package type | ||
DESIRED_CUDA: | ||
required: true | ||
type: string | ||
description: Desired Cuda version | ||
GPU_ARCH_VERSION: | ||
required: false | ||
type: string | ||
description: GPU Arch version | ||
GPU_ARCH_TYPE: | ||
required: true | ||
type: string | ||
description: GPU Arch type | ||
DOCKER_IMAGE: | ||
required: true | ||
type: string | ||
description: Docker image to use | ||
LIBTORCH_CONFIG: | ||
required: false | ||
type: string | ||
description: Desired libtorch config (for libtorch builds only) | ||
LIBTORCH_VARIANT: | ||
required: false | ||
type: string | ||
description: Desired libtorch variant (for libtorch builds only) | ||
DESIRED_DEVTOOLSET: | ||
required: false | ||
type: string | ||
description: Desired dev toolset | ||
DESIRED_PYTHON: | ||
required: false | ||
type: string | ||
description: Desired python version | ||
runs_on: | ||
required: true | ||
type: string | ||
description: Hardware to run this job on. Valid values are linux.4xlarge, linux.4xlarge.nvidia.gpu, linux.t4g.2xlarge, and linux.rocm.gpu | ||
secrets: | ||
github-token: | ||
required: true | ||
description: Github Token | ||
jobs: | ||
test: | ||
runs-on: ${{ inputs.runs_on }} | ||
timeout-minutes: 240 | ||
env: | ||
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }} | ||
BUILDER_ROOT: ${{ inputs.BUILDER_ROOT }} | ||
PACKAGE_TYPE: ${{ inputs.PACKAGE_TYPE }} | ||
# TODO: This is a legacy variable that we eventually want to get rid of in | ||
# favor of GPU_ARCH_VERSION | ||
DESIRED_CUDA: ${{ inputs.DESIRED_CUDA }} | ||
GPU_ARCH_VERSION: ${{ inputs.GPU_ARCH_VERSION }} | ||
GPU_ARCH_TYPE: ${{ inputs.GPU_ARCH_TYPE }} | ||
DOCKER_IMAGE: ${{ inputs.DOCKER_IMAGE }} | ||
SKIP_ALL_TESTS: 1 | ||
LIBTORCH_CONFIG: ${{ inputs.LIBTORCH_CONFIG }} | ||
LIBTORCH_VARIANT: ${{ inputs.LIBTORCH_VARIANT }} | ||
DESIRED_DEVTOOLSET: ${{ inputs.DESIRED_DEVTOOLSET }} | ||
DESIRED_PYTHON: ${{ inputs.DESIRED_PYTHON }} | ||
# Needed for conda builds | ||
ALPINE_IMAGE: ${{ inputs.ALPINE_IMAGE }} | ||
ANACONDA_USER: pytorch | ||
AWS_DEFAULT_REGION: us-east-1 | ||
BINARY_ENV_FILE: /tmp/env | ||
BUILD_ENVIRONMENT: ${{ inputs.build_environment }} | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
PYTORCH_FINAL_PACKAGE_DIR: /artifacts | ||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }} | ||
steps: | ||
- name: Make the env permanent during this workflow (but not the secrets) | ||
shell: bash | ||
run: | | ||
{ | ||
echo "PYTORCH_ROOT=${{ env.PYTORCH_ROOT }}" | ||
echo "BUILDER_ROOT=${{ env.BUILDER_ROOT }}" | ||
echo "PACKAGE_TYPE=${{ env.PACKAGE_TYPE }}" | ||
echo "DESIRED_CUDA=${{ env.DESIRED_CUDA }}" | ||
echo "GPU_ARCH_VERSION=${{ env.GPU_ARCH_VERSION }}" | ||
echo "GPU_ARCH_TYPE=${{ env.GPU_ARCH_TYPE }}" | ||
echo "DOCKER_IMAGE=${{ env.DOCKER_IMAGE }}" | ||
echo "SKIP_ALL_TESTS=${{ env.SKIP_ALL_TESTS }}" | ||
echo "LIBTORCH_CONFIG=${{ env.LIBTORCH_CONFIG }}" | ||
echo "LIBTORCH_VARIANT=${{ env.LIBTORCH_VARIANT }}" | ||
echo "DESIRED_DEVTOOLSET=${{ env.DESIRED_DEVTOOLSET }}" | ||
echo "DESIRED_PYTHON=${{ env.DESIRED_PYTHON }}" | ||
echo "ALPINE_IMAGE=${{ env.ALPINE_IMAGE }}" | ||
echo "ANACONDA_USER=${{ env.ANACONDA_USER }}" | ||
echo "AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }}" | ||
echo "BINARY_ENV_FILE=${{ env.BINARY_ENV_FILE }}" | ||
echo "BUILD_ENVIRONMENT=${{ env.BUILD_ENVIRONMENT }}" | ||
echo "PR_NUMBER=${{ env.PR_NUMBER }}" | ||
echo "PYTORCH_FINAL_PACKAGE_DIR=${{ env.PYTORCH_FINAL_PACKAGE_DIR }}" | ||
echo "SHA1=${{ env.SHA1 }}" | ||
} >> "${GITHUB_ENV} }}" | ||
# Setup the environment | ||
- name: Checkout PyTorch | ||
uses: pytorch/pytorch-canary/.github/actions/checkout-pytorch@main | ||
with: | ||
no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' }} | ||
ref: release/2.1 | ||
- name: Setup Linux | ||
uses: ./.github/actions/setup-linux | ||
- name: Chown workspace | ||
uses: ./.github/actions/chown-workspace | ||
with: | ||
ALPINE_IMAGE: ${{ inputs.ALPINE_IMAGE }} | ||
- name: Clean workspace | ||
shell: bash | ||
run: | | ||
rm -rf "${GITHUB_WORKSPACE}" | ||
mkdir "${GITHUB_WORKSPACE}" | ||
- name: Checkout PyTorch to pytorch dir | ||
uses: malfet/checkout@silent-checkout | ||
with: | ||
ref: release/2.1 | ||
submodules: recursive | ||
path: pytorch | ||
- name: Clean PyTorch checkout | ||
run: | | ||
# Remove any artifacts from the previous checkouts | ||
git clean -fxd | ||
working-directory: pytorch | ||
- name: Checkout pytorch/builder to builder dir | ||
uses: malfet/checkout@silent-checkout | ||
with: | ||
ref: release/2.1 | ||
submodules: recursive | ||
repository: pytorch/builder | ||
path: builder | ||
- name: Checkout pytorch/test-infra to test-infra dir | ||
uses: malfet/checkout@silent-checkout | ||
with: | ||
ref: release/2.1 | ||
submodules: recursive | ||
repository: pytorch/test-infra | ||
path: test-infra | ||
quiet-checkout: true | ||
- name: Clean pytorch/builder checkout | ||
run: | | ||
# Remove any artifacts from the previous checkouts | ||
git clean -fxd | ||
working-directory: builder | ||
- name: Check if the job is disabled | ||
id: filter | ||
uses: ./pytorch/.github/actions/filter-test-configs | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
# NB: Use a mock test matrix with a default value here. After filtering, if the | ||
# returned matrix is empty, it means that the job is disabled | ||
test-matrix: | | ||
{ include: [ | ||
{ config: "default" }, | ||
]} | ||
- name: Download Build Artifacts | ||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }} | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ inputs.build_name }} | ||
path: "${{ runner.temp }}/artifacts/" | ||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG | ||
uses: ./test-infra/.github/actions/setup-nvidia | ||
if: ${{ inputs.GPU_ARCH_TYPE == 'cuda' && steps.filter.outputs.is-test-matrix-empty == 'False' }} | ||
- name: Pull Docker image | ||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }} | ||
uses: ./test-infra/.github/actions/pull-docker-image | ||
with: | ||
docker-image: ${{ inputs.DOCKER_IMAGE }} | ||
- name: Test Pytorch binary | ||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }} | ||
uses: ./pytorch/.github/actions/test-pytorch-binary | ||
- name: Teardown Linux | ||
if: always() | ||
uses: ./test-infra/.github/actions/teardown-linux@main | ||
- name: Chown workspace | ||
if: always() | ||
uses: ./pytorch/.github/actions/chown-workspace | ||
with: | ||
ALPINE_IMAGE: ${{ inputs.ALPINE_IMAGE }} |