
TensorFlow ve PyTorch Ortamlarını Sunucunuzda Nasıl Optimize Edebilirsiniz?
Yapay Zeka (AI) ve Derin Öğrenme (DL) projelerinizde verimlilik, yalnızca kullandığınız donanımın gücüyle değil, aynı zamanda yazılım ortamınızın doğru yapılandırılmasıyla da doğrudan ilgilidir. Yanlış konfigüre edilmiş bir sunucu ortamı, güçlü GPU'ların bile potansiyelinin altında çalışmasına neden olabilir.
Bu kapsamlı rehber, **TensorFlow** ve **PyTorch** gibi en popüler DL çatılarında maksimum performans elde etmeniz için gerekli olan **CUDA sürücü uyumluluğundan**, **sanal ortam kurulumuna** ve **platform optimizasyonuna** kadar tüm temel adımları içerir.
---Bölüm 1: Doğru Temel: CUDA Sürücü Versiyonları ve Uyumluluk
GPU tabanlı derin öğrenme eğitimlerinin hızı, büyük ölçüde NVIDIA’nın paralel bilgi işlem platformu olan **CUDA’ya** bağlıdır. En büyük darboğazlardan biri, yazılım kütüphaneleri arasındaki uyumsuzluktur.
1.1. Sürücü/CUDA/Kütüphane Matrisi Kontrolü
GPU hızlandırmasını kullanabilmek için, işletim sisteminizdeki **NVIDIA Sürücüsü**, kurulu **CUDA Toolkit** versiyonu ve kullandığınız **TensorFlow/PyTorch** versiyonunun birbiriyle uyumlu olması gerekir.
-
NVIDIA Sürücüsünü Güncelleyin: Öncelikle sunucunuzdaki NVIDIA sürücüsünün en son kararlı sürümde olduğundan emin olun. Sürücü güncellemeleri, genellikle performans artışları ve hata düzeltmeleri içerir.
Kontrol: Terminalde
nvidia-smi
komutunu çalıştırarak en üst satırdaki Sürücü Versiyonunu kontrol edin. - Kütüphane Gereksinimlerini İnceleyin: Kullanmayı planladığınız TensorFlow/PyTorch versiyonunun hangi CUDA versiyonunu desteklediğini ilgili kütüphanenin resmi dokümantasyonundan kontrol edin.
- Doğru CUDA Toolkit'i Kurun: Gereken CUDA Toolkit versiyonunu NVIDIA'nın arşivinden indirip kurun. **Unutmayın:** Yazılımınızın desteklediği en yüksek kararlı versiyonu kullanmalısınız.
1.2. Ortam Değişkenleri
CUDA ve cuDNN (Derin Sinir Ağı Kütüphanesi) yollarının işletim sisteminizde doğru tanımlandığından emin olun. Bu ayarı genellikle .bashrc
veya .zshrc
dosyanıza eklersiniz:
export PATH="/usr/local/cuda-X.X/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-X.X/lib64:$LD_LIBRARY_PATH"
---
Bölüm 2: İzole Çalışma Alanı: Sanal Ortam Kurulumu
Python tabanlı projelerde sanal ortam kullanmak, bağımlılık çakışmalarını önler ve her projeye özel izole bir çalışma alanı sağlar. **Conda (Anaconda/Miniconda)**, DL projeleri için idealdir.
2.1. Conda ile Sanal Ortam Oluşturma
- Yeni Ortam Oluşturun: Belirli bir Python versiyonu ile yeni bir ortam oluşturun.
conda create --name my_project_env python=3.10
- Ortamı Aktive Edin:
conda activate my_project_env
- Kütüphaneleri Kurun: Kurulumda **doğru CUDA versiyonunu belirten** paketleri kullanın (Örn: PyTorch için):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
-
Kurulumu Test Edin: Ortamınız aktifken, Python oturumunda GPU algılamasını kontrol edin:
- **PyTorch:**
import torch; print(torch.cuda.is_available())
(True dönmeli) - **TensorFlow:**
import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))
(GPU listesi dönmeli)
- **PyTorch:**
Bölüm 3: Platform Optimizasyonu ve Eğitim İpuçları
3.1. GPU Güç Yönetimi (Persistent Mode)
Eğitimler sırasında GPU'nun güç tasarrufu moduna geçmesini engelleyerek maksimum performansta kalmasını sağlayın:
sudo nvidia-smi -pm ENABLED
3.2. Karışık Hassasiyet (Mixed Precision) Kullanımı
Modern GPU'larda (Ampere ve sonrası), 32-bit (FP32) yerine 16-bit (FP16) float sayılarını kullanarak eğitimi hızlandırabilirsiniz. **Automatic Mixed Precision (AMP)** kullanımı, **eğitim süresini %30 ila %50 oranında kısaltabilir** ve GPU bellek kullanımını azaltır.
3.3. Veri Yükleyici Optimizasyonu (Dataloader)
Eğitim hızınızın CPU'nun veriyi hazırlama hızına takılmasını (I/O darboğazı) önlemek için:
- **Çoklu İşlemci Kullanın:** PyTorch'ta
DataLoader
kullanırkennum_workers
parametresini (Örn: 4 veya 8) CPU çekirdek sayınıza uygun ayarlayın. - **Önbellekleme:** Veri kümeniz küçükse, disk G/Ç süresini sıfıra indirmek için veriyi bellekte tutmayı (Caching) değerlendirin.
3.4. Sistem Belleği ve Swap Ayarları
Yeterli RAM varsa, çekirdeğin **Swap** (disk takası) alanını kullanma eğilimini azaltmak için swappiness
değerini düşürün (Örn: 10 veya 0'a):
sudo sysctl vm.swappiness=10
---
Özet ve İletişim
Ortamınızı bu adımlarla optimize ettiğinizde, Yapayzekaserver.com sunucularınızdaki GPU'ların potansiyelini en üst düzeyde kullanmaya başlayacaksınız.
Eğer kurulum sırasında bir sorunla karşılaşırsanız veya altyapınızın özel optimizasyon gereksinimleri hakkında profesyonel destek almak isterseniz, uzman teknik ekibimizle iletişime geçmekten çekinmeyin:
➡️ Destek Talep Formu Oluşturun