This is an automated email from the ASF dual-hosted git repository.
chengchengjin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 5d8691c9fe [GLUTEN-9930][VL] Update GPU document (#10061)
5d8691c9fe is described below
commit 5d8691c9fecebad5e01ad59d05babda3e8f7f5b3
Author: Jin Chengcheng <[email protected]>
AuthorDate: Fri Jun 27 07:33:30 2025 +0100
[GLUTEN-9930][VL] Update GPU document (#10061)
---
docs/get-started/VeloxGPU.md | 86 ++++++++++++++++++++++++++++------------
docs/get-started/VeloxIceberg.md | 6 +++
2 files changed, 66 insertions(+), 26 deletions(-)
diff --git a/docs/get-started/VeloxGPU.md b/docs/get-started/VeloxGPU.md
index 440d1d8032..9677649012 100644
--- a/docs/get-started/VeloxGPU.md
+++ b/docs/get-started/VeloxGPU.md
@@ -5,44 +5,78 @@ nav_order: 9
parent: Getting-Started
---
-# GPU Support in Velox Backend
-This is an experimental feature in velox, so as Gluten. Now it only supports
OrderBy operator.
+# GPU Acceleration in Velox/Gluten
+*Unified execution engine leveraging CUDF for hardware-accelerated Spark SQL
queries*
-Velox has several GPU support implementations, Gluten only enables cudf.
+---
+
+## **1. Overview**
+- **Purpose**: Accelerate Velox operators via CUDF APIs, replacing CPU
execution when enabled.
+- **Status**: Experimental (TPC-H SF1 validated). Integrates RAPIDS ecosystem
with Apache Spark via Gluten .
+- **Key Benefit**: Some queries achieved up to **8.1x speedup** on x86 vs.
Spark Java engine .
-## GPU environment
+---
-It requires to install the cuda 12.8.0, driver and the
nvidia-container-toolkit.
+## **2. Prerequisites**
+- **CUDA Toolkit**: 12.8.0
([download](https://developer.nvidia.com/cuda-downloads?target_os=Linux)).
+- **NVIDIA Drivers**: Compatible with CUDA 12.8.
+- **Container Toolkit**: Install `nvidia-container-toolkit`
([guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)).
+- **System Reboot**: Required after driver installation.
+- **Environment Setup**: Use
[`start_cudf.sh`](https://github.com/apache/incubator-gluten/tree/main/dev/start_cudf.sh)
for host configuration .
-Refers to
[start_cudf.sh](https://github.com/apache/incubator-gluten/tree/main/dev/start_cudf.sh)
-to set the ``host`` environment and start the container.
+---
-> You may need to reboot after install the GPU driver.
+## **3. Implementation Mechanics**
+- **Operator Conversion**:
+ - Velox PlanNodes → **GPU operators** when
`spark.gluten.sql.columnar.cudf=true`.
+ - Falls back to CPU operators if GPU unsupported (triggers row/columnar
data conversion) .
+- **Debugging**: Enable `spark.gluten.debug.enabled.cudf=true` for operator
replacement logs.
+- **Memory**: Global [RMM](https://docs.rapids.ai/api/librmm/stable/) memory
manager, cannot align with Spark memory system.
-## GPU implementation
+---
-Invokes [CUDF](https://docs.rapids.ai/api/cudf/stable/libcudf_docs/) API to
support the Velox operators.
+## **4. Docker Deployment**
+```bash
+docker pull apache/gluten:centos-9-jdk8-cudf # Pre-built GPU image
+docker run --name gpu_gluten_container --gpus all -it
apache/gluten:centos-9-jdk8-cudf
+```
+- **Image Includes**: Native build cache, Gluten dependencies, Spark 3.4
environment.
-Suppose we have a velox PlanNode, convert it to the GPU operator or CPU
operator depending on the
-config `spark.gluten.sql.columnar.cudf` which decides registering cudf driver
adapter or not.
+---
-Besides, config `spark.gluten.debug.enabled` true can print the operator
replacement information.
+## **5. Build & Deployment**
+#### **Dependencies**
+The OS, Spark version, Java version aligns with Gluten CPU.
-## Docker images
-This docker image contains Spark at env $SPARK_HOME, Gluten at /opt/gluten,
take a try if you are interested on it.
-The Gluten has been built with Spark3.4.
-```
-docker pull apache/gluten:centos-9-jdk8-cudf
-docker run --name gpu_gluten_container --gpus all -itd
apache/gluten:centos-9-jdk8-cudf
+### **Compilation Commands**
+If building in the docker image, no need to set up script and build arrow.
+```bash
+./dev/buildbundle-veloxbe.sh --run_setup_script=OFF --build_arrow=OFF
--enable_cudf=ON
```
-# Branch
-The [PR](https://github.com/facebookincubator/velox/pull/12735/) has not been
merged to
-facebookincubator/velox, so use a fixed Gluten branch `cudf` and corresponding
oap-project velox branch `cudf`.
+---
+
+## **6. GPU Operator Support Status**
+| **Operator** | **Status** | **Notes** |
+|-----------------|-----------------|--------------------------|
+| **Scan** | ❌ Not supported| In Development |
+| **Project** | ⚠️ Partial | Function TPCH-compatible |
+| **Filter** | ✅ Implemented | Core operator |
+| **OrderBy** | ✅ Implemented | Merged in Velox #12735 |
+| **Aggregation** | ⚠️ Partial | TPCH-compatible |
+| **Join** | ⚠️ Partial | TPCH-compatible |
+| **Spill** | ❌ Not supported | In Planning |
+
+---
-# Relevant link
+## **7. Performance Validation**
+
+GPU performs better on operator HashJoin and HashAggregation.
+Single Operator like Hash Agg shows 5x speedup.
+
+---
-Cuda Toolkit 12.8: https://developer.nvidia.com/cuda-downloads?target_os=Linux
-Cuda Container ToolKit:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
-Cudf Document: https://docs.rapids.ai/api/libcudf/legacy/namespacecudf
+## **8. Relevant Resources**
+1. [CUDF Docs](https://docs.rapids.ai/api/cudf/stable/libcudf_docs/) - GPU
operator APIs.
+2. [Gluten GPU Issue
#9098](https://github.com/apache/incubator-gluten/issues/8851) - Development
tracker.
diff --git a/docs/get-started/VeloxIceberg.md b/docs/get-started/VeloxIceberg.md
index 82850acf95..a0cdecca48 100644
--- a/docs/get-started/VeloxIceberg.md
+++ b/docs/get-started/VeloxIceberg.md
@@ -91,6 +91,12 @@ Not support avro format.
## SQL
Only support SELECT.
+## Schema evolution
+PartialOffload
+
+Gluten uses column name to match the parquet file, so if the column is renamed
or
+the added column name is same to the deleted column, the scan will fall back.
+
## Configuration
### Catalogs
Supports all the catalog options, which is not used in native engine.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]