#include #include #include #include #include template using shared_ptr_class_ = py::class_>; // NOLINTNEXTLINE(misc-use-internal-linkage) void THCPMemPool_init(PyObject* module) { auto torch_C_m = py::handle(module).cast(); shared_ptr_class_<::c10::cuda::MemPool>(torch_C_m, "_MemPool") .def( py::init([](c10::cuda::CUDACachingAllocator::CUDAAllocator* allocator, bool is_user_created, bool use_on_oom, bool symmetric) { torch::utils::device_lazy_init(at::kCUDA); return std::make_shared<::c10::cuda::MemPool>( allocator, is_user_created, use_on_oom, symmetric); })) .def_property_readonly("id", &::c10::cuda::MemPool::id) .def_property_readonly( "is_symmetric", &::c10::cuda::MemPool::is_symmetric) .def_property_readonly("allocator", &::c10::cuda::MemPool::allocator) .def("use_count", &::c10::cuda::MemPool::use_count); }