Yan yana
CPUvsGPU
CPU ile GPU arasındaki fark nedir?
Güncellendi 2 dk okuma6 fark
Kısaca
CPU'da çeşitli ve sıralı işler için birkaç güçlü çekirdek vardır; GPU'da ise aynı işlemi çok sayıda veriye paralel uygulayan binlerce basit çekirdek vardır.
CPU
Merkezî İşlem Birimi
CPU (merkezî işlem birimi), program talimatlarını yürüten ve her yazılımın üzerinde çalıştığı aritmetik, mantık ve kontrol işlerini yapan işlemcidir.
CPU sayfasını okuGPU
Grafik İşlem Birimi
GPU (grafik işlem birimi), binlerce küçük çekirdeğiyle aynı hesabı çok büyük veri üzerinde aynı anda yapan işlemcidir; grafik ve yapay zekâ için kullanılır.
GPU sayfasını okuCPU ve GPU karşılaştırması
| Özellik | CPU | GPU |
|---|---|---|
| Çekirdekler | Birkaç ile birkaç düzine arası güçlü çekirdek | Binlerce basit çekirdek |
| Tasarlandığı iş | Çeşitli, sıralı, dallanan işler | Çok veri üzerinde paralel olarak aynı işlem |
| Bellek | Büyük önbelleklerle sistem RAM'i | Ayrılmış yüksek bant genişlikli VRAM |
| Güçlü yanları | İşletim sistemleri, veritabanları, uygulama mantığı | Grafik, yapay zekâ, simülasyonlar, video kodlama |
| Programlama | Herhangi bir dil | CUDA, shader'lar ya da PyTorch gibi kütüphaneler |
| Rol | Bütün programı çalıştırır ve koordine eder | Yüksek oranda paralel kısımları hızlandırır |
Fark, açıklamalı
CPU bir genel uzmandır. Çekirdekleri karmaşık ve hızlıdır; büyük önbellekleri, dal tahmini ve birçok talimatı sıra dışı (out of order) çalıştırma yeteneği vardır; bu yüzden işletim sistemlerinin, veritabanlarının, web sunucularının ve çoğu uygulama kodunun öngörülemeyen mantığını çok iyi ele alır. Tipik bir CPU'da birkaç tane ile birkaç düzine arasında çekirdek vardır.
GPU ise paralel işte bir uzmandır. Farklı veriler üzerinde aynı talimatları aynı anda çalıştıran binlerce küçük çekirdeği vardır; milyonlarca piksel çizmenin gerektirdiği de tam olarak budur. Kendi yüksek bant genişlikli belleği VRAM, bu çekirdekleri veriyle besler. Bu tasarım GPU'ları matris hesaplarında CPU'lardan çok daha hızlı yapar.
Modern yapay zekâyı GPU'ların çalıştırmasının nedeni budur. Sinir ağlarını eğitmek ve çalıştırmak çoğunlukla devasa matris çarpımlarıdır; bu yüzden PyTorch gibi framework'ler bu işi genellikle NVIDIA'nın CUDA platformu üzerinden GPU'lara gönderir. GPU'lar video kodlamayı, bilimsel simülasyonu ve kriptografiyi de hızlandırır; CPU ise programı koordine eder, veriyi hazırlar ve geri kalan her şeyi çalıştırır.
Sık yapılan bir yanlış, bir GPU'nun her programı hızlandırdığını düşünmektir. Çok dallanma, sıralı adım ya da küçük görev içeren kod CPU'da daha iyi çalışır; veriyi CPU ve GPU belleği arasında kopyalamak da zaman alır. İkisi birlikte çalışır: CPU programı çalıştırır, GPU yoğun paralel kısımları hızlandırır.
Hangisini kullanmalısınız?
CPU şu durumlarda doğru seçim:
- Kodunuzda karmaşık mantık ve çok sayıda karar var.
- Görevler küçük, çeşitli ya da sırayla çalışmak zorunda.
- Web sunucuları ve veritabanları gibi genel yazılımlar çalıştırıyorsunuz.
GPU şu durumlarda doğru seçim:
- Makine öğrenmesi modelleri eğitiyor ya da çalıştırıyorsunuz.
- Grafik, video ya da büyük matrisler işliyorsunuz.
- İş birçok özdeş ve bağımsız işleme bölünebiliyor.
Sık sorulan sorular
Yapay zekâ için neden GPU kullanılır?
Sinir ağları çoğunlukla milyonlarca bağımsız işleme bölünen matris çarpımlarıdır; bir GPU'nun binlerce çekirdeği de bunları aynı anda yapabilir.
GPU, CPU'nun yerini alabilir mi?
Hayır. Bir bilgisayarın işletim sistemini çalıştırmak ve işi koordine etmek için yine bir CPU'ya ihtiyacı vardır. GPU, belirli ve yüksek oranda paralel görevler için bir hızlandırıcıdır.
Tümleşik GPU nedir?
CPU ile aynı çipe yerleştirilmiş ve sistem belleğini paylaşan bir GPU'dur. Enerji tasarrufu sağlar ve gündelik grafikler için yeterlidir; harici GPU'lar ise oyunlar ve yapay zekâ için çok daha hızlıdır.