Skip to content

Commit 8f3a774

Browse files
committed
Added info for nvidia spark
1 parent af67e57 commit 8f3a774

10 files changed

Lines changed: 1905 additions & 198 deletions

File tree

docs/TODO/gb10-future-enhancements.md

Lines changed: 868 additions & 0 deletions
Large diffs are not rendered by default.

docs/summaries/vllm-integration.md

Lines changed: 91 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# vLLM Integration for NVIDIA DGX Systems
1+
# vLLM Integration for NVIDIA GB10 (Grace Blackwell) Systems
22

33
**Date**: 2025-05-10
44
**Status**: Completed
55
**Type**: Feature Addition
66

77
## Summary
88

9-
Added comprehensive vLLM support to SAIGEN for high-performance local LLM inference on NVIDIA DGX systems. This enables zero-cost saidata generation using GPU-accelerated local models.
9+
Added comprehensive vLLM support to SAIGEN for high-performance local LLM inference on NVIDIA GB10 (Grace Blackwell) desktop workstations. This enables zero-cost saidata generation using GPU-accelerated local models.
1010

1111
## Changes Made
1212

@@ -15,15 +15,16 @@ Added comprehensive vLLM support to SAIGEN for high-performance local LLM infere
1515
Created a dedicated vLLM provider with:
1616
- OpenAI-compatible API integration
1717
- Support for popular models (Llama 3, Mixtral, CodeLlama, Qwen2)
18-
- GPU memory and tensor parallelism configuration
18+
- GPU memory configuration optimized for GB10's 128GB unified memory
1919
- Model hardware requirements database
20-
- Optimized defaults for DGX systems
20+
- Optimized defaults for GB10 workstation
2121

2222
**Key Features**:
2323
- Automatic model configuration based on known models
24-
- Hardware requirements lookup (GPU memory, recommended parallelism)
24+
- Hardware requirements lookup (GPU memory, recommended settings)
2525
- Zero-cost token usage tracking
26-
- Extended timeout defaults for large models
26+
- Extended timeout defaults for network latency
27+
- Remote and local deployment support
2728

2829
### 2. Provider Registration
2930

@@ -39,7 +40,7 @@ Created comprehensive documentation:
3940
**`saigen/docs/vllm-dgx-setup.md`**:
4041
- Installation instructions
4142
- Server startup configurations
42-
- Model recommendations for DGX A100
43+
- Model recommendations for GB10 (Grace Blackwell)
4344
- Performance optimization guide
4445
- Monitoring and troubleshooting
4546
- Systemd service configuration
@@ -50,7 +51,7 @@ Created comprehensive documentation:
5051
- Production-ready configuration
5152
- Multi-provider setup (primary + fallback)
5253
- Optimized batch processing settings
53-
- DGX-specific tuning parameters
54+
- GB10-specific tuning parameters for single-GPU workstation
5455

5556
### 4. Development Tools
5657

@@ -75,26 +76,45 @@ Updated `saigen/docs/README.md`:
7576

7677
## Supported Models
7778

78-
### Recommended for DGX A100
79+
### Recommended for GB10 (Grace Blackwell)
7980

80-
| Model | GPUs | Memory | Use Case |
81-
|-------|------|--------|----------|
82-
| Llama 3 8B | 1 | 16GB | Fast iteration |
83-
| Llama 3 70B | 2-4 | 140GB | Production quality |
84-
| Mixtral 8x7B | 2 | 90GB | Balanced performance |
85-
| CodeLlama 34B | 2 | 70GB | Code generation |
86-
| Qwen2 72B | 4 | 145GB | Multilingual |
81+
| Model | Memory | Use Case |
82+
|-------|--------|----------|
83+
| Llama 3 8B | 16GB | Production quality (recommended) |
84+
| Mistral 7B | 16GB | Fast, balanced performance |
85+
| CodeLlama 7B | 16GB | Code generation |
86+
| Qwen2 7B | 16GB | Multilingual |
87+
| Phi-3 Medium | 8GB | Very fast, lower quality |
8788

8889
## Usage Examples
8990

90-
### Start vLLM Server
91+
### On GB10: Start vLLM Server
9192
```bash
92-
./scripts/development/saigen/start-vllm-dgx.sh meta-llama/Meta-Llama-3-70B-Instruct 4
93+
# On GB10 workstation
94+
./scripts/development/saigen/start-vllm-dgx.sh
95+
96+
# Or with specific model
97+
./scripts/development/saigen/start-vllm-dgx.sh meta-llama/Meta-Llama-3-8B-Instruct
98+
99+
# For remote access, ensure --host 0.0.0.0
100+
python -m vllm.entrypoints.openai.api_server \
101+
--model meta-llama/Meta-Llama-3-8B-Instruct \
102+
--host 0.0.0.0 \
103+
--port 8000
93104
```
94105

95106
### Generate with vLLM
107+
108+
**Local (on GB10):**
96109
```bash
97110
saigen generate nginx --llm-provider vllm
111+
saigen batch generate list.txt --llm-provider vllm --max-concurrent 15
112+
```
113+
114+
**Remote (from dev machine):**
115+
```bash
116+
# Configure base_url to point to GB10's IP
117+
saigen generate nginx --llm-provider vllm
98118
saigen batch generate list.txt --llm-provider vllm --max-concurrent 10
99119
```
100120

@@ -105,27 +125,43 @@ python scripts/development/saigen/test-vllm-provider.py
105125

106126
## Configuration
107127

108-
Minimal configuration in `~/.saigen/config.yaml`:
128+
### Local Setup (SAIGEN on GB10)
109129

110130
```yaml
111131
llm_providers:
112132
vllm:
113133
provider: "vllm"
114134
base_url: "http://localhost:8000/v1"
115-
model: "meta-llama/Meta-Llama-3-70B-Instruct"
135+
model: "meta-llama/Meta-Llama-3-8B-Instruct"
136+
temperature: 0.1
137+
max_tokens: 4096
138+
timeout: 90
139+
enabled: true
140+
```
141+
142+
### Remote Setup (SAIGEN on Dev Machine)
143+
144+
```yaml
145+
llm_providers:
146+
vllm:
147+
provider: "vllm"
148+
base_url: "http://192.168.1.100:8000/v1" # GB10's IP address
149+
model: "meta-llama/Meta-Llama-3-8B-Instruct"
116150
temperature: 0.1
117151
max_tokens: 4096
118-
timeout: 120
152+
timeout: 120 # Longer for network latency
119153
enabled: true
120154
```
121155
122-
## Benefits for DGX Users
156+
## Benefits for GB10 Users
123157
124158
1. **Zero API Costs**: Eliminate OpenAI/Anthropic API expenses
125159
2. **High Throughput**: Continuous batching for efficient GPU utilization
126-
3. **Data Privacy**: All processing stays local
127-
4. **Customization**: Fine-tune models for specific needs
128-
5. **Scalability**: Leverage multiple GPUs for large models
160+
3. **Data Privacy**: All processing stays local on desktop workstation
161+
4. **Unified Memory**: 128GB coherent memory allows larger models than typical single-GPU systems
162+
5. **Desktop Convenience**: Full AI capabilities in workstation form factor
163+
6. **Flexible Deployment**: Run vLLM on GB10, SAIGEN anywhere on network
164+
7. **High-Speed Network**: 200 Gbps ConnectX-7 for fast remote access
129165
130166
## Cost Savings
131167
@@ -155,20 +191,46 @@ All code passes diagnostics:
155191
- ✓ `saigen/models/generation.py`
156192
- ✓ `saigen/llm/providers/__init__.py`
157193

194+
## GB10 Hardware Specifications
195+
196+
- **GPU**: NVIDIA Blackwell Architecture with 5th Gen Tensor Cores
197+
- **CPU**: 20-core Arm (10x Cortex-X925 + 10x Cortex-A725)
198+
- **Performance**: 1 PFLOP tensor performance (FP4)
199+
- **Memory**: 128 GB LPDDR5x unified coherent @ 273 GB/s
200+
- **Storage**: 4 TB NVMe M.2 with self-encryption
201+
- **Network**: 10 GbE + ConnectX-7 @ 200 Gbps + WiFi 7
202+
- **Power**: 240W TDP
203+
- **Form Factor**: Desktop workstation
204+
205+
## Deployment Options
206+
207+
### Option 1: Local (Everything on GB10)
208+
- vLLM server runs on GB10
209+
- SAIGEN runs on GB10
210+
- Best for: Single-user, maximum performance
211+
- Concurrency: 15+ parallel requests
212+
213+
### Option 2: Remote (vLLM on GB10, SAIGEN on Dev Machine)
214+
- vLLM server runs on GB10
215+
- SAIGEN runs on development machine
216+
- Best for: Team access, flexible development
217+
- Network: 10 GbE (10 concurrent) or ConnectX-7 @ 200 Gbps (20+ concurrent)
218+
- Requires: `--host 0.0.0.0` when starting vLLM
219+
158220
## Future Enhancements
159221

160222
Potential improvements:
161223
1. Streaming support for real-time generation
162-
2. Quantization support (AWQ, GPTQ)
224+
2. Enhanced quantization support (AWQ, GPTQ) for 70B+ models
163225
3. Fine-tuning scripts for saidata generation
164-
4. Multi-node distributed inference
165-
5. Automatic model selection based on available GPU memory
226+
4. Automatic model selection based on available memory
227+
5. Load balancing across multiple GB10 workstations
166228

167229
## References
168230

169231
- [vLLM Documentation](https://docs.vllm.ai/)
170232
- [vLLM GitHub](https://github.com/vllm-project/vllm)
171-
- [NVIDIA DGX Documentation](https://docs.nvidia.com/dgx/)
233+
- [NVIDIA Grace Blackwell Documentation](https://www.nvidia.com/en-us/data-center/grace-blackwell-superchip/)
172234

173235
## Related Files
174236

saigen/docs/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ Documentation for SAIGEN (SAI Data Generation) - the AI-powered metadata generat
1818

1919
### Features
2020
- **[rag-indexing-guide.md](rag-indexing-guide.md)** - RAG (Retrieval-Augmented Generation)
21-
- **[vllm-dgx-setup.md](vllm-dgx-setup.md)** - vLLM setup for NVIDIA DGX systems
21+
- **[gb10-deployment-guide.md](gb10-deployment-guide.md)** - Complete GB10 deployment guide
22+
- **[vllm-dgx-setup.md](vllm-dgx-setup.md)** - vLLM setup for NVIDIA GB10 systems
23+
- **[vllm-quick-start.md](vllm-quick-start.md)** - 5-minute vLLM quick start
2224
- **[refresh-versions-command.md](refresh-versions-command.md)** - Refresh versions feature
2325
- **[refresh-versions-quick-reference.md](refresh-versions-quick-reference.md)** - Quick reference
2426
- **[retry-generation-feature.md](retry-generation-feature.md)** - Retry failed generations

saigen/docs/examples/vllm-config-dgx.yaml

Lines changed: 79 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,52 @@
1-
# SAIGEN Configuration for vLLM on NVIDIA DGX Systems
2-
# Optimized for high-performance local LLM inference
1+
# SAIGEN Configuration for vLLM on NVIDIA GB10 (Grace Blackwell) Systems
2+
# Supports both local (on GB10) and remote (development machine) setups
33

44
config_version: "0.1.0"
55
log_level: "info"
66

7-
# vLLM Provider Configuration
7+
# ============================================================================
8+
# OPTION 1: Local Setup (SAIGEN running on GB10)
9+
# ============================================================================
10+
# llm_providers:
11+
# vllm_primary:
12+
# provider: "vllm"
13+
# base_url: "http://localhost:8000/v1"
14+
# model: "meta-llama/Meta-Llama-3-8B-Instruct"
15+
# temperature: 0.1
16+
# max_tokens: 4096
17+
# timeout: 90
18+
# enabled: true
19+
# priority: "high"
20+
21+
# ============================================================================
22+
# OPTION 2: Remote Setup (SAIGEN on development machine, vLLM on GB10)
23+
# ============================================================================
824
llm_providers:
9-
# Primary: vLLM with Llama 3 70B (high quality)
1025
vllm_primary:
1126
provider: "vllm"
12-
base_url: "http://localhost:8000/v1"
13-
model: "meta-llama/Meta-Llama-3-70B-Instruct"
27+
base_url: "http://gb10-hostname:8000/v1" # Replace with GB10 IP/hostname
28+
# Examples:
29+
# base_url: "http://192.168.1.100:8000/v1" # GB10 IP address
30+
# base_url: "http://gb10.local:8000/v1" # mDNS hostname
31+
model: "meta-llama/Meta-Llama-3-8B-Instruct"
1432
temperature: 0.1
1533
max_tokens: 4096
16-
timeout: 120
34+
timeout: 120 # Longer timeout for network latency
1735
enabled: true
1836
priority: "high"
19-
# Server configuration (set when starting vLLM server):
20-
# --tensor-parallel-size 4
21-
# --gpu-memory-utilization 0.95
37+
# Server configuration (set when starting vLLM server on GB10):
38+
# --host 0.0.0.0 (required for remote access)
39+
# --gpu-memory-utilization 0.90
2240
# --max-model-len 8192
2341

24-
# Fallback: vLLM with smaller model (faster, lower quality)
25-
vllm_fast:
42+
# Alternative: Larger model on GB10 (leveraging 128GB unified memory)
43+
vllm_mixtral:
2644
provider: "vllm"
27-
base_url: "http://localhost:8001/v1"
28-
model: "meta-llama/Meta-Llama-3-8B-Instruct"
45+
base_url: "http://gb10-hostname:8001/v1"
46+
model: "mistralai/Mixtral-8x7B-Instruct-v0.1"
2947
temperature: 0.1
3048
max_tokens: 4096
31-
timeout: 60
49+
timeout: 120
3250
enabled: false # Enable if running second vLLM instance
3351
priority: "medium"
3452

@@ -85,42 +103,71 @@ validation:
85103
auto_fix_common_issues: true
86104
validate_repository_accuracy: true
87105

88-
# Generation Configuration (optimized for batch processing)
106+
# Generation Configuration
89107
generation:
90108
default_providers:
91109
- "apt"
92110
- "brew"
93111
- "winget"
94112
output_directory: "./saidata"
95113
backup_existing: true
96-
parallel_requests: 10 # Higher for vLLM's continuous batching
97-
request_timeout: 120
114+
# Local setup (SAIGEN on GB10):
115+
parallel_requests: 15 # Higher for local access
116+
# Remote setup (SAIGEN on dev machine):
117+
# parallel_requests: 10 # Moderate for network latency
118+
request_timeout: 90
98119

99120
# URL Validation
100121
enable_url_filter: true
101122
url_filter_timeout: 5
102-
url_filter_max_concurrent: 20 # Higher for DGX network bandwidth
123+
url_filter_max_concurrent: 15
103124

104125
# Advanced Settings
105126
user_agent: "saigen/0.1.0"
106-
max_concurrent_requests: 10 # Leverage vLLM's batching capabilities
107-
request_timeout: 120
127+
max_concurrent_requests: 10
128+
request_timeout: 90
108129

109-
# DGX-Specific Notes:
110-
#
111-
# 1. Start vLLM server before running SAIGEN:
130+
# ============================================================================
131+
# GB10 Setup Instructions
132+
# ============================================================================
133+
#
134+
# Hardware Specs:
135+
# - GPU: NVIDIA Blackwell with 5th Gen Tensor Cores (1 PFLOP FP4)
136+
# - CPU: 20-core Arm (10x Cortex-X925 + 10x Cortex-A725)
137+
# - Memory: 128 GB LPDDR5x unified coherent @ 273 GB/s
138+
# - Network: 10 GbE + ConnectX-7 @ 200 Gbps + WiFi 7
139+
# - Storage: 4 TB NVMe M.2
140+
# - Power: 240W TDP
141+
#
142+
# 1. On GB10: Start vLLM server
112143
# python -m vllm.entrypoints.openai.api_server \
113-
# --model meta-llama/Meta-Llama-3-70B-Instruct \
114-
# --tensor-parallel-size 4 \
115-
# --gpu-memory-utilization 0.95 \
144+
# --model meta-llama/Meta-Llama-3-8B-Instruct \
145+
# --gpu-memory-utilization 0.90 \
116146
# --max-model-len 8192 \
117147
# --host 0.0.0.0 \
118148
# --port 8000
119149
#
120-
# 2. For maximum throughput, increase parallel_requests to match your
121-
# vLLM server's --max-num-seqs setting
150+
# 2. GB10's 128GB unified memory allows larger models:
151+
# - Llama 3 8B: ~16GB (recommended, fast)
152+
# - Mixtral 8x7B: ~90GB (high quality, leverages unified memory)
153+
# - CodeLlama 34B: ~70GB (code generation)
154+
# - Llama 3 70B (AWQ): ~40GB (best quality with quantization)
155+
#
156+
# 3. Network Setup:
157+
# - Local (SAIGEN on GB10): Use localhost, higher concurrency
158+
# - Remote (SAIGEN on dev machine): Use GB10 IP, moderate concurrency
159+
# - 10 GbE: Good for moderate batches
160+
# - ConnectX-7 @ 200 Gbps: Excellent for large batches
161+
# - WiFi 7: Convenient but slower
122162
#
123-
# 3. Monitor GPU usage with: nvidia-smi -l 1
163+
# 4. Monitor GPU usage: nvidia-smi -l 1
124164
#
125-
# 4. For batch generation of thousands of packages:
126-
# saigen batch generate large-list.txt --llm-provider vllm_primary --max-concurrent 10
165+
# 5. Batch generation examples:
166+
# # Local on GB10:
167+
# saigen batch generate list.txt --llm-provider vllm_primary --max-concurrent 15
168+
#
169+
# # Remote over 200 Gbps network:
170+
# saigen batch generate list.txt --llm-provider vllm_primary --max-concurrent 20
171+
#
172+
# # Remote over WiFi 7:
173+
# saigen batch generate list.txt --llm-provider vllm_primary --max-concurrent 5

0 commit comments

Comments
 (0)