Allocates memory from upstream resources associated with bin sizes.
More...
#include <binning_memory_resource.hpp>
|
static constexpr std::size_t | allocation_alignment = 256 |
|
template<typename Upstream>
class rmm::mr::binning_memory_resource< Upstream >
Allocates memory from upstream resources associated with bin sizes.
- Template Parameters
-
UpstreamResource | memory_resource to use for allocations that don't fall within any configured bin size. Implements rmm::mr::device_memory_resource interface. |
◆ binning_memory_resource() [1/2]
template<typename Upstream >
Construct a new binning memory resource object.
Initially has no bins, so simply uses the upstream_resource until bin resources are added with add_bin
.
- Exceptions
-
- Parameters
-
upstream_resource | The upstream memory resource used to allocate bin pools. |
◆ binning_memory_resource() [2/2]
template<typename Upstream >
Construct a new binning memory resource object with a range of initial bins.
Constructs a new binning memory resource and adds bins backed by fixed_size_memory_resource
in the range [2^min_size_exponent, 2^max_size_exponent]. For example if min_size_exponent==18
and max_size_exponent==22
, creates bins of sizes 256KiB, 512KiB, 1024KiB, 2048KiB and 4096KiB.
- Parameters
-
upstream_resource | The upstream memory resource used to allocate bin pools. |
min_size_exponent | The minimum base-2 exponent bin size. |
max_size_exponent | The maximum base-2 exponent bin size. |
◆ add_bin()
template<typename Upstream >
Add a bin allocator to this resource.
Adds bin_resource
if it is not null; otherwise constructs and adds a fixed_size_memory_resource.
This bin will be used for any allocation smaller than allocation_size
that is larger than the next smaller bin's allocation size.
If there is already a bin of the specified size nothing is changed.
This function is not thread safe.
- Parameters
-
allocation_size | The maximum size that this bin allocates |
bin_resource | The memory resource for the bin |
◆ get_upstream()
template<typename Upstream >
Get the upstream memory_resource object.
- Returns
- UpstreamResource* the upstream memory resource.
◆ supports_get_mem_info()
template<typename Upstream >
|
inlineoverridevirtualnoexcept |
Query whether the resource supports the get_mem_info API.
- Returns
- bool true if the resource supports get_mem_info, false otherwise.
Implements rmm::mr::device_memory_resource.
◆ supports_streams()
template<typename Upstream >
|
inlineoverridevirtualnoexcept |
The documentation for this class was generated from the following file: