ai-content-maker/.venv/Lib/site-packages/torch/include/ATen/MemoryOverlap.h

43 lines
1.3 KiB
C
Raw Normal View History

2024-05-03 04:18:51 +03:00
#pragma once
#include <c10/macros/Export.h>
namespace c10 {
struct TensorImpl;
}
namespace at {
class TensorBase;
// MemOverlap: Whether or not there is memory overlap
//
// No: Absolutely no memory overlap
// Yes: Absolutely yes memory overlap
// TooHard: 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, TooHard };
enum class MemOverlapStatus { Full, Partial, No, TooHard };
TORCH_API MemOverlap has_internal_overlap(const TensorBase& t);
TORCH_API MemOverlap has_internal_overlap(c10::TensorImpl* t);
TORCH_API void assert_no_internal_overlap(const TensorBase& t);
TORCH_API void assert_no_internal_overlap(c10::TensorImpl* t);
TORCH_API MemOverlapStatus
get_overlap_status(const TensorBase& a, const TensorBase& b);
TORCH_API MemOverlapStatus
get_overlap_status(const c10::TensorImpl* a, const c10::TensorImpl* b);
TORCH_API void assert_no_partial_overlap(
const TensorBase& a,
const TensorBase& b);
void assert_no_partial_overlap(c10::TensorImpl* a, c10::TensorImpl* b);
TORCH_API void assert_no_overlap(const TensorBase& a, const TensorBase& b);
TORCH_API void assert_no_overlap(c10::TensorImpl* a, c10::TensorImpl* b);
} // namespace at