Skip to content

Commit

Permalink
Replace usages of raw get_upstream with get_upstream_resource()
Browse files Browse the repository at this point in the history
We want to get rid of raw memory resources so move to the new interface instead
  • Loading branch information
miscco committed Mar 1, 2024
1 parent ad27a73 commit 9887714
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions cpp/test/core/handle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <rmm/device_buffer.hpp>
#include <rmm/mr/device/device_memory_resource.hpp>
#include <rmm/mr/device/pool_memory_resource.hpp>
#include <rmm/resource_ref.hpp>

#include <cuda_runtime.h>

Expand Down Expand Up @@ -281,7 +282,8 @@ TEST(Raft, WorkspaceResource)
raft::handle_t handle;

// The returned resource is always a limiting adaptor
auto* orig_mr = resource::get_workspace_resource(handle)->get_upstream();
rmm::device_async_resource_ref orig_mr{
resource::get_workspace_resource(handle)->get_upstream_resource()};

// Let's create a pooled resource
auto pool_mr = std::shared_ptr<rmm::mr::device_memory_resource>{new rmm::mr::pool_memory_resource(
Expand All @@ -292,11 +294,11 @@ TEST(Raft, WorkspaceResource)

// Replace the resource
resource::set_workspace_resource(handle, pool_mr, max_size);
auto new_mr = resource::get_workspace_resource(handle);
rmm::device_async_resource_ref new_mr{resource::get_workspace_resource(handle)};

// By this point, the orig_mr likely points to a non-existent resource; don't dereference!
ASSERT_NE(orig_mr, new_mr);
ASSERT_EQ(pool_mr.get(), new_mr->get_upstream());
ASSERT_EQ(rmm::device_async_resource_ref{pool_mr.get()}, new_mr);
// We can safely reset pool_mr, because the shared_ptr to the pool memory stays in the resource
pool_mr.reset();

Expand Down

0 comments on commit 9887714

Please sign in to comment.