#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) { torch::utils::device_lazy_init(at::kCUDA); return std::make_shared<::c10::cuda::MemPool>( allocator, is_user_created, use_on_oom); })) .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); }