21 #include <rmm/detail/error.hpp>
73 void* do_allocate(std::size_t bytes, [[maybe_unused]]
cuda_stream_view stream)
override
76 RMM_CUDA_TRY_ALLOC(cudaMalloc(&ptr, bytes));
90 void do_deallocate(
void* ptr,
91 [[maybe_unused]] std::size_t bytes,
92 [[maybe_unused]] cuda_stream_view stream)
override
94 RMM_ASSERT_CUDA_SUCCESS(cudaFree(ptr));
107 [[nodiscard]]
bool do_is_equal(device_memory_resource
const& other)
const noexcept
override
109 return dynamic_cast<cuda_memory_resource const*
>(&other) !=
nullptr;
119 [[nodiscard]] std::pair<std::size_t, std::size_t> do_get_mem_info(cuda_stream_view)
const override
121 std::size_t free_size{};
122 std::size_t total_size{};
123 RMM_CUDA_TRY(cudaMemGetInfo(&free_size, &total_size));
124 return std::make_pair(free_size, total_size);
Strongly-typed non-owning wrapper for CUDA streams with default constructor.
Definition: cuda_stream_view.hpp:41
device_memory_resource derived class that uses cudaMalloc/Free for allocation/deallocation.
Definition: cuda_memory_resource.hpp:35
cuda_memory_resource(cuda_memory_resource const &)=default
Default copy constructor.
bool supports_get_mem_info() const noexcept override
Query whether the resource supports the get_mem_info API.
Definition: cuda_memory_resource.hpp:59
cuda_memory_resource & operator=(cuda_memory_resource const &)=default
Default copy assignment operator.
cuda_memory_resource & operator=(cuda_memory_resource &&)=default
Default move assignment operator.
cuda_memory_resource(cuda_memory_resource &&)=default
Default move constructor.
bool supports_streams() const noexcept override
Query whether the resource supports use of non-null CUDA streams for allocation/deallocation....
Definition: cuda_memory_resource.hpp:52
Base class for all libcudf device memory allocation.
Definition: device_memory_resource.hpp:89