Anasayfa » nasıl » Neden hala GPU'lar Yerine İşlemciler Kullanıyoruz?

    Neden hala GPU'lar Yerine İşlemciler Kullanıyoruz?

    Giderek daha fazla GPU risk hesaplamaları, akışkanlar dinamiği hesaplamaları ve sismik analizler gibi grafiksel olmayan görevler için kullanılıyor. GPU güdümlü cihazları benimsememize engel olan nedir??

    Bugünün Soru ve Cevap oturumu bize, bir soru-cevap web sitelerinin topluluk tarafından yönlendirilen bir grup grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..

    Soru

    SuperUser okuyucu Ell teknoloji haberlerine ayak uyduruyor ve neden daha fazla GPU tabanlı sistem kullanmadığımızı merak ediyor:

    Bana öyle geliyor ki, bugünlerde GPU'da çok fazla hesaplama yapıldı. Açıkçası grafikler orada yapılır, ancak CUDA ve benzerleri kullanılarak AI, karma algoritmalar (Bitcoin'i düşünün) ve diğerleri de GPU'da yapılır. Neden CPU'dan kurtulup GPU'yu kendi başımıza kullanamıyoruz? GPU'yu CPU'dan çok daha hızlı yapan nedir??

    Neden gerçekten? İşlemciyi benzersiz yapan nedir??

    Cevap

    SuperUser katkıda bulunan DragonLord, GPU'lar ve CPU'lar arasındaki farklara ilişkin iyi desteklenen bir genel bakış sunar:

    TL; DR cevabı: GPU'lar CPU'lardan çok daha fazla işlemci çekirdeğine sahiptir, ancak her GPU çekirdeği bir CPU çekirdeğinden önemli ölçüde daha yavaş çalıştığından ve modern işletim sistemleri için gereken özelliklere sahip olmadığından günlük işlemlerde işlemenin çoğunu gerçekleştirmek için uygun değildir. Video işleme ve fizik simülasyonları gibi hesaplama ağırlıklı işlemlere en uygun olanlar.

    Detaylı cevap: GPGPU hala nispeten yeni bir kavramdır. GPU'lar başlangıçta yalnızca grafik oluşturmak için kullanıldı; Teknoloji geliştikçe, GPU'larda CPU'lara kıyasla çok sayıda çekirdek, GPU'lar için hesaplama yetenekleri geliştirilerek, bu veriler ne olursa olsun, birçok paralel veri akışını aynı anda işleyebilmeleri için kullanıldı. 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 (tamamlanmış olsalar ve bir CPU'nun çalıştığı herhangi bir programı çalıştırmak için programlanabilirlerse bile). GPU'larda eksik olan özellikler, modern bir işletim sistemini uygulamak için gereken kesintileri ve sanal belleği içerir..

    Başka bir deyişle, CPU'lar ve GPU'lar, farklı görevlere daha uygun olmalarını sağlayan önemli ölçüde farklı mimarilere sahiptir. Bir GPU, çok sayıda veri akışında büyük miktarlarda veri işleyebilir, 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 bazında (saniye başına komutlar 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 birçok akışı aynı anda verimli bir şekilde işleyemez.

    Sonuç olarak, GPU'lar, kelime işlemciler gibi pek ç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; Birinin çalışması için özel olarak bir GPU için bir program programlaması gerekir ve GPU'ları programlamak için önemli ölçüde farklı teknikler gerekir. Bu farklı teknikler arasında yeni programlama dilleri, mevcut dillerdeki değişiklikler ve birçok akış işlemcisi tarafından gerçekleştirilecek paralel bir işlem olarak bir hesaplamanın ifade edilmesine daha uygun olan yeni programlama paradigmaları bulunur. GPU'ları programlamak için gereken teknikler hakkında daha fazla bilgi için akış işleme ve paralel hesaplama hakkındaki Wikipedia makalelerine bakın..

    Modern GPU'lar, vektör işlemlerini ve kayan nokta aritmetik işlemlerini yapabilir, en son kartları çift duyarlıklı kayan nokta sayılarını değiştirebilir. CUDA ve OpenCL gibi çerçeveler, programların GPU'lara yazılmasını sağlar ve GPU'ların doğası, onları bir dizi özel GPU hesaplama kartının küçük bir bilgisayar için uygun bir yedek olabileceği bilimsel hesaplamada olduğu gibi yüksek düzeyde paralelleştirilebilir işlemlere en uygun hale getirir. kümeyi NVIDIA Tesla Personal Supercomputers'taki gibi hesaplayın. Folding @ home ile deneyimli modern GPU'lu tüketiciler, GPU müşterileriyle katkıda bulunabilirler, bunlar çok yüksek hızlarda protein katlama simülasyonları gerçekleştirebilir ve projeye daha fazla çalışmaya katkıda bulunabilir (özellikle SSS’leri okuduğunuzdan emin olun) GPU'lar). GPU ayrıca, PhysX kullanarak video oyunlarında daha iyi fizik simülasyonu sağlayabilir, video kodlama ve kod çözmeyi hızlandırabilir ve diğer hesaplama yoğun görevleri gerçekleştirebilir. GPU'ların gerçekleştirmeye en uygun olduğu türden işler.

    AMD, geleneksel x86 CPU çekirdeğini GPU'larla birleştiren Hızlandırılmış İşlem Birimi (APU) adlı bir işlemci tasarımına öncülük ediyor. Bu, CPU ve GPU bileşenlerinin birlikte çalışmasına ve ayrı bileşenler için sınırlı alana sahip sistemlerdeki performansı iyileştirmesine izin verebilir. Teknoloji ilerlemeye devam ettikçe, bu ayrı ayrı parçaların artan bir yakınsama derecesini göreceğiz. Bununla birlikte, PC işletim sistemleri ve uygulamaları tarafından gerçekleştirilen birçok görev CPU'lar için hala daha uygundur ve bir GPU kullanarak bir programı hızlandırmak için çok çalışmaya ihtiyaç vardır. 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ğe sahip olmadığından, günlük hesaplama için CPU'dan GPU'ya genel bir geçiş oldukça zordur..


    Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.