18 #include <rmm/mr/device/device_memory_resource.hpp>
20 #include <rmm/cuda_stream_view.hpp>
21 #include <rmm/detail/error.hpp>
71 if (bytes == 0) {
return nullptr; }
74 RMM_CUDA_TRY_ALLOC(cudaMallocManaged(&ptr, bytes));
87 void do_deallocate(
void* ptr, std::size_t, cuda_stream_view)
override
89 RMM_ASSERT_CUDA_SUCCESS(cudaFree(ptr));
104 [[nodiscard]]
bool do_is_equal(device_memory_resource
const& other)
const noexcept
override
106 return dynamic_cast<managed_memory_resource const*
>(&other) !=
nullptr;
117 [[nodiscard]] std::pair<std::size_t, std::size_t> do_get_mem_info(
118 cuda_stream_view stream)
const override
120 std::size_t free_size{};
121 std::size_t total_size{};
122 RMM_CUDA_TRY(cudaMemGetInfo(&free_size, &total_size));
123 return std::make_pair(free_size, total_size);