← Back to list

Bulutta Model Eğitirken CPU mu GPU mu? Performans, Maliyet ve Doğru Kaynak Seçimi

Bir makine öğrenmesi modeli yerel bilgisayarımızda yavaş çalışmaya başladığında aklımıza gelen ilk çözümlerden biri daha güçlü bir…

Akinkirimli · 2026-08-08 19:19 · 0 claps · 5.4 min read
#cloud-computing #machine-learning #data-science #deep-learning #gpu
Open on Medium ↗
Wiki topics: OPS · LLMOps & Inference ML · Machine Learning EDU · Education & Learning 🔬 · Science · General

Bulutta Model Eğitirken CPU mu GPU mu? Performans, Maliyet ve Doğru Kaynak Seçimi

Bir makine öğrenmesi modeli yerel bilgisayarımızda yavaş çalışmaya başladığında aklımıza gelen ilk çözümlerden biri daha güçlü bir donanıma, özellikle de GPU’ya geçmek oluyor.

GPU’lar özellikle derin öğrenme modellerinde ciddi performans avantajları sağlayabiliyor. Fakat burada önemli bir nokta var:

Her makine öğrenmesi problemi için GPU kullanmak doğru bir tercih değil.

Data Science Bootcamp sürecinde bulut bilişim ve veri biliminin birlikte nasıl kullanılabileceğini incelerken benim için en dikkat çekici konulardan biri de buydu.

Bir modeli bulutta eğitirken amacımız her zaman en güçlü makineyi seçmek mi olmalı?

Yoksa yaptığımız işe en uygun kaynağı seçmek mi?

Aslında doğru yaklaşım ikinci seçenek.

Bu yazıda CPU ve GPU arasındaki temel farklardan, hangi veri bilimi problemlerinde hangisinin daha mantıklı olduğundan ve bulut ortamında performans ile maliyet arasında nasıl denge kurulabileceğinden bahsedeceğim.

CPU ve GPU Arasındaki Temel Fark

Öncelikle iki donanım türünün farklı amaçlarla tasarlandığını anlamak gerekiyor.

CPU

CPU, bilgisayarın genel amaçlı işlem birimidir.

Az sayıda ancak güçlü çekirdeğe sahiptir ve farklı türde işlemleri hızlı bir şekilde gerçekleştirebilir.

Veri bilimi projelerinde CPU özellikle şu işlemlerde oldukça kullanışlıdır:

  • Veri setlerini okumak
  • pandas ile veri temizlemek
  • Eksik verileri işlemek
  • Özellik mühendisliği yapmak
  • Keşifsel Veri Analizi (EDA) gerçekleştirmek
  • Logistic Regression, Random Forest ve benzeri klasik makine öğrenmesi algoritmalarını çalıştırmak

Özellikle küçük ve orta büyüklükteki tabular veri setlerinde GPU kullanmak çoğu zaman gerekli değildir.

GPU

GPU ise aynı anda çok sayıda benzer matematiksel işlemi gerçekleştirebilecek şekilde tasarlanmıştır.

Bu nedenle özellikle büyük matris ve tensör işlemlerinde oldukça güçlüdür.

Örneğin:

  • CNN modelleri
  • Transformer mimarileri
  • Görüntü işleme
  • Büyük sinir ağları
  • Büyük batch boyutlarıyla yapılan eğitimler

GPU’nun paralel işlem kapasitesinden ciddi şekilde yararlanabilir.

Bu nedenle Deep Learning tarafında GPU kullanımı çoğu zaman önemli bir hız avantajı sağlar.

Ancak burada kritik bir detay vardır:

Kodun GPU üzerinde çalışması, otomatik olarak daha hızlı çalışacağı anlamına gelmez.

GPU Neden Her Zaman Daha Hızlı Değildir?

Bir GPU, CPU’dan çok daha yüksek hesaplama kapasitesine sahip olabilir. Fakat gerçek performansı belirleyen yalnızca teorik işlem gücü değildir.

1. Veriyi GPU’ya taşımanın da bir maliyeti vardır

Modeli GPU üzerinde çalıştırırken verinin CPU belleğinden GPU belleğine aktarılması gerekir.

Eğer veri setimiz veya modelimiz çok küçükse bu aktarım süresi, GPU’nun sağladığı hız avantajının önemli bir bölümünü ortadan kaldırabilir.

Dolayısıyla küçük bir problem için güçlü bir GPU kullanmak bazen gereksiz olabilir.

2. Küçük batch boyutları GPU’yu verimli kullanamayabilir

GPU’nun temel avantajı çok sayıda işlemi paralel olarak gerçekleştirebilmesidir.

Fakat GPU’ya yeterince iş göndermezsek bu kapasiteyi kullanamayız.

Örneğin çok küçük batch boyutlarında GPU’nun büyük bir bölümü boşta kalabilir.

3. Sorun her zaman hesaplama olmayabilir

Bir modelin yavaş çalışmasının nedeni bazen modelin kendisi değildir.

Örneğin:

  • Diskten veri okuma yavaş olabilir.
  • Görüntülere uygulanan dönüşümler uzun sürebilir.
  • Ağ üzerinden veri bekleniyor olabilir.
  • Veri ön işleme süreci darboğaz oluşturabilir.

Bu durumda çok güçlü bir GPU kullansak bile GPU zamanının büyük bölümünü veri bekleyerek geçirebilir.

4. Her algoritma GPU kullanmaz

Özellikle klasik makine öğrenmesi tarafında kullanılan her kütüphane ve algoritma GPU hızlandırmasını desteklemez.

Örneğin bir Scikit-learn modelini sadece GPU bulunan bir sunucuda çalıştırmak, o algoritmanın otomatik olarak GPU kullanacağı anlamına gelmez.

Bu yüzden donanım seçmeden önce kullandığımız framework ve algoritmanın gerçekten GPU desteği olup olmadığını bilmemiz gerekir.

Hangi İş İçin Hangi Kaynak?

Pratik olarak şu yaklaşım kullanılabilir:

İş yüküİlk tercihEDA ve veri temizlemeCPUKüçük tabular veriCPULogistic RegressionCPURandom ForestCPUKüçük sinir ağıÖnce CPUBüyük CNNGPUTransformerGPUBüyük görüntü veri setleriGPUBüyük ölçekli ETLCPU / Dağıtık sistem

Elbette bu tablo kesin bir kural değildir.

Aynı model bile veri boyutuna, batch büyüklüğüne ve kullanılan kütüphaneye göre farklı davranabilir.

Bu yüzden en sağlıklı yöntem ölçüm yapmaktır.

CPU ve GPU’yu Nasıl Adil Karşılaştırabiliriz?

CPU ve GPU performansını karşılaştırırken farklı modeller veya farklı veri setleri kullanırsak elde ettiğimiz sonuç anlamlı olmaz.

Mümkün olduğunca şu değişkenleri sabit tutmamız gerekir:

  • Aynı veri seti
  • Aynı train/test bölünmesi
  • Aynı model
  • Aynı batch boyutu
  • Aynı epoch sayısı
  • Aynı random seed
  • Aynı preprocessing adımları
  • Aynı framework

Temel olarak değişen şey yalnızca hesaplama kaynağı olmalıdır.

Böylece CPU ile GPU arasındaki gerçek performans farkını daha doğru ölçebiliriz.

PyTorch’ta CPU ve GPU Seçimi

PyTorch ile modeli mevcut donanıma göre otomatik olarak CPU veya GPU üzerinde çalıştırabiliriz.

import torch
device = torch.device(
    "cuda" if torch.cuda.is_available() else "cpu"
)
print(f"Kullanılan cihaz: {device}")
model = model.to(device)

Eğitim sırasında verilerin de aynı cihaza aktarılması gerekir:

for inputs, labels in train_loader:
    inputs = inputs.to(device)
    labels = labels.to(device)
    optimizer.zero_grad()
    outputs = model(inputs)
    loss = criterion(outputs, labels)
    loss.backward()
    optimizer.step()

Buradaki önemli nokta model ve verinin aynı cihazda bulunmasıdır.

Model GPU üzerinde fakat veriler CPU üzerinde kalırsa cihaz uyuşmazlığı hatası alınır.

Sadece Eğitim Süresine Bakmak Yeterli mi?

Bulut ortamında çalışmaya başladığımızda işin içine başka bir değişken daha girer:

Maliyet.

Bir GPU instance modeli çok daha hızlı eğitebilir. Ancak aynı GPU instance bir CPU instance’dan çok daha pahalıysa yalnızca eğitim süresine bakmak doğru olmaz.

Bu nedenle sadece:

“Model kaç dakikada eğitildi?”

sorusunu sormak yeterli değildir.

Bunun yanında:

“Bu modeli eğitmenin toplam maliyeti ne oldu?”

sorusunu da sormamız gerekir.

En basit haliyle:

Tahmini Eğitim Maliyeti = Saatlik Kaynak Ücreti × Çalışma Süresi

Örneğin iki deney gerçekleştiriyorsak şöyle bir tablo oluşturabiliriz:

KaynakEğitim SüresiSaatlik ÜcretToplam MaliyetF1CPUÖlçülen değerGüncel fiyatHesaplananModel sonucuGPUÖlçülen değerGüncel fiyatHesaplananModel sonucu

Bulut fiyatlandırması zamana, bölgeye ve instance tipine göre değişebileceği için sabit fiyatlar vermek yerine kullanılan platformdaki güncel değerleri kontrol etmek daha doğru olur.

Huawei Cloud ModelArts ile Bu Süreç Nasıl Yönetilebilir?

Bootcamp kapsamında üzerinde durduğumuz platformlardan biri Huawei Cloud ModelArts oldu.

ModelArts, veri bilimi ve makine öğrenmesi süreçlerini bulut ortamında yürütebilmek için farklı hesaplama kaynaklarıyla çalışma imkânı sunuyor.

Notebook oluştururken kullanılacak framework, hesaplama kaynağı ve depolama gibi seçenekler belirlenebiliyor.

Böylece aynı projeyi farklı kaynaklarla çalıştırarak CPU ve GPU performansını karşılaştırmak mümkün hale geliyor.

Örneğin bir deneyin sonucunda şu bilgileri saklamak faydalı olabilir:

experiment_result = {
    "device": str(device),
    "epochs": epochs,
    "batch_size": batch_size,
    "training_seconds": total_training_time,
    "validation_f1": validation_f1,
    "seed": 42
}

Bu yaklaşım özellikle farklı deneyleri karşılaştırırken oldukça faydalıdır.

Çünkü yalnızca model sonucuna değil, hangi ayarlarla ve hangi kaynakla o sonucun elde edildiğine de bakabiliriz.

Bir Model Yavaşsa Önce Darboğazı Bul

Bulutun sunduğu güçlü kaynaklar bazen bizi doğrudan daha büyük makinelere geçmeye teşvik edebilir.

Ancak bir eğitim süreci yavaşladığında ilk çözüm daha büyük GPU seçmek olmamalıdır.

Öncelikle darboğazı bulmak gerekir.

Örneğin şu soruları sorabiliriz:

GPU gerçekten kullanılıyor mu?

print(torch.cuda.is_available())
print(next(model.parameters()).device)

GPU belleği yetersiz mi?

Eğer Out of Memory hatası alıyorsak doğrudan daha büyük bir GPU seçmek yerine:

  • Batch size küçültmek
  • Mixed precision kullanmak
  • Gradient accumulation uygulamak

gibi yöntemleri deneyebiliriz.

Veri yükleme yavaş mı?

PyTorch DataLoader tarafında uygun num_workers değeri veya pin_memory kullanımı performansı etkileyebilir.

Yani sorun GPU’nun gücü değil, GPU’ya verinin ne kadar hızlı ulaştırıldığı da olabilir.

Bulut Maliyetini Nasıl Daha Kontrollü Tutabiliriz?

Bulut ortamında çalışırken teknik performans kadar kaynak yönetimi de önemlidir.

Önce küçük kaynakla başlayın

İlk olarak kodun küçük bir veri setiyle doğru çalıştığını kontrol etmek mantıklıdır.

Hatalı bir eğitim kodunu pahalı bir GPU üzerinde debug etmek gereksiz maliyet oluşturabilir.

EDA için gereksiz yere GPU kullanmayın

Grafik oluşturmak, eksik değer analizi yapmak veya temel veri temizliği gerçekleştirmek için çoğu zaman CPU yeterlidir.

GPU’yu gerçekten ihtiyaç duyulan model eğitim aşamasında kullanmak daha mantıklıdır.

Kullanmadığınız kaynakları durdurun

Bulut ortamında notebook veya eğitim kaynağı aktif olduğu sürece maliyet oluşmaya devam edebilir.

Bu nedenle otomatik durdurma mekanizmalarını kullanmak maliyet kontrolü açısından önemlidir.

Deney sonuçlarını saklayın

Model ağırlıkları, metrikler ve deney sonuçları kalıcı bir depolama alanında tutulmalıdır.

Böylece instance kapatılsa bile yapılan çalışmanın sonuçları kaybolmaz.

Bootcamp Sürecinden Çıkardığım En Önemli Sonuç

Bu konu üzerinde çalışırken bulutta model eğitmenin yalnızca kodu başka bir bilgisayarda çalıştırmak anlamına gelmediğini fark ettim.

Aslında aynı anda üç farklı karar veriyoruz:

1. Teknik uygunluk

İş yüküm CPU’ya mı yoksa GPU’ya mı daha uygun?

2. Deneysel doğruluk

Yaptığım performans karşılaştırması gerçekten adil mi?

3. Ekonomik uygunluk

Kazandığım zaman, kullandığım kaynağın ek maliyetine değiyor mu?

Bu nedenle:

“GPU daha güçlüdür, o halde her zaman GPU kullanmalıyım.”

yaklaşımı eksik kalıyor.

Daha doğru yaklaşım şu olabilir:

GPU, yeterince paralel ve hesaplama yoğun bir problemde doğru veri pipeline’ı ve doğru konfigürasyonla oldukça güçlü bir araçtır.

Sonuç

Veri bilimi projelerinde doğru donanımı seçmek model geliştirme sürecinin önemli bir parçasıdır.

Küçük tabular veri setlerinde, EDA işlemlerinde ve birçok klasik makine öğrenmesi algoritmasında CPU yeterli olabilir.

Buna karşılık büyük sinir ağları, görüntü işleme modelleri ve Transformer tabanlı çalışmalar GPU’nun paralel hesaplama kapasitesinden ciddi şekilde faydalanabilir.

Ancak bulut ortamında asıl amaç her zaman en güçlü makineyi kullanmak değildir.

Asıl avantaj, ihtiyacımız olan kaynağı ihtiyaç duyduğumuz süre boyunca kullanabilmektir.

Bu yüzden iyi bir veri bilimi projesinde yalnızca accuracy veya F1 score gibi model metriklerini değil; eğitim süresini, kaynak kullanımını, maliyeti ve tekrar üretilebilirliği de değerlendirmek gerekir.

Bootcamp sürecinde benim için bulut bilişimin veri bilimine kattığı en önemli bakış açılarından biri de bu oldu.

Kaynaklar

Huawei Cloud — ModelArts Service Overview Huawei Cloud — Creating a Notebook Instance Huawei Cloud — Common Functions of JupyterLab PyTorch — CUDA Semantics PyTorch — Automatic Mixed Precision


메타데이터
post_id
a8bf12ebf4f0
slug
bulutta-model-eğitirken-cpu-mu-gpu-mu-performans-maliyet-ve-doğru-kaynak-seçimi-a8bf12ebf4f0
url
https://medium.com/@akinkirimli20000/bulutta-model-e%C4%9Fitirken-cpu-mu-gpu-mu-performans-maliyet-ve-do%C4%9Fru-kaynak-se%C3%A7imi-a8bf12ebf4f0
canonical_url
https://medium.com/@akinkirimli20000/bulutta-model-e%C4%9Fitirken-cpu-mu-gpu-mu-performans-maliyet-ve-do%C4%9Fru-kaynak-se%C3%A7imi-a8bf12ebf4f0
author_url
https://medium.com/@akinkirimli20000
status
ok
fetched_at
2026-08-09 05:12:45