diff --git a/.circleci/config.yml b/.circleci/config.yml index a5be618c982..c780c0f82ca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -32,12 +32,16 @@ binary_common: &binary_common description: "Wheel only: what docker image to use" type: string default: "soumith/manylinux-cuda100" + resource_class: + type: string + default: "2xlarge+" environment: PYTHON_VERSION: << parameters.python_version >> BUILD_VERSION: << parameters.build_version >> PYTORCH_VERSION: << parameters.pytorch_version >> UNICODE_ABI: << parameters.unicode_abi >> CU_VERSION: << parameters.cu_version >> + resource_class: << parameters.resource_class >> jobs: circleci_consistency: @@ -171,48 +175,6 @@ workflows: jobs: - circleci_consistency - - binary_linux_wheel: - name: binary_linux_wheel_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_linux_wheel: - name: binary_linux_wheel_py2.7u_cpu - python_version: "2.7" - cu_version: "cpu" - unicode_abi: "1" - - binary_linux_wheel: - name: binary_linux_wheel_py2.7_cu92 - python_version: "2.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_wheel: - name: binary_linux_wheel_py2.7u_cu92 - python_version: "2.7" - cu_version: "cu92" - unicode_abi: "1" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_wheel: - name: binary_linux_wheel_py2.7_cu100 - python_version: "2.7" - cu_version: "cu100" - - binary_linux_wheel: - name: binary_linux_wheel_py2.7u_cu100 - python_version: "2.7" - cu_version: "cu100" - unicode_abi: "1" - - binary_linux_wheel: - name: binary_linux_wheel_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_linux_wheel: - name: binary_linux_wheel_py3.5_cu92 - python_version: "3.5" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_wheel: - name: binary_linux_wheel_py3.5_cu100 - python_version: "3.5" - cu_version: "cu100" - binary_linux_wheel: name: binary_linux_wheel_py3.6_cpu python_version: "3.6" @@ -226,66 +188,10 @@ workflows: name: binary_linux_wheel_py3.6_cu100 python_version: "3.6" cu_version: "cu100" - - binary_linux_wheel: - name: binary_linux_wheel_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_linux_wheel: - name: binary_linux_wheel_py3.7_cu92 - python_version: "3.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_wheel: - name: binary_linux_wheel_py3.7_cu100 - python_version: "3.7" - cu_version: "cu100" - - binary_macos_wheel: - name: binary_macos_wheel_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_macos_wheel: - name: binary_macos_wheel_py2.7u_cpu - python_version: "2.7" - cu_version: "cpu" - unicode_abi: "1" - - binary_macos_wheel: - name: binary_macos_wheel_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - binary_macos_wheel: name: binary_macos_wheel_py3.6_cpu python_version: "3.6" cu_version: "cpu" - - binary_macos_wheel: - name: binary_macos_wheel_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_linux_conda: - name: binary_linux_conda_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_linux_conda: - name: binary_linux_conda_py2.7_cu92 - python_version: "2.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_conda: - name: binary_linux_conda_py2.7_cu100 - python_version: "2.7" - cu_version: "cu100" - - binary_linux_conda: - name: binary_linux_conda_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_linux_conda: - name: binary_linux_conda_py3.5_cu92 - python_version: "3.5" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_conda: - name: binary_linux_conda_py3.5_cu100 - python_version: "3.5" - cu_version: "cu100" - binary_linux_conda: name: binary_linux_conda_py3.6_cpu python_version: "3.6" @@ -295,39 +201,16 @@ workflows: python_version: "3.6" cu_version: "cu92" wheel_docker_image: "soumith/manylinux-cuda92" + resource_class: gpu.medium - binary_linux_conda: name: binary_linux_conda_py3.6_cu100 python_version: "3.6" cu_version: "cu100" - - binary_linux_conda: - name: binary_linux_conda_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_linux_conda: - name: binary_linux_conda_py3.7_cu92 - python_version: "3.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_linux_conda: - name: binary_linux_conda_py3.7_cu100 - python_version: "3.7" - cu_version: "cu100" - - binary_macos_conda: - name: binary_macos_conda_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_macos_conda: - name: binary_macos_conda_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" + resource_class: gpu.medium - binary_macos_conda: name: binary_macos_conda_py3.6_cpu python_version: "3.6" cu_version: "cpu" - - binary_macos_conda: - name: binary_macos_conda_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" nightly: triggers: @@ -340,102 +223,6 @@ workflows: jobs: - circleci_consistency - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7_cpu_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7_cpu - subfolder: "cpu/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7u_cpu - python_version: "2.7" - cu_version: "cpu" - unicode_abi: "1" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7u_cpu_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7u_cpu - subfolder: "cpu/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7_cu92 - python_version: "2.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7_cu92_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7_cu92 - subfolder: "cu92/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7u_cu92 - python_version: "2.7" - cu_version: "cu92" - unicode_abi: "1" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7u_cu92_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7u_cu92 - subfolder: "cu92/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7_cu100 - python_version: "2.7" - cu_version: "cu100" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7_cu100_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7_cu100 - subfolder: "cu100/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py2.7u_cu100 - python_version: "2.7" - cu_version: "cu100" - unicode_abi: "1" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py2.7u_cu100_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py2.7u_cu100 - subfolder: "cu100/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.5_cpu_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.5_cpu - subfolder: "cpu/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.5_cu92 - python_version: "3.5" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.5_cu92_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.5_cu92 - subfolder: "cu92/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.5_cu100 - python_version: "3.5" - cu_version: "cu100" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.5_cu100_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.5_cu100 - subfolder: "cu100/" - binary_linux_wheel: name: nightly_binary_linux_wheel_py3.6_cpu python_version: "3.6" @@ -467,68 +254,6 @@ workflows: requires: - nightly_binary_linux_wheel_py3.6_cu100 subfolder: "cu100/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.7_cpu_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.7_cpu - subfolder: "cpu/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.7_cu92 - python_version: "3.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.7_cu92_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.7_cu92 - subfolder: "cu92/" - - binary_linux_wheel: - name: nightly_binary_linux_wheel_py3.7_cu100 - python_version: "3.7" - cu_version: "cu100" - - binary_wheel_upload: - name: nightly_binary_linux_wheel_py3.7_cu100_upload - context: org-member - requires: - - nightly_binary_linux_wheel_py3.7_cu100 - subfolder: "cu100/" - - binary_macos_wheel: - name: nightly_binary_macos_wheel_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_macos_wheel_py2.7_cpu_upload - context: org-member - requires: - - nightly_binary_macos_wheel_py2.7_cpu - subfolder: "" - - binary_macos_wheel: - name: nightly_binary_macos_wheel_py2.7u_cpu - python_version: "2.7" - cu_version: "cpu" - unicode_abi: "1" - - binary_wheel_upload: - name: nightly_binary_macos_wheel_py2.7u_cpu_upload - context: org-member - requires: - - nightly_binary_macos_wheel_py2.7u_cpu - subfolder: "" - - binary_macos_wheel: - name: nightly_binary_macos_wheel_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_macos_wheel_py3.5_cpu_upload - context: org-member - requires: - - nightly_binary_macos_wheel_py3.5_cpu - subfolder: "" - binary_macos_wheel: name: nightly_binary_macos_wheel_py3.6_cpu python_version: "3.6" @@ -539,72 +264,6 @@ workflows: requires: - nightly_binary_macos_wheel_py3.6_cpu subfolder: "" - - binary_macos_wheel: - name: nightly_binary_macos_wheel_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_wheel_upload: - name: nightly_binary_macos_wheel_py3.7_cpu_upload - context: org-member - requires: - - nightly_binary_macos_wheel_py3.7_cpu - subfolder: "" - - binary_linux_conda: - name: nightly_binary_linux_conda_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_linux_conda_py2.7_cpu_upload - context: org-member - requires: - - nightly_binary_linux_conda_py2.7_cpu - - binary_linux_conda: - name: nightly_binary_linux_conda_py2.7_cu92 - python_version: "2.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_conda_upload: - name: nightly_binary_linux_conda_py2.7_cu92_upload - context: org-member - requires: - - nightly_binary_linux_conda_py2.7_cu92 - - binary_linux_conda: - name: nightly_binary_linux_conda_py2.7_cu100 - python_version: "2.7" - cu_version: "cu100" - - binary_conda_upload: - name: nightly_binary_linux_conda_py2.7_cu100_upload - context: org-member - requires: - - nightly_binary_linux_conda_py2.7_cu100 - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.5_cpu_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.5_cpu - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.5_cu92 - python_version: "3.5" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.5_cu92_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.5_cu92 - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.5_cu100 - python_version: "3.5" - cu_version: "cu100" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.5_cu100_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.5_cu100 - binary_linux_conda: name: nightly_binary_linux_conda_py3.6_cpu python_version: "3.6" @@ -619,6 +278,7 @@ workflows: python_version: "3.6" cu_version: "cu92" wheel_docker_image: "soumith/manylinux-cuda92" + resource_class: gpu.medium - binary_conda_upload: name: nightly_binary_linux_conda_py3.6_cu92_upload context: org-member @@ -628,57 +288,12 @@ workflows: name: nightly_binary_linux_conda_py3.6_cu100 python_version: "3.6" cu_version: "cu100" + resource_class: gpu.medium - binary_conda_upload: name: nightly_binary_linux_conda_py3.6_cu100_upload context: org-member requires: - nightly_binary_linux_conda_py3.6_cu100 - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.7_cpu_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.7_cpu - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.7_cu92 - python_version: "3.7" - cu_version: "cu92" - wheel_docker_image: "soumith/manylinux-cuda92" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.7_cu92_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.7_cu92 - - binary_linux_conda: - name: nightly_binary_linux_conda_py3.7_cu100 - python_version: "3.7" - cu_version: "cu100" - - binary_conda_upload: - name: nightly_binary_linux_conda_py3.7_cu100_upload - context: org-member - requires: - - nightly_binary_linux_conda_py3.7_cu100 - - binary_macos_conda: - name: nightly_binary_macos_conda_py2.7_cpu - python_version: "2.7" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_macos_conda_py2.7_cpu_upload - context: org-member - requires: - - nightly_binary_macos_conda_py2.7_cpu - - binary_macos_conda: - name: nightly_binary_macos_conda_py3.5_cpu - python_version: "3.5" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_macos_conda_py3.5_cpu_upload - context: org-member - requires: - - nightly_binary_macos_conda_py3.5_cpu - binary_macos_conda: name: nightly_binary_macos_conda_py3.6_cpu python_version: "3.6" @@ -687,13 +302,4 @@ workflows: name: nightly_binary_macos_conda_py3.6_cpu_upload context: org-member requires: - - nightly_binary_macos_conda_py3.6_cpu - - binary_macos_conda: - name: nightly_binary_macos_conda_py3.7_cpu - python_version: "3.7" - cu_version: "cpu" - - binary_conda_upload: - name: nightly_binary_macos_conda_py3.7_cpu_upload - context: org-member - requires: - - nightly_binary_macos_conda_py3.7_cpu \ No newline at end of file + - nightly_binary_macos_conda_py3.6_cpu \ No newline at end of file diff --git a/.circleci/config.yml.in b/.circleci/config.yml.in index 91046fcd7b8..170464bb769 100644 --- a/.circleci/config.yml.in +++ b/.circleci/config.yml.in @@ -32,12 +32,16 @@ binary_common: &binary_common description: "Wheel only: what docker image to use" type: string default: "soumith/manylinux-cuda100" + resource_class: + type: string + default: "2xlarge+" environment: PYTHON_VERSION: << parameters.python_version >> BUILD_VERSION: << parameters.build_version >> PYTORCH_VERSION: << parameters.pytorch_version >> UNICODE_ABI: << parameters.unicode_abi >> CU_VERSION: << parameters.cu_version >> + resource_class: << parameters.resource_class >> jobs: circleci_consistency: @@ -177,7 +181,9 @@ jobs: {%- if cu_version == "cu92" %} wheel_docker_image: "soumith/manylinux-cuda92" {%- endif %} - +{%- if cu_version != "cpu" and btype != 'wheel' %} + resource_class: gpu.medium +{%- endif %} {%- if upload %} - binary_{{btype}}_upload: name: {{prefix}}binary_{{os}}_{{btype}}_py{{python_version}}{{ "u" if unicode }}_{{cu_version}}_upload @@ -197,7 +203,7 @@ jobs: {%- macro workflows(prefix='', upload=False) %} {%- for btype in ["wheel", "conda"] -%} {%- for os in ["linux", "macos"] -%} -{%- for python_version in ["2.7", "3.5", "3.6", "3.7"] -%} +{%- for python_version in ["3.6"] -%} {%- for cu_version in (["cpu", "cu92", "cu100"] if os == "linux" else ["cpu"]) -%} {%- for unicode in ([False, True] if btype == "wheel" and python_version == "2.7" else [False]) -%} {{ workflow(btype, os, python_version, cu_version, unicode, prefix=prefix, upload=upload) }} diff --git a/.circleci/tst b/.circleci/tst new file mode 100644 index 00000000000..2f4e349d1dc --- /dev/null +++ b/.circleci/tst @@ -0,0 +1 @@ +sdf diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fc0aa7240a4..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,76 +0,0 @@ -language: python - -dist: xenial -matrix: - include: - - env: FORMAT_CHECK - language: cpp - addons: - apt: - sources: - - llvm-toolchain-xenial-7 - packages: - - clang-7 - - clang-format-7 - before_install: skip - install: skip - script: ./travis-scripts/run-clang-format/run-clang-format.py -r torchvision/csrc - - env: LINT_CHECK - python: "2.7" - install: pip install flake8 - script: flake8 - after_success: [] - - python: "2.7" - env: IMAGE_BACKEND=Pillow-SIMD - - python: "2.7" - - python: "3.6" - env: IMAGE_BACKEND=Pillow-SIMD - - python: "3.6" - -before_install: - - sudo apt-get update - - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; - - bash miniconda.sh -b -p $HOME/miniconda - - export PATH="$HOME/miniconda/bin:$PATH" - - hash -r - - conda config --set always_yes yes --set changeps1 no - - conda update -q conda - # Useful for debugging any issues with conda - - conda info -a - - - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION pytorch scipy -c pytorch-nightly - - source activate test-environment - - | - if [[ "$IMAGE_BACKEND" == "Pillow-SIMD" ]]; then - pip uninstall -y pillow && CC="cc -march=native" pip install --force-reinstall pillow-simd - fi - - pip install future - - pip install pytest pytest-cov codecov - - pip install mock - - conda install av -c conda-forge - - -install: - # Using pip instead of setup.py ensures we install a non-compressed version of the package - # (as opposed to an egg), which is necessary to collect coverage. - # We still get the benefit of testing an installed version over the - # test version to iron out installation file-inclusion bugs but can - # also collect coverage. - - pip install . - # Move to home dir, otherwise we'll end up with the path to the - # package in $PWD rather than the installed v - - | - cd $HOME - export TV_INSTALL_PATH="$(python -c 'import os; import torchvision; print(os.path.dirname(os.path.abspath(torchvision.__file__)))')" - echo "$TV_INSTALL_PATH" - cd - - -script: - - pytest --cov-config .coveragerc --cov torchvision --cov $TV_INSTALL_PATH test - -after_success: - # Necessary to run coverage combine to rewrite paths from - # /travis/env/path/site-packages/torchvision to actual path - - coverage combine .coverage - - coverage report - - codecov diff --git a/packaging/pkg_helpers.bash b/packaging/pkg_helpers.bash index bd9cbedcdef..51c98b7dd7f 100644 --- a/packaging/pkg_helpers.bash +++ b/packaging/pkg_helpers.bash @@ -45,7 +45,8 @@ setup_cuda() { export VERSION_SUFFIX="$PYTORCH_VERSION_SUFFIX" # If the suffix is non-empty, we will use a wheel subdirectory if [[ -n "$PYTORCH_VERSION_SUFFIX" ]]; then - export WHEEL_DIR="$PYTORCH_VERSION_SUFFIX/" + # export WHEEL_DIR="$PYTORCH_VERSION_SUFFIX/" + export WHEEL_DIR="$CU_VERSION/" fi fi fi