108 lines
2.8 KiB
Markdown
108 lines
2.8 KiB
Markdown
# GPU Acceleration Root Cause Analysis for PaddleOCR
|
|
|
|
## Current System Status
|
|
|
|
### Hardware Configuration
|
|
- **GPU**: NVIDIA GeForce RTX 4070 (12GB VRAM)
|
|
- **CUDA Version**: 13.0
|
|
- **Driver Version**: 581.15
|
|
|
|
### Software Status
|
|
- **Current PaddlePaddle**: CPU-only version (3.2.0)
|
|
- **PaddleOCR**: 3.3.0 (uninstalled)
|
|
- **System**: Windows Server 2022
|
|
|
|
## Root Cause Analysis
|
|
|
|
### 1. **Incorrect PaddlePaddle Installation**
|
|
- **Problem**: Installed CPU-only version of PaddlePaddle
|
|
- **Evidence**: `paddle.device.is_compiled_with_cuda()` returns `False`
|
|
- **Impact**: PaddleOCR cannot use GPU acceleration
|
|
|
|
### 2. **Parameter Compatibility Issues**
|
|
- **Problem**: Using deprecated `use_angle_cls` parameter
|
|
- **Solution**: Updated to `use_textline_orientation=True`
|
|
- **Status**: ✅ Fixed
|
|
|
|
### 3. **GPU Parameter Support**
|
|
- **Problem**: PaddleOCR 3.3.0 doesn't support `use_gpu` or `gpu_id` parameters
|
|
- **Root Cause**: These parameters were removed in newer versions
|
|
- **Solution**: Install GPU-enabled PaddlePaddle framework
|
|
|
|
## Solution Implementation
|
|
|
|
### Step 1: Install GPU-Enabled PaddlePaddle
|
|
```bash
|
|
# Uninstall CPU version
|
|
pip uninstall paddlepaddle paddleocr -y
|
|
|
|
# Install GPU version compatible with CUDA 13.0
|
|
pip install paddlepaddle-gpu==2.6.0 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
|
|
```
|
|
|
|
### Step 2: Reinstall PaddleOCR
|
|
```bash
|
|
pip install paddleocr
|
|
```
|
|
|
|
### Step 3: Verify GPU Support
|
|
```python
|
|
import paddle
|
|
import paddleocr
|
|
|
|
print(f"PaddlePaddle GPU support: {paddle.device.is_compiled_with_cuda()}")
|
|
print(f"Available GPUs: {paddle.device.cuda.device_count()}")
|
|
|
|
# Test GPU usage
|
|
ocr = paddleocr.PaddleOCR(use_textline_orientation=True, lang='en')
|
|
```
|
|
|
|
## Expected Performance Improvements
|
|
|
|
### CPU vs GPU Performance
|
|
- **CPU Processing**: ~1-2 seconds per page
|
|
- **GPU Processing**: ~0.1-0.3 seconds per page
|
|
- **Speedup**: 5-10x faster
|
|
|
|
### Memory Usage
|
|
- **CPU**: Uses system RAM
|
|
- **GPU**: Uses GPU VRAM (RTX 4070 has 12GB)
|
|
- **Benefit**: Frees system RAM for other processes
|
|
|
|
## Verification Steps
|
|
|
|
1. **Check GPU Detection**
|
|
- Verify PaddlePaddle detects GPU
|
|
- Confirm CUDA compatibility
|
|
|
|
2. **Test OCR Performance**
|
|
- Process sample PDF with GPU
|
|
- Compare processing times
|
|
- Verify text extraction accuracy
|
|
|
|
3. **System Integration**
|
|
- Test through LightRAG WebUI
|
|
- Verify document upload and processing
|
|
- Confirm entity and relationship extraction
|
|
|
|
## Fallback Strategy
|
|
|
|
If GPU installation fails:
|
|
- Use CPU version with Intel oneDNN optimization
|
|
- Enable `enable_mkldnn=True` for CPU acceleration
|
|
- Accept slower but functional OCR processing
|
|
|
|
## Current Status
|
|
|
|
✅ **Completed**:
|
|
- Root cause identified
|
|
- Parameter fixes applied
|
|
- GPU-enabled PaddlePaddle installation in progress
|
|
|
|
🔄 **In Progress**:
|
|
- GPU version installation
|
|
- System verification
|
|
|
|
📋 **Pending**:
|
|
- Performance testing
|
|
- Production deployment verification |