rapidsai/cudf

Add `peak_memory_usage` to all nvbench benchmarks

Closed

#10,528 opened on Mar 28, 2022

 (12 comments) (0 reactions) (1 assignee)C++ (735 forks)batch import
0 - BacklogPerformancefeature requestgood first issuelibcudf

Repository metrics

Stars
 (6,000 stars)
PR merge metrics
 (Avg merge 17d 21h) (230 merged PRs in 30d)

Description

Update (2023-12-05): Adding peak_memory_usage to nvbenchmarks can be accomplished with this pattern:

auto const mem_stats_logger = cudf::memory_stats_logger(); 

state.exec( ... );

state.add_buffer_size(
    mem_stats_logger.peak_memory_usage(), 
    "peak_memory_usage", 
    "peak_memory_usage"
);

Please consult the cuIO benchmarks for how to add peak memory tracking. If we are tracking peak memory usage as well as bytes per second, then we can estimate memory footprint across the libcudf API.

Original issue: #7770 added support for peak memory usage to cuIO benchmarks using rmm's statistics_resource_adapter. It would be nice to be able to expand that to all of our benchmarks so that we could more easily detect regressions in memory usage. This would be particularly useful for the Dask cuDF team, which is always looking to identify bottlenecks from memory usage. There was already discussion of doing this in #7770, so we should investigate following up now.

Contributor guide