GPU vs CPU (Paralel vs Seri Hesaplamalar)
Bu yazıda GPU ve CPU hakkında genel bir karşılaştırma yaparak iki işlemci arasındaki farklar ve avantajlar/dezavantajlar hakkında konuşacağız. GPU işlemcisinin paralel hesapla kabiliyetinden bahsedeceğiz.
CPU (Central Processing Unit )
CPU merkezi işlem birimi olarak adlandırılan bir işlemcidir, CPU'lar milyonlarca transistörün bir araya getirilmesi sonucu oluşur. CPU bilgisayarımızın beyni olarak düşünebileceğimiz bir bileşendir.
CPU’yu oluşturan transisörler bilgisayarımıza aritmetik ve mantık işlemleri yapma yeteneği kazandırır. Kısaca bu bileşen bilgisayarımızdaki verilerin işlenmesini sağlayan ve yazılım komutlarını yerine getiren birimdir.
GPU (Graphics Processing Unit )
GPU grafik işlem birimi olarak adlandırılan ve daha çok grafiksel verilerin işlenmesine yarayan işlemcidir. GPU’lar ekran kartlarımız üzerinde bulunan işlemcilerdir.
Gelin şimdide bu iki işlemci arasındaki farklara ve üstün oldukları alanlara bakalım.
CPU vs GPU
Öncelikler şunu belirtmek gerekir, GPU ve CPU arasında bir seçim yapmak yada biri diğerine göre daha önemli demek doğru değildir. İki işlemcinin de kendi kabiliyetleri ve kullanım alanlarına göre birbirinden üstünlükleri ve zayıf yönleri vardır.
En fazla dikkat çeken farklılık sahip oldukları çekirdek (core) sayısıdır. Örnek vermek gerekirse bir masaüstü bilgisayarda CPU core sayısı 2,4 ve 8 olabilirken bu sayısı GPU core sayısında 700 ,800 ve daha fazlasına çıkabiliyor.
Çok fazla çekirdeğe sahip olmak her zaman avantajlı mıdır ? Bu yapacağımız uygulamaya bağlı olarak değişiyor. CPU’lar seri komutları işlemek için uygundur, GPU’lar ise paralel komutlar işlemek için uygundur.
CPU’da amaç bir komutun en az süre içerisinde işlenmesidir fakat bu amaç GPU’da birim zamanda en fazla komutu işlemek olarak belirlenmiştir.
Bu konuyu bir örnekle açıklayalım; bir üniversite öğrencisisiniz ve yarın sınavınız var (hay aksi hiç de sınava çalışmadınız :) ) bu durumda sınavda sorumlu olduğunuz üç kitabı yarına kadar bitirmeniz gerekecektir. Bu üç kitabı tek başınıza bitiremeyeceğinizi anlar ve üç arkadaşınızla beraber çalışarak bu kitapları bitirebilirsiniz. Daha fazla öğrenci ile daha kısa bir zamanda daha çok kitap bitirdiniz. GPU’da sizin yönteminizi benimser ve daha fazla çekirdek ile aynı anda daha fazla işlem gerçekleştirir.
GPU’nun sağlamış olduğu bu kabiliyet bir çok alanda bize kolaylık sağlar özellikle görüntü işleme algoritmalarında her gecen gün kullanımı artmaktadır. Her resminde işlemesi gereken çok sayıda pixel olduğunu düşünürsek GPU’nun sağladığı paralel işlem yapabilme kabiliyetini kullanmak bize büyük bir zaman kazanımı sağlayacaktır.
Paralel hesaplamaların kullanım alanı sadece görüntü işleme ile de sınırlandırılamaz paralel hesaplamaları ses işleme, yapay zeka vb. uygulamalarda her geçen gün daha yaygın olarak kullanıldığını görüyoruz.
NVIDIA tarafından geliştirilen, paralel işlem kabiliyetini kullanmaya yardımcı olan ve C, C++programlama dillerinde yazılım geliştirmeyi sağlayan CUDA toolkit’e bakmanızı öneririm.
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html