Risk hesaplamaları, akışkan dinamiği hesaplamaları ve sismik analiz gibi grafiksel olmayan görevler için giderek daha fazla GPU kullanılmaktadır. GPU ile çalışan cihazları benimsemekten bizi ne alıkoyacak?
Bugünün Soru-Cevap oturumu bize, Soru-Cevap web sitelerinin topluluk destekli bir grubu olan Stack Exchange'in bir alt bölümü olan SuperUser'ın izniyle geliyor.
Soru
SuperUser okuyucu Ell teknoloji haberlerini takip ediyor ve neden daha fazla GPU tabanlı sistem kullanmadığımızı merak ediyor:
Bana öyle geliyor ki, bu günlerde GPU üzerinde birçok hesaplama yapılıyor. Açıkçası orada grafikler yapılır, ancak CUDA ve benzeri, AI, karma algoritmalar (Bitcoins'i düşünün) ve diğerleri de GPU üzerinde yapılır. Neden CPU'dan kurtulup GPU'yu tek başına kullanamıyoruz? GPU'yu CPU'dan çok daha hızlı yapan nedir?
Neden gerçekten? CPU'yu benzersiz kılan nedir?
Cevap
SuperUser katılımcısı DragonLord, GPU'lar ve CPU'lar arasındaki farklara iyi desteklenen bir genel bakış sunar:
TL; DR yanıtı: GPU'lar, CPU'lardan çok daha fazla işlemci çekirdeğine sahiptir, ancak her bir GPU çekirdeği bir CPU çekirdeğinden önemli ölçüde daha yavaş çalıştığı ve modern işletim sistemleri için gerekli özelliklere sahip olmadığı için, işlemlerin çoğunu günlük bilgisayarlarda gerçekleştirmek için uygun değildir. En çok video işleme ve fizik simülasyonları gibi hesaplama yoğun işlemler için uygundurlar.
Ayrıntılı cevap: GPGPU hala nispeten yeni bir kavramdır. GPU'lar başlangıçta yalnızca grafikleri işlemek için kullanıldı; Teknoloji ilerledikçe, CPU'lara göre GPU'lardaki çok sayıda çekirdek, GPU'lar için hesaplama yetenekleri geliştirilerek kullanıldı, böylece veriler ne olursa olsun aynı anda birçok paralel veri akışını işleyebilirler. GPU'lar yüzlerce hatta binlerce akış işlemcisine sahip olabilirken, her biri bir CPU çekirdeğinden daha yavaş çalışır ve daha az özelliğe sahiptir (öyle olsalar bile) Turing tamamlandı ve bir CPU'nun çalıştırabileceği herhangi bir programı çalıştırmak için programlanabilir). GPU'larda eksik olan özellikler, modern bir işletim sistemi uygulamak için gerekli olan kesintileri ve sanal belleği içerir.
Başka bir deyişle, CPU'lar ve GPU'lar, onları farklı görevlere daha uygun hale getiren önemli ölçüde farklı mimarilere sahiptir. Bir GPU, birçok akışta büyük miktarda veriyi işleyebilir ve bunlar üzerinde nispeten basit işlemler gerçekleştirebilir, ancak tek veya birkaç veri akışı üzerinde ağır veya karmaşık işlemeye uygun değildir. Bir CPU, çekirdek başına (saniye başına talimatlar açısından) çok daha hızlıdır ve tek veya birkaç veri akışı üzerinde karmaşık işlemleri daha kolay gerçekleştirebilir, ancak aynı anda birçok akışı verimli bir şekilde işleyemez.
Sonuç olarak, GPU'lar, kelime işlemciler gibi birçok yaygın tüketici uygulaması da dahil olmak üzere önemli ölçüde fayda sağlamayan veya paralelleştirilemeyen görevleri yerine getirmek için uygun değildir. Ayrıca, GPU'lar temelde farklı bir mimari kullanır; Çalışması için özellikle bir GPU için bir uygulama programlamanız gerekir ve GPU'ları programlamak için önemli ölçüde farklı teknikler gerekir. Bu farklı teknikler, yeni programlama dillerini, mevcut dillerde yapılan değişiklikleri ve bir hesaplamayı birçok akış işlemcisi tarafından gerçekleştirilecek paralel bir işlem olarak ifade etmeye daha uygun olan yeni programlama paradigmalarını içerir. GPU'ları programlamak için gereken teknikler hakkında daha fazla bilgi için aşağıdaki Wikipedia makalelerine bakın: akış işleme ve paralel hesaplama .
Modern GPU'lar, çift hassasiyetli kayan noktalı sayıları işleyebilen en yeni kartlarla vektör işlemleri ve kayan nokta aritmetiği gerçekleştirebilir. CUDA ve OpenCL gibi çerçeveler, programların GPU'lar için yazılmasına olanak tanır ve GPU'ların doğası, bunları, bir dizi özel GPU hesaplama kartının küçük bir kart için uygun bir alternatif olabileceği bilimsel hesaplama gibi son derece paralelleştirilebilir işlemlere en uygun hale getirir. olduğu gibi hesaplama kümesi NVIDIA Tesla Kişisel Süper Bilgisayarları . Folding @ home konusunda deneyimli modern GPU'lara sahip tüketiciler, bunları kullanarak GPU istemcileri çok yüksek hızlarda protein katlama simülasyonları gerçekleştirebilen ve projeye daha fazla çalışma katkısı sağlayabilen ( SSS ilk olarak, özellikle GPU'larla ilgili olanlar). GPU'lar ayrıca PhysX kullanarak video oyunlarında daha iyi fizik simülasyonu sağlayabilir, video kodlamayı ve kod çözmeyi hızlandırabilir ve diğer bilgi işlem yoğun görevleri gerçekleştirebilir. GPU'ların gerçekleştirmeye en uygun olduğu bu tür görevlerdir.
AMD, bir işlemci tasarımına öncülük ediyor. Hızlandırılmış İşleme Birimi (APU) geleneksel x86 CPU çekirdeklerini GPU'larla birleştiren. Bu, CPU ve GPU bileşenlerinin birlikte çalışmasına ve ayrı bileşenler için sınırlı alana sahip sistemlerde performansı artırmasına izin verebilir. Teknoloji gelişmeye devam ettikçe, bir zamanlar ayrı olan bu parçaların artan derecede yakınsadığını göreceğiz. Bununla birlikte, PC işletim sistemleri ve uygulamaları tarafından gerçekleştirilen birçok görev hala CPU'lara daha uygundur ve bir GPU kullanarak bir programı hızlandırmak için çok fazla çalışma yapılması gerekir. Mevcut yazılımların çoğu x86 mimarisini kullandığından ve GPU'lar farklı programlama teknikleri gerektirdiğinden ve işletim sistemleri için gerekli birçok önemli özelliği eksik olduğundan, günlük bilgi işlem için CPU'dan GPU'ya genel bir geçiş son derece zordur.
Açıklamaya eklemek istediğiniz bir şey var mı? Yorumlarda sesi kapatın. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla yanıt okumak ister misiniz? Tartışma dizisinin tamamına buradan göz atın .