blob: 9407b3452ae7d5117ee212c77cc087efa53d9d1f [file] [log] [blame]
#pragma once
#include <ATen/ATen.h>
namespace at {
// MemOverlap: Whether or not there is memory overlap
//
// NO: Absolutely no memory overlap
// YES: Absolutely yes memory overlap
// TOO_HARD: There might be memory overlap, but it was too expensive to compute.
//
// NB: Please update the python test for these if you renumber them.
enum class MemOverlap { NO, YES, TOO_HARD };
CAFFE2_API MemOverlap has_internal_overlap(const Tensor& t);
CAFFE2_API MemOverlap has_internal_overlap(TensorImpl* t);
CAFFE2_API void assert_no_internal_overlap(const Tensor& t, const std::string& op);
CAFFE2_API void assert_no_internal_overlap(TensorImpl* t, const std::string& op);
}