From 7425336199f4bcb95cab7a578f58e237f5811a07 Mon Sep 17 00:00:00 2001 From: GALI PREM SAGAR Date: Mon, 29 Jul 2024 18:17:14 -0500 Subject: [PATCH] Apply suggestions from code review Co-authored-by: Mark Harris <783069+harrism@users.noreply.github.com> --- docs/cudf/source/cudf_pandas/how-it-works.md | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/cudf/source/cudf_pandas/how-it-works.md b/docs/cudf/source/cudf_pandas/how-it-works.md index 71eee1ae2c5..595ec0ee8a2 100644 --- a/docs/cudf/source/cudf_pandas/how-it-works.md +++ b/docs/cudf/source/cudf_pandas/how-it-works.md @@ -38,14 +38,19 @@ mode](api.options) is automatically enabled, ensuring consistency with pandas-specific semantics like default sort ordering. -`cudf.pandas` uses a managed pool memory by default, that will also enable +`cudf.pandas` uses a managed memory pool by default. This allows `cudf.pandas` to process datasets larger than the memory of the GPU(s) it is running on. Managed memory prefetching is also enabled by default to improve memory access performance. For more information on CUDA Unified Memory (managed memory), performance and prefetching, see [this NVIDIA Developer blog post](https://developer.nvidia.com/blog/improving-gpu-memory-oversubscription-performance/). prefetching <>. -There are various memory allocators that can be used by changing the environment -variable `CUDF_PANDAS_RMM_MODE`. It supports: +Other memory allocators can be used by changing the environment +variable `CUDF_PANDAS_RMM_MODE` to one of the following. -1. "pool" -2. "async" -3. "managed" (default) -4. "managed_pool" -5. "cuda" +Pool allocators improve allocation performance. Without using one, memory +allocation may be a bottleneck depending on the workload. Managed memory +enables oversubscribing GPU memory. This allows cudf.pandas to process +data larger than GPU memory in many cases, without CPU (Pandas) fallback. + +1. "managed_pool" (default): CUDA Unified Memory (managed memory) with RMM's asynchronous pool allocator. +2. "managed": CUDA Unified Memory, (managed memory) with no pool allocator. +3. "async": CUDA's built-in pool asynchronous pool allocator with normal CUDA device memory. +4. "pool": RMM's asynchronous pool allocator with normal CUDA device memory. +5. "cuda": normal CUDA device memory with no pool allocator.