33 * SPDX-License-Identifier: Apache-2.0
44 */
55
6+ #include " test_memory_resource.hpp"
7+
68#include < raft/core/device_mdarray.hpp>
79#include < raft/core/device_setter.hpp>
810#include < raft/core/memory_tracking_resources.hpp>
2527
2628namespace {
2729
28- struct device_resource_restore_guard {
29- int device_id;
30- raft::mr::device_resource resource;
31-
32- ~device_resource_restore_guard ()
33- {
34- rmm::mr::set_per_device_resource (rmm::cuda_device_id{device_id}, std::move (resource));
35- }
36- };
37-
38- auto current_device_uses_pool_resource () -> bool
39- {
40- auto current_mr = rmm::mr::get_current_device_resource_ref ();
41- return cuda::mr::resource_cast<rmm::mr::pool_memory_resource>(¤t_mr) != nullptr ;
42- }
43-
44- auto current_device_uses_default_cuda_resource () -> bool
45- {
46- auto current_mr = rmm::mr::get_current_device_resource_ref ();
47- return cuda::mr::resource_cast<rmm::mr::cuda_memory_resource>(¤t_mr) != nullptr ;
48- }
49-
5030TEST (MemoryTrackingResources, TracksDeviceAllocations)
5131{
5232 using namespace std ::chrono_literals;
@@ -88,19 +68,8 @@ TEST(MemoryTrackingResources, RestoresDeviceResourceOnConstructionDevice)
8868 auto device0 = 0 ;
8969 auto device1 = 1 ;
9070
91- auto device0_guard = [&]() {
92- auto scoped_device = raft::device_setter{device0};
93- auto upstream = rmm::mr::get_current_device_resource_ref ();
94- return device_resource_restore_guard{
95- device0,
96- rmm::mr::set_current_device_resource (
97- raft::mr::device_resource{rmm::mr::pool_memory_resource (upstream, 1 << 20 , 2 << 20 )})};
98- }();
99-
100- auto device1_guard = [&]() {
101- auto scoped_device = raft::device_setter{device1};
102- return device_resource_restore_guard{device1, rmm::mr::reset_current_device_resource ()};
103- }();
71+ auto device0_guard = raft::test::install_pool_device_resource (device0);
72+ auto device1_guard = raft::test::install_default_device_resource (device1);
10473
10574 {
10675 auto scoped_device = raft::device_setter{device0};
@@ -133,19 +102,8 @@ TEST(MemoryTrackingResources, InstallsTrackedResourceOnHandleDevice)
133102 auto device0 = 0 ;
134103 auto device1 = 1 ;
135104
136- auto device0_guard = [&]() {
137- auto scoped_device = raft::device_setter{device0};
138- auto upstream = rmm::mr::get_current_device_resource_ref ();
139- return device_resource_restore_guard{
140- device0,
141- rmm::mr::set_current_device_resource (
142- raft::mr::device_resource{rmm::mr::pool_memory_resource (upstream, 1 << 20 , 2 << 20 )})};
143- }();
144-
145- auto device1_guard = [&]() {
146- auto scoped_device = raft::device_setter{device1};
147- return device_resource_restore_guard{device1, rmm::mr::reset_current_device_resource ()};
148- }();
105+ auto device0_guard = raft::test::install_pool_device_resource (device0);
106+ auto device1_guard = raft::test::install_default_device_resource (device1);
149107
150108 {
151109 auto scoped_device = raft::device_setter{device0};
@@ -159,25 +117,25 @@ TEST(MemoryTrackingResources, InstallsTrackedResourceOnHandleDevice)
159117
160118 {
161119 auto verify_device0 = raft::device_setter{device0};
162- EXPECT_FALSE (current_device_uses_pool_resource ());
120+ EXPECT_FALSE (raft::test:: current_device_uses_pool_resource ());
163121 }
164122
165123 {
166124 auto verify_device1 = raft::device_setter{device1};
167- EXPECT_TRUE (current_device_uses_default_cuda_resource ());
125+ EXPECT_TRUE (raft::test:: current_device_uses_default_cuda_resource ());
168126 }
169127
170128 tracked.reset ();
171129 }
172130
173131 {
174132 auto scoped_device = raft::device_setter{device0};
175- EXPECT_TRUE (current_device_uses_pool_resource ());
133+ EXPECT_TRUE (raft::test:: current_device_uses_pool_resource ());
176134 }
177135
178136 {
179137 auto scoped_device = raft::device_setter{device1};
180- EXPECT_TRUE (current_device_uses_default_cuda_resource ());
138+ EXPECT_TRUE (raft::test:: current_device_uses_default_cuda_resource ());
181139 }
182140}
183141
0 commit comments