How nvidia/cudf works
cuDF is a GPU-accelerated tabular data platform. A typical workflow reads data into columnar tables, applies transformations and analytics such as null handling and groupby aggregation, then returns or writes results. The C++ libcudf API and CUDA implementations provide core operations; Python-facing products expose pandas-like, pandas-accelerator, and Polars interfaces, while Dask provides a documented distributed backend. The tree and README support these product boundaries, but sampled source is limited, so detailed Python-to-C++ bindings and Dask wiring are not asserted.
Main entry points: table.hpp Tables and columns · parquet.hpp File I/O APIs · cudf cudf DataFrame · datasource.hpp Input and output
Components 22
User interfaces
- cudf DataFrame
python/cudf/cudf - cudf.pandas
python/cudf/cudf - cudf-polars GPU
python/cudf_polars/cudf_polars/engine/default_singleton_engine.py - Dask backend
- Java API
java/src/main/java/ai/rapids/cudf/Aggregation.java
Columnar core
- Tables and columns
cpp/include/cudf/table/table.hpp - Column model
cpp/include/cudf/column/column.hpp - GPU memory
cpp/include/cudf/utilities/memory_resource.hpp
Data analytics
- Column operations
cpp/include/cudf/binaryop.hpp - Groupby aggregation
cpp/include/cudf/groupby.hpp - Joins
cpp/include/cudf/join/join.hpp - String operations
cpp/include/cudf/strings/attributes.hpp - Nested lists
cpp/include/cudf/lists/combine.hpp - Query expressions
python/cudf/cudf/utils/queryutils.py
Data exchange
- File I/O APIs
cpp/include/cudf/io/parquet.hpp - CSV JSON ORC
cpp/include/cudf/io/csv.hpp - Parquet engine
cpp/src/io/parquet/reader.cpp - Arrow interchange
cpp/include/cudf/interop.hpp - Input and output
cpp/include/cudf/io/datasource.hpp
Other components
- Data user
- Data files
- CUDA GPU
Connections 31
- Data user → cudf DataFrame: uses
- Data user → cudf.pandas: launches
- Data user → cudf-polars GPU: collects
- Data user → Dask backend: uses
- Data user → Java API: uses
- cudf DataFrame → File I/O APIs: reads and writes
- cudf.pandas → File I/O APIs: accelerates I/O
- cudf-polars GPU → Tables and columns: executes plans
- Dask backend → Tables and columns: uses GPU backend
- Java API → Tables and columns: accesses tables
- File I/O APIs → CSV JSON ORC: dispatches formats
- File I/O APIs → Parquet engine: calls reader/writer
- File I/O APIs → Input and output: accesses sources
- Parquet engine → Input and output: reads and writes
- CSV JSON ORC → Input and output: accesses sources
- Data files → Input and output: provides bytes
- File I/O APIs → Tables and columns: produces tables
- cudf DataFrame → Tables and columns: operates on
- cudf.pandas → cudf DataFrame: fallbacks to
- Tables and columns → Column model: organizes
- Tables and columns → Column operations: transforms
- Tables and columns → Groupby aggregation: aggregates
- Tables and columns → Joins: joins
- Tables and columns → String operations: processes strings
- Tables and columns → Nested lists: processes lists
- cudf DataFrame → Query expressions: compiles queries
- Query expressions → Tables and columns: evaluates expressions
- Column model → GPU memory: uses allocations
- Column operations → CUDA GPU: executes on
- Groupby aggregation → CUDA GPU: executes on
- Joins → CUDA GPU: executes on