# IMPORTANT: To update Docker image version, please search and update ":{previous_version}"
# in this file to the new version number, and **ALSO** update the version number below:
-# PyTorchDockerVersion:278
+# PyTorchDockerVersion:282
# Caffe2DockerVersion:238
docker_config_defaults: &docker_config_defaults
pytorch_linux_trusty_py2_7_9_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py2.7.9-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7.9:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7.9:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py2_7_9_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py2.7.9-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7.9:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7.9:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_py2_7_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py2.7-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py2_7_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py2.7-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py2.7:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_py3_5_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.5-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.5:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.5:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py3_5_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.5-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.5:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.5:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_py3_6_gcc4_8_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc4.8-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc4.8:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc4.8:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py3_6_gcc4_8_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc4.8-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc4.8:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc4.8:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_py3_6_gcc5_4_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc5.4-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc5.4:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc5.4:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py3_6_gcc5_4_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc5.4-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc5.4:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc5.4:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_py3_6_gcc7_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc7-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc7:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_py3_6_gcc7_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-py3.6-gcc7-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-py3.6-gcc7:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_trusty_pynightly_build:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-pynightly-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-pynightly:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-pynightly:282"
<<: *pytorch_linux_build_defaults
pytorch_linux_trusty_pynightly_test:
environment:
JOB_BASE_NAME: pytorch-linux-trusty-pynightly-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-pynightly:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-trusty-pynightly:282"
resource_class: large
<<: *pytorch_linux_test_defaults
pytorch_linux_xenial_py3_clang5_asan_build:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-py3-clang5-asan-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-py3-clang5-asan:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-py3-clang5-asan:282"
PYTHON_VERSION: "3.6"
<<: *pytorch_linux_build_defaults
pytorch_linux_xenial_py3_clang5_asan_test:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-py3-clang5-asan-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-py3-clang5-asan:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-py3-clang5-asan:282"
PYTHON_VERSION: "3.6"
resource_class: large
<<: *pytorch_linux_test_defaults
- pytorch_linux_xenial_cuda8_cudnn6_py3_build:
+ pytorch_linux_xenial_cuda8_cudnn7_py3_build:
environment:
- JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn6-py3-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn7-py3-build
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
+ BUILD_ENVIRONMENT: "pytorch-linux-xenial-cuda8-cudnn7-py3"
<<: *pytorch_linux_build_defaults
- pytorch_linux_xenial_cuda8_cudnn6_py3_test:
+ pytorch_linux_xenial_cuda8_cudnn7_py3_test:
environment:
- JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn6-py3-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn7-py3-test
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
resource_class: gpu.medium
<<: *pytorch_linux_test_defaults
- pytorch_linux_xenial_cuda8_cudnn6_py3_multigpu_test:
+ pytorch_linux_xenial_cuda8_cudnn7_py3_multigpu_test:
environment:
- JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn6-py3-multigpu-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn7-py3-multigpu-test
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
MULTI_GPU: "1"
resource_class: gpu.large
<<: *pytorch_linux_test_defaults
- pytorch_linux_xenial_cuda8_cudnn6_py3_NO_AVX2_test:
+ pytorch_linux_xenial_cuda8_cudnn7_py3_NO_AVX2_test:
environment:
- JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn6-py3-NO_AVX2-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn7-py3-NO_AVX2-test
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
resource_class: gpu.medium
<<: *pytorch_linux_test_defaults
- pytorch_linux_xenial_cuda8_cudnn6_py3_NO_AVX_NO_AVX2_test:
+ pytorch_linux_xenial_cuda8_cudnn7_py3_NO_AVX_NO_AVX2_test:
environment:
- JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn6-py3-NO_AVX-NO_AVX2-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ JOB_BASE_NAME: pytorch-linux-xenial-cuda8-cudnn7-py3-NO_AVX-NO_AVX2-test
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
resource_class: gpu.medium
pytorch_linux_xenial_cuda9_cudnn7_py2_build:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9-cudnn7-py2-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py2:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py2:282"
PYTHON_VERSION: "2.7"
CUDA_VERSION: "9"
<<: *pytorch_linux_build_defaults
pytorch_linux_xenial_cuda9_cudnn7_py2_test:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9-cudnn7-py2-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py2:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py2:282"
PYTHON_VERSION: "2.7"
CUDA_VERSION: "9"
resource_class: gpu.medium
pytorch_linux_xenial_cuda9_cudnn7_py3_build:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9-cudnn7-py3-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "9"
<<: *pytorch_linux_build_defaults
pytorch_linux_xenial_cuda9_cudnn7_py3_test:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9-cudnn7-py3-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "9"
resource_class: gpu.medium
pytorch_linux_xenial_cuda9_2_cudnn7_py3_gcc7_build:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "9.2"
<<: *pytorch_linux_build_defaults
pytorch_linux_xenial_cuda9_2_cudnn7_py3_gcc7_test:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9.2-cudnn7-py3-gcc7:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "9.2"
resource_class: gpu.medium
pytorch_linux_xenial_cuda10_cudnn7_py3_gcc7_build:
environment:
JOB_BASE_NAME: pytorch-linux-xenial-cuda10-cudnn7-py3-gcc7-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda10-cudnn7-py3-gcc7:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda10-cudnn7-py3-gcc7:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "10"
<<: *pytorch_linux_build_defaults
pytorch_short_perf_test_gpu:
environment:
JOB_BASE_NAME: pytorch-short-perf-test-gpu
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
PYTHON_VERSION: "3.6"
CUDA_VERSION: "8"
resource_class: gpu.medium
pytorch_doc_push:
environment:
JOB_BASE_NAME: pytorch-doc-push
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn6-py3:278"
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda8-cudnn7-py3:282"
resource_class: large
machine:
image: default
chmod a+x .jenkins/pytorch/macos-build.sh
unbuffer .jenkins/pytorch/macos-build.sh 2>&1 | ts
- caffe2_py2_cuda8_0_cudnn6_ubuntu16_04_build:
- environment:
- JOB_BASE_NAME: caffe2-py2-cuda8.0-cudnn6-ubuntu16.04-build
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda8.0-cudnn6-ubuntu16.04:238"
- CUDA_VERSION: "8"
- BUILD_ENVIRONMENT: "py2-cuda8.0-cudnn6-ubuntu16.04"
- <<: *caffe2_linux_build_defaults
-
- caffe2_py2_cuda8_0_cudnn6_ubuntu16_04_test:
- environment:
- JOB_BASE_NAME: caffe2-py2-cuda8.0-cudnn6-ubuntu16.04-test
- DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda8.0-cudnn6-ubuntu16.04:238"
- CUDA_VERSION: "8"
- BUILD_ENVIRONMENT: "py2-cuda8.0-cudnn6-ubuntu16.04"
- resource_class: gpu.medium
- <<: *caffe2_linux_test_defaults
-
caffe2_py2_cuda9_0_cudnn7_ubuntu16_04_build:
environment:
JOB_BASE_NAME: caffe2-py2-cuda9.0-cudnn7-ubuntu16.04-build
environment:
JOB_BASE_NAME: caffe2-py2-cuda8.0-cudnn7-ubuntu16.04-build
DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda8.0-cudnn7-ubuntu16.04:238"
+ CUDA_VERSION: "8"
BUILD_ENVIRONMENT: "py2-cuda8.0-cudnn7-ubuntu16.04"
- BUILD_ONLY: "1"
<<: *caffe2_linux_build_defaults
+ caffe2_py2_cuda8_0_cudnn7_ubuntu16_04_test:
+ environment:
+ JOB_BASE_NAME: caffe2-py2-cuda8.0-cudnn7-ubuntu16.04-test
+ DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda8.0-cudnn7-ubuntu16.04:238"
+ CUDA_VERSION: "8"
+ BUILD_ENVIRONMENT: "py2-cuda8.0-cudnn7-ubuntu16.04"
+ resource_class: gpu.medium
+ <<: *caffe2_linux_test_defaults
+
caffe2_py2_gcc4_9_ubuntu14_04_build:
environment:
JOB_BASE_NAME: caffe2-py2-gcc4.9-ubuntu14.04-build
- pytorch_linux_xenial_py3_clang5_asan_test:
requires:
- pytorch_linux_xenial_py3_clang5_asan_build
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
- - pytorch_linux_xenial_cuda8_cudnn6_py3_test:
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_test:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
- - pytorch_linux_xenial_cuda8_cudnn6_py3_multigpu_test:
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_multigpu_test:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
- - pytorch_linux_xenial_cuda8_cudnn6_py3_NO_AVX2_test:
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_NO_AVX2_test:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
- - pytorch_linux_xenial_cuda8_cudnn6_py3_NO_AVX_NO_AVX2_test:
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_NO_AVX_NO_AVX2_test:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
- pytorch_short_perf_test_gpu:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
- pytorch_doc_push:
requires:
- - pytorch_linux_xenial_cuda8_cudnn6_py3_build
+ - pytorch_linux_xenial_cuda8_cudnn7_py3_build
- pytorch_linux_xenial_cuda9_cudnn7_py2_build
- pytorch_linux_xenial_cuda9_cudnn7_py2_test:
requires:
- caffe2_onnx_py2_gcc5_ubuntu16_04_build
- caffe2_py2_cuda8_0_cudnn7_ubuntu16_04_build
+ - caffe2_py2_cuda8_0_cudnn7_ubuntu16_04_test:
+ requires:
+ - caffe2_py2_cuda8_0_cudnn7_ubuntu16_04_build
- caffe2_py2_clang3_8_ubuntu16_04_build
- caffe2_py2_clang3_9_ubuntu16_04_build
- caffe2_py2_clang7_ubuntu16_04_build
#include <ATen/cuda/ATenCUDAGeneral.h>
#include <cuda.h>
-#if CUDNN_VERSION < 7000
-
-#include <curand_kernel.h>
-
-/*
-Note [cuDNN dropout descriptor initialization]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In most cases, setting descriptors in cuDNN is cheap (e.g.,
-cudnnSetTensorNdDescriptor). However, this is not the case for
-cudnnSetDropoutDescriptor: in cuDNN 6/7 (and possibly others) it does an
-expensive precomputation to initialize the random number generator states. In
-cuDNN 6, this is the ONLY official mechanism to initialize a dropout descriptor,
-which means that law-abiding clients were expected to generate a dropout
-descriptor once and cache it. However, our ATen interface is (1) stateless (so
-we can't cache the descriptors) and (2) does not accept arbitrary user types in
-its interface (so we can't pass the descriptor in). This puts us in a pickle.
-
-In cuDNN 7, a new function, cudnnRestoreDropoutDescriptor was added, which
-forgoes the expensive initialization process, and can initialize the
-descriptor with a pre-initialized state CUDA tensor. This is great, because
-it means we can simply pass in the state tensor and then initialize the
-descriptor internally. Unfortunately, this function is not available in
-cuDNN 6.
-
-To work around this, we break the cuDNN abstraction barrier, and have
-the struct layout of the underlaying dropout descriptor. With this struct,
-we can reimplement cudnnRestoreDropoutDescriptor from scratch. Great!
-*/
-
-// Reverse engineered from cuDNN 6, see Note [cuDNN dropout descriptor initialization]
-struct cudnnDropoutStruct {
- float dropout;
- int nstates;
- void * states;
-};
-
-#endif
-
namespace at { namespace native {
// TODO: Add constructors for all of the descriptors
if (dataType == CUDNN_DATA_HALF) mathType = CUDNN_DATA_FLOAT;
AT_CUDNN_CHECK(cudnnSetConvolutionNdDescriptor(mut_desc(), dim, pad, stride, upscale,
CUDNN_CROSS_CORRELATION, mathType));
-#if CUDNN_VERSION >= 7000
AT_CUDNN_CHECK(cudnnSetConvolutionGroupCount(mut_desc(), groups));
AT_CUDNN_CHECK(cudnnSetConvolutionMathType(mut_desc(), CUDNN_DEFAULT_MATH));
if(dataType == CUDNN_DATA_HALF)
AT_CUDNN_CHECK(cudnnSetConvolutionMathType(mut_desc(), CUDNN_TENSOR_OP_MATH));
-#endif
}
};
}
};
-#if CUDNN_VERSION < 7000
-
-// See Note [cuDNN dropout descriptor initialization]
-inline cudnnStatus_t cudnnRestoreDropoutDescriptor(
- cudnnDropoutDescriptor_t dropoutDesc,
- cudnnHandle_t handle,
- float dropout,
- void *states,
- size_t stateSizeInBytes,
- unsigned long long seed) {
- // Try to accurately simulate cuDNN's behavior, for our cuDNN 6 friends.
- // This is not entirely accurate but is good enough to catch some API
- // uses which would not be compatible in cuDNN 7. Feel free to fix
- // this if you notice something is wrong.
- if (states == nullptr) return CUDNN_STATUS_INVALID_VALUE;
- if (stateSizeInBytes == 0) return CUDNN_STATUS_INVALID_VALUE;
- size_t expectedStateSizeInBytes;
- // State size will differ depending on size of GPU
- auto ret = cudnnDropoutGetStatesSize(handle, &expectedStateSizeInBytes);
- if (ret != CUDNN_STATUS_SUCCESS) return ret;
- if (expectedStateSizeInBytes != stateSizeInBytes) return CUDNN_STATUS_INVALID_VALUE;
- dropoutDesc->dropout = dropout;
- dropoutDesc->nstates = (int)stateSizeInBytes/sizeof(curandState_t);
- dropoutDesc->states = states;
- return CUDNN_STATUS_SUCCESS;
-}
-
-#endif // CUDNN_VERSION
-
struct AT_CUDA_API DropoutDescriptor
: public Descriptor<cudnnDropoutStruct,
&cudnnCreateDropoutDescriptor,
mode,
algo,
datatype));
-#if CUDNN_VERSION >= 7000 && CUDA_VERSION >= 9000
+#if CUDA_VERSION >= 9000
cudaDeviceProp* prop = at::cuda::getCurrentDeviceProperties();
if (prop->major >= 7) {
if (datatype == CUDNN_DATA_HALF) {
}
};
-#if CUDNN_VERSION >= 7000
-
struct AT_CUDA_API CTCLossDescriptor
: public Descriptor<cudnnCTCLossStruct,
&cudnnCreateCTCLossDescriptor,
}
};
-#endif
-
union Constant
{
float f;
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED,
-#if CUDNN_VERSION >= 6000
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING,
-#endif
};
// NOTE: - 1 because ALGO_WINOGRAD is not implemented
static constexpr int num_algos = CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT - 1;
// See #4500
Tensor weight_contig = weight->contiguous();
-#if CUDNN_VERSION < 7000
- for (int i = 0; i < groups; i++) {
- raw_cudnn_convolution_forward_out(
- narrowGroup(*output, output_channels_dim, i, groups),
- narrowGroup(*input, input_channels_dim, i, groups),
- narrowGroup(weight_contig, weight_output_channels_dim, i, groups),
- padding, stride, dilation, 1, benchmark, deterministic);
- }
-#else
raw_cudnn_convolution_forward_out(
*output, *input, weight_contig,
padding, stride, dilation, groups, benchmark, deterministic);
-#endif
return *output;
}
// See #4500
Tensor weight_contig = weight->contiguous();
-#if CUDNN_VERSION < 7000
- for (int i = 0; i < groups; i++) {
- raw_cudnn_convolution_backward_input_out(
- narrowGroup(*grad_input, input_channels_dim, i, groups),
- narrowGroup(*grad_output, output_channels_dim, i, groups),
- narrowGroup(weight_contig, weight_output_channels_dim, i, groups),
- padding, stride, dilation, 1, benchmark, deterministic);
- }
-#else
raw_cudnn_convolution_backward_input_out(
*grad_input, *grad_output, weight_contig,
padding, stride, dilation, groups, benchmark, deterministic);
-#endif
return *grad_input;
}
TensorArg grad_weight{ grad_weight_t, "result", 0 };
convolution_shape_check(c, input, grad_weight, grad_output, padding, stride, dilation, groups);
-#if CUDNN_VERSION < 7000
- for (int i = 0; i < groups; i++) {
- raw_cudnn_convolution_backward_weight_out(
- narrowGroup(*grad_weight, weight_output_channels_dim, i, groups),
- narrowGroup(*grad_output, output_channels_dim, i, groups),
- narrowGroup(*input, input_channels_dim, i, groups),
- padding, stride, dilation, groups, benchmark, deterministic);
- }
-#else
raw_cudnn_convolution_backward_weight_out(
*grad_weight, *grad_output, *input,
padding, stride, dilation, groups, benchmark, deterministic);
-#endif
return grad_weight_t;
}