Bugün Internet Computer Protocol blok zincirini tanıyıp Hello World örneğiyle bu merkeziyetsiz geliştirme ortamına ilk adımımızı...
CPU, GPU Tamam Ama TPU Nedir?
Kemal İKİZOĞLUHerkese merhaba,
Bugünkü yazımda sizlerle teknolojideki bildiğimiz bazı terimleri hatırlayıp bazı yeni terimleri de keşfediyor olacağız. Yıllardır teknolojiyle haşır neşir olsak da birkaç yıldır gelişen yeni teknolojiler ve bunların nitelendiği sözcükleri ilk başta anlamak ve anlamlandırmak zor olabilir. Bu konuyu aydınlatmak adına hadi başlayalım.
CPU – Central Process Unit – Merkezi İşlemci Birimi
Bir bilgisayara sahip olduktan sonra adını mıh gibi aklımıza kazıdığımız, üzerinde kıyaslamalar yaptığımız bilgisayarımızda gerçekleşen tüm komut ve sinyalleri işleyip ilgili birimlere dağıtan parçadır. O kadar önemlidir ki her şey ondan sorulur. Günümüzde bilgisayarlar için işlemci üreten İntel ve AMD olmak üzere iki farklı şirket bulunmaktadır.
İşlemcinin yaptığı işi biraz daha özetlemek istersek bilgisayarın donanımlarını gözden geçirelim. Klavye, fare bilgisayarın en önemli iki giriş cihazlarındandır. Bu donanımları kullanarak biz bilgisayara veri girişi yaparız. Klavyeyi kullanarak harf, sayı veya sembol girişinde bulunuruz. Tuşa bastığımızda bu tuşa dair komut işlemci üzerinden geçer ve anlam kazanarak çıktı birimine ulaşır. Bu sayede çıktı donanımları ile sonucu görüntüleriz.
İşlemcinin iç kısmı sahip olduğu teknolojilere göre milyonlarca micro boyutta transistörden oluşmaktadır. Bu transistörler kendi aralarında belirli iş bölümüne sahip olup iş akış süreçlerini kolaylaştırmaya çalışmaktadırlar.
Performans gerektirmeyen temel işlerinizi gerçekleştirecek bir bilgisayara sahip olduğunuzda tek başına işlemci gücü sizin işlerinizi hızlı bir şekilde yapmanıza destek olacaktır. Fakat işin içerisine görüntü, görsel, video, resim gibi dosyalar girdiğinde tek başına işlemci yetersiz geliyor olacaktır.
GPU – Graphic Process Unit – Görüntü İşleme Birimi
Bilgisayarın görüntüleri işleyebildiği, daha akıcı ve yüksek performansta görüntülemesine olanak sağladığı, oyunları kasmadan açıp ultra ayarlarda oynayabilmenize yardımcı olan birimdir. Bu birim işlemci gibi direk anakartın üzerine entegre değildir. Ayrı bir kart üzerine konumlanmış, böylelikle anakartla iletişim halinde olmaktadır.
Ekran kartını bilgisayarınıza bağladığınızda sahip olduğu performansı kullanıma ihtiyaç duyulacak uygulama açıldığında ortaya çıkacaktır. Normal akışta ana akış yine işlemci üzerinde olacaktır.
Peki o halde hem merkezi işlem birimi hem de grafik işlem birimi var. İkisinin farkı nedir diye sorduğunuzu, içinizden geçirdiğinizi hissediyorum. Gelin bakalım.
İşlemciler üzerine konuşurken 8 çekirdekli, 16 çekirdekli işlemci gibi özelliklerini saydığımız durumlarla karşılaşmışızdır. Şahsen İntel’in i3 – i5 – i7 serisi işlemcileri çıkarttığı zamanlarda bir i7 işlemciye sahip olmak herkesin hayaliydi. Günümüzde 14.nesil i7 işlemci içerisinde 20 çekirdek bulunmaktadır. Fakat bir ekran kartına baktığımızda ise buradaki işlemci çekirdek sayısı 10.000’i bulabilmektedir. Aralarındaki en önemli fark CPU düşük gecikme, GPU ise yüksek verime odaklanmıştır.
Her yeni nesil NVIDIA GPU’lar daha güçlü çekirdeklerle birlikte gelir. Şirketin en yeni amiral gemisi GPU’su GeForce RTX 4090, 16.384 CUDA çekirdeğine sahip. Bu önceki nesle göre neredeyse %40’lık bir artış. Bu çok büyük bir sayı kırma gücü!
https://acecloud.ai/resources/blog/nvidia-cuda-cores-explained/
Daha yüksek verim, paralel işlemleri gerçekleştirebilecek çok fazla çekirdek ekran kartlarını daha önemli hale getirmiştir.
TPU – Tensor Processing Unit – Tensor İşleme Birimi
Tensör İşleme Birimi ( TPU ), Google’ın kendi TensorFlow yazılımını kullanarak sinir ağı makine öğrenimi için Google tarafından geliştirilen bir AI hızlandırıcı uygulamaya özel entegre devredir.
TPU’lar, GPU’ların aksine, sinir ağı eğitiminde matris çarpımları gibi işlemlerle başa çıkmak için özel olarak tasarlandı. Google TPU’lara iki biçimde erişilebilir: Cloud TPU ve uç TPU. Cloud TPU’lara, kullanıcılara Google’ın veri merkezlerinde bulunan TPU bölmeleri sağlayan Google Colab üzerinden erişilebilir. Edge TPU ise belirli uygulamalar oluşturmak için kullanılabilen, özel olarak oluşturulmuş bir geliştirme kitidir. Peki tensör nedir?
Tensör nedir?
Tensörler çok boyutlu diziler veya matrislerdir. Tensörler, bir sinir ağındaki bir düğümün ağırlıkları gibi veri noktalarını satır ve sütun formatında tutabilen temel birimlerdir. Toplama, öğe bazında çarpma ve matris çarpımı dahil olmak üzere temel matematik işlemleri tensörler üzerinde gerçekleştirilir.
Google, 2015 yılında TPU’ları şirket içinde kullanmaya başladı ve 2018’de hem bulut altyapısının bir parçası olarak hem de çipin daha küçük bir versiyonunu satışa sunarak bunları üçüncü tarafların kullanımına sundu.
Norman Jouppi’ye göre TPU, bir veri merkezi rafındaki sabit sürücü yuvasına sığabilecek bir ısı emici düzeneğine monte edilmiştir. Farklı işlemci türleri, farklı makine öğrenimi modelleri için uygundur. TPU’lar CNN’ler için çok uygundur ; GPU’lar bazı tam bağlantılı sinir ağları için avantajlara sahiptir ve CPU’lar RNN’ler için avantajlara sahip olabilir .
TPU’lar nerede kullanıldı?
- Algoritmaların dünyanın en iyi Go oyuncusu Lee Sedol’u yenmek için kullanıldığı ünlü DeepMind AlphaGo’da,
- Satranç, Shogi ve Go oynama programları üreten AlphaZero sisteminde,
- Google Street View metin işleme hizmetleri için ve Street View veritabanındaki tüm metni beş günden daha kısa bir sürede bulmak için TPU kullanıldı.
- Ayrıca Google Fotoğraflar örneğinde, TPU’lar artık günde 100 milyonun üzerinde fotoğrafı işleme gücüne olanak sağlıyor.
- En önemlisi, TPU’lar aynı zamanda Google’ın arama sonuçlarının arkasındaki beyin olan RankBrain için de kullanıldı.
CPU – GPU – TPU Birim Kıyaslamaları
Donanım Üreticileri:
Merkezi İşlem Birimi (CPU): Intel, AMD, Qualcomm, NVIDIA, IBM, Samsung, Hewlett-Packard, VIA, Atmel ve diğerleri
Grafik İşleme Birimi (GPU): NVIDIA, AMD, Broadcom Limited, Imagination Technologies (PowerVR)
Tensör İşleme Birimi (TPU): Google
Verim Farkları:
Karşılaştırma olarak şu noktaları göz önünde bulundurmalıyız:
- CPU döngü başına onlarca işlemi gerçekleştirebilir.
- GPU döngü başına on binlerce işlemi gerçekleştirebilir.
- TPU, döngü başına 128.000’e kadar işlemi gerçekleştirebilir.
Amaç:
- Merkezi İşlem Birimi (CPU): Genel olarak her hesaplama problemini çözmek için tasarlanmış bir işlemci. Önbellek ve bellek tasarımı, herhangi bir genel programlama sorununa en uygun olacak şekilde tasarlanmıştır.
- Grafik İşleme Birimi (GPU): Grafiklerin işlenmesini hızlandırmak için tasarlanmış bir işlemci.
- Tensör İşleme Birimi (TPU): TensorFlow (bir programlama çerçevesi) kullanılarak derin öğrenme görevlerini geliştirmeyi hızlandırmak için tasarlanmış bir ortak işlemci; TPU için genel amaçlı programlama amacıyla kullanılabilecek derleyiciler geliştirilmemiştir; dolayısıyla TPU üzerinde genel programlama yapmak ciddi çaba gerektiriyor.
Kullanım Amacı:
- Merkezi İşlem Birimi (CPU): Genel amaçlı programlama sorunu
- Grafik İşleme Birimi (GPU): Grafik oluşturma, Makine Öğrenimi model eğitimi ve çıkarımı, paralelleştirme kapsamına sahip programlama problemi için verimli, Genel amaçlı programlama problemi
- Tensor İşleme Birimi (TPU): Makine Öğrenimi modeli (yalnızca TensorFlow modelinde) eğitimi ve çıkarımı
Özetle
Bireysel kullanıcılardan itibaren işlem gücü olarak kullanmaya başladığımız işlemciler yani merkezi işlem birimi, işlenen verilerin büyüklüğü ve kalitesi zaman içerisinde değiştikçe çözüm olabilecek teknolojilerle desteklenmiş.
Günümüzde blok zinciri teknolojisine kadar olan süreci düşündüğümüzde hala işlemcilerin performansıyla bunu başarabileceğimizi görüyorduk. Fakat grafik kartlarının çekirdek sayılarının fazla olmasından kaynaklı veri işleme ve problemleri daha hızlı çözebilme yeteneği kullanılarak blok zinciri teknolojisinde inanılmaz bir ilerleme gözlendi. Her ne kadar blok zincirinde ekran kartları büyük öneme sahip olsa da büyük veriyi işlemek ve yapay sinir ağlarının eğitilmesinde kullanılan Google tarafından geliştirilmiş TPU birimleri kapladığı yer ve harcadığı enerji bakımından oldukça iyi performans gösterdiğini söyleyebiliriz.
Her birimin kendi içerisinde amacına özgü özellikleri bulunmaktadır. Bilhassa makine ve derin öğrenmeye dair işleme sürecine dair yapacağınız geliştirmelerde bulut tabanlı TPU hizmetini kullanmak size oldukça zaman kazandıracaktır.
Daha önce Google Colab üzerine yazdığım yazımı henüz okumadıysanız şuradan ulaşabilir, TPU birim özelliğine sahip Google Colab detaylarını gözden geçirebilirsiniz.
Bir sonraki yazımda görüşmek dileğiyle..
Hoşça kalın.
Kaynaklar:
–https://analyticsindiamag.com/tpu-beginners-guide-google/
–https://discourse.opengenus.org/t/graphics-processing-unit-gpu-vs-tensor-processing-unit-tpu-vs-field-programmable-gate-arrays-fpga/2087
–https://en.wikipedia.org/wiki/Tensor_Processing_Unit
–https://en.wikipedia.org/wiki/AI_accelerator
–https://iq.opengenus.org/cpu-vs-gpu-vs-tpu/
–https://www.technopat.net/2021/02/01/cpu-tpu-qpu-nedir
Son Yorumlar..