Home
librmm
libucxx
ucxx
nightly (26.12)
nightly (26.12)
stable (26.10)
legacy (26.08)
Toggle main menu visibility
Loading...
Searching...
No Matches
include
rmm
mr
callback_memory_resource.hpp
1
/*
2
* SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3
* SPDX-License-Identifier: Apache-2.0
4
*/
5
#pragma once
6
7
#include <rmm/detail/export.hpp>
8
#include <rmm/mr/detail/callback_memory_resource_impl.hpp>
9
#include <
rmm/resource_ref.hpp
>
10
11
#include <cuda/memory_resource>
12
#include <cuda/stream>
13
14
#include <cstddef>
15
#include <functional>
16
17
RMM_NAMESPACE_BEGIN
18
namespace
mr {
23
41
using
allocate_callback_t
= std::function<
void
*(cuda::stream_ref, std::size_t, std::size_t,
void
*)>;
42
61
using
deallocate_callback_t
=
62
std::function<void(cuda::stream_ref,
void
*, std::size_t, std::size_t,
void
*)>;
63
64
namespace
detail {
65
class
callback_memory_resource_impl;
66
}
67
75
class
RMM_EXPORT
callback_memory_resource
76
:
public
cuda::mr::shared_resource<detail::callback_memory_resource_impl> {
77
using
shared_base = cuda::mr::shared_resource<detail::callback_memory_resource_impl>;
78
79
public
:
83
RMM_CONSTEXPR_FRIEND
void
get_property
(
callback_memory_resource
const
&,
84
cuda::mr::device_accessible)
noexcept
85
{
86
}
87
103
callback_memory_resource
(
allocate_callback_t
allocate_callback,
104
deallocate_callback_t
deallocate_callback,
105
void
* allocate_callback_arg =
nullptr
,
106
void
* deallocate_callback_arg =
nullptr
);
107
108
callback_memory_resource
() =
delete
;
109
~callback_memory_resource
() =
default
;
110
};
111
112
static_assert
(cuda::mr::resource_with<callback_memory_resource, cuda::mr::device_accessible>,
113
"callback_memory_resource does not satisfy the cuda::mr::resource concept"
);
114
// end of group
116
}
// namespace mr
117
RMM_NAMESPACE_END
rmm::mr::callback_memory_resource::get_property
friend void get_property(callback_memory_resource const &, cuda::mr::device_accessible) noexcept
Enables the cuda::mr::device_accessible property.
Definition
callback_memory_resource.hpp:83
rmm::mr::callback_memory_resource::callback_memory_resource
callback_memory_resource(allocate_callback_t allocate_callback, deallocate_callback_t deallocate_callback, void *allocate_callback_arg=nullptr, void *deallocate_callback_arg=nullptr)
Construct a new callback memory resource.
rmm::mr::allocate_callback_t
std::function< void *(cuda::stream_ref, std::size_t, std::size_t, void *)> allocate_callback_t
Callback function type used by callback memory resource for allocation.
Definition
callback_memory_resource.hpp:41
rmm::mr::deallocate_callback_t
std::function< void(cuda::stream_ref, void *, std::size_t, std::size_t, void *)> deallocate_callback_t
Callback function type used by callback_memory_resource for deallocation.
Definition
callback_memory_resource.hpp:61
resource_ref.hpp
Generated by
1.18.0