#include #include #include #include #include template using shared_ptr_class_ = py::class_>; 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) { torch::utils::device_lazy_init(at::kCUDA); return std::make_shared<::c10::cuda::MemPool>( allocator, is_user_created); })) .def_property_readonly("id", &::c10::cuda::MemPool::id) .def_property_readonly("allocator", &::c10::cuda::MemPool::allocator) .def("use_count", &::c10::cuda::MemPool::use_count); shared_ptr_class_<::c10::cuda::MemPoolContext>(torch_C_m, "_MemPoolContext") .def(py::init()) .def_static( "active_pool", &::c10::cuda::MemPoolContext::getActiveMemPool); }