GPU Sunucuda AI Model Deployment: NVIDIA CUDA Rehberi
NVIDIA sürücü kurulumu, CUDA toolkit, nvidia-container-toolkit, vLLM ile model serving, GPU monitoring ve Docker ile AI model deployment rehberi.
İçindekiler
GPU Sunucuda AI Model Deployment: NVIDIA CUDA Rehberi
Yapay zeka modellerini production ortamında çalıştırmak için GPU sunucular vazgeçilmezdir. Bu rehberde NVIDIA sürücü kurulumundan CUDA yapılandırmasına, Docker GPU entegrasyonundan vLLM ile yüksek performanslı model serving'e kadar tüm adımları ele alacağız.
GPU Sunucu Gereksinimleri
| Bileşen | Minimum | Önerilen |
|---|---|---|
| GPU | NVIDIA T4 (16 GB) | NVIDIA A100 (40/80 GB) |
| RAM | 32 GB | 64 GB+ |
| Disk | 100 GB SSD | 500 GB NVMe |
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04/24.04 LTS |
| CUDA | 12.0+ | 12.4+ |
NVIDIA Sürücü Kurulumu
Öncelikle mevcut sürücüleri temizleyin ve yeni sürücüyü kurun:
# Mevcut NVIDIA sürücülerini kaldır
sudo apt-get purge nvidia-* -y
sudo apt-get autoremove -y
# Sistem güncelleme
sudo apt-get update && sudo apt-get upgrade -y
# NVIDIA sürücü deposu ekleme
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt-get update
# Önerilen sürücüyü kontrol et
ubuntu-drivers devices
# NVIDIA sürücü kurulumu (önerilen versiyon)
sudo apt-get install -y nvidia-driver-550
sudo reboot
Kurulum sonrası doğrulama:
# Sürücü versiyonu ve GPU bilgisi
nvidia-smi
Çıktı:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 NVIDIA A100-SXM4-80GB On| 00000000:00:04.0 Off | 0 |
| N/A 32C P0 45W / 400W| 0MiB / 81920MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
CUDA Toolkit Kurulumu
# CUDA keyring ekleme
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# CUDA Toolkit kurulumu
sudo apt-get install -y cuda-toolkit-12-4
# PATH ayarları
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# Doğrulama
nvcc --version
cuDNN Kurulumu
# cuDNN kurulumu (CUDA 12.x için)
sudo apt-get install -y libcudnn8 libcudnn8-dev
# Doğrulama
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
NVIDIA Container Toolkit
Docker container'larında GPU kullanmak için nvidia-container-toolkit gereklidir:
# NVIDIA Container Toolkit deposu
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
# Kurulum
sudo apt-get install -y nvidia-container-toolkit
# Docker runtime yapılandırması
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Test
sudo docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
vLLM ile Model Serving
vLLM, yüksek throughput LLM inference engine'dir. PagedAttention teknolojisi ile bellek kullanımını optimize eder.
Docker ile vLLM
docker run -d \
--name vllm \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env HUGGING_FACE_HUB_TOKEN=$HF_TOKEN \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-8B-Instruct \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
Docker Compose ile vLLM
version: '3.8'
services:
vllm:
image: vllm/vllm-openai:latest
container_name: vllm-server
ports:
- "8000:8000"
volumes:
- huggingface_cache:/root/.cache/huggingface
environment:
- HUGGING_FACE_HUB_TOKEN=${HF_TOKEN}
command: >
--model meta-llama/Meta-Llama-3.1-8B-Instruct
--max-model-len 4096
--gpu-memory-utilization 0.9
--tensor-parallel-size 1
--dtype auto
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
huggingface_cache:
vLLM API Kullanımı
vLLM, OpenAI uyumlu API sunar:
# Chat completion
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
"messages": [
{"role": "system", "content": "Sen yardımcı bir asistansın."},
{"role": "user", "content": "Docker nedir?"}
],
"max_tokens": 512,
"temperature": 0.7
}'
# Model listesi
curl http://localhost:8000/v1/models
Python ile vLLM Kullanımı
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="meta-llama/Meta-Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": "Sen bir Linux uzmanısın."},
{"role": "user", "content": "RAID yapılandırması nasıl yapılır?"}
],
max_tokens=1024,
temperature=0.7
)
print(response.choices[0].message.content)
Multi-GPU Yapılandırması
# Tensor parallelism ile çoklu GPU
docker run -d \
--name vllm-multi \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-70B-Instruct \
--tensor-parallel-size 4 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
GPU Monitoring
nvidia-smi ile İzleme
# Anlık durum
nvidia-smi
# Sürekli izleme (her 1 saniye)
watch -n 1 nvidia-smi
# Sadece GPU kullanımı ve bellek
nvidia-smi --query-gpu=index,name,utilization.gpu,memory.used,memory.total,temperature.gpu --format=csv -l 1
Prometheus + Grafana ile Monitoring
# docker-compose.monitoring.yml
version: '3.8'
services:
dcgm-exporter:
image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
container_name: dcgm-exporter
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
ports:
- "9400:9400"
restart: unless-stopped
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
restart: unless-stopped
Prometheus yapılandırması:
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'dcgm'
static_configs:
- targets: ['dcgm-exporter:9400']
Güvenlik ve Optimizasyon
GPU Persistence Mode
# Persistence mode aktifleştir (düşük latency)
sudo nvidia-smi -pm 1
# GPU clock hızını sabitle
sudo nvidia-smi -lgc 1410,1410
# Power limit ayarla
sudo nvidia-smi -pl 300
Nginx Reverse Proxy
server {
listen 443 ssl;
server_name ai-api.example.com;
ssl_certificate /etc/letsencrypt/live/ai-api.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ai-api.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
REXE GPU sunucularında NVIDIA A100/H100 GPU'lar ile AI modellerinizi yüksek performansla çalıştırabilirsiniz. Profesyonel GPU sunucu çözümleri için bizimle iletişime geçin.
İlgili Makaleler
Ollama Kurulumu: Yerel LLM Çalıştırma Rehberi
Ollama kurulumu, yerel LLM modelleri çalıştırma (Llama 3, Mistral, Gemma), API kullanımı, model yönetimi, GPU hızlandırma ve Docker ile deployment.
Open WebUI Kurulumu: ChatGPT Benzeri Arayüz ile Yerel AI
Open WebUI kurulumu Docker ile, Ollama entegrasyonu, kullanıcı yönetimi, RAG (belge sorgulama), model yönetimi, özel promptlar ve çoklu kullanıcı desteği.
Stable Diffusion Kurulumu: Self-Hosted Görsel Üretimi
Stable Diffusion kurulumu, AUTOMATIC1111 ve ComfyUI arayüzleri, model indirme, LoRA eğitimi, ControlNet kullanımı ve Docker ile self-hosted görsel üretimi rehberi.