| namespace at::native { | |
| // cuDNN has a buggy check for tensor being contiguous (that is, it does | |
| // not ignore stride for dimension that is equal to 0). This function | |
| // makes tensors which have zero stride contiguous, by setting the | |
| // strides to 1 as cuDNN likes. | |
| inline Tensor contiguousIfZeroInStrides(const Tensor& t) { | |
| for (auto s : t.strides()) { | |
| if (s == 0) | |
| return t.contiguous(); | |
| } | |
| return t; | |
| } | |
| } // namespace at::native | |