Skip to content

Discourage applications from providing non-default values in async MR #2060

@bdice

Description

@bdice

The RMM async memory resource has a change in behavior in 25.12 to stop priming by default (#1931, #2051). I expect this to have no negative impact, from running PDS-H workflow benchmarks and new microbenchmarks. I would like to discourage the use of passing a non-default initial_pool_size argument (the default is still std::nullopt, but priming no longer occurs in the default case).

Looking at downstream uses of the async memory resource constructor, I see that applications are treating the async MR as if its pool size means the same thing as the RMM pool adaptor. It does not have the same meaning (and this should be clearer in the docs). The async MR's "pool size" is just a priming size (which we are now skipping by default and may remove in the future). The priming allocates and immediately deallocates that "pool" size. The pool adaptor's "pool size" is held and managed by RMM's pool for suballocation.

Examples where we should encourage a change:

Spark:

dask-cuda:

cudf.pandas:

velox:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions