Geliştiriciler İçin HSA: Kitleler İçin Heterojen Hesaplama

Yayınlanan: 2022-03-11

AMD, ARM, Samsung, MediaTek, Qualcomm ve Texas Instruments gibi yonga üreticilerinin ortak noktası nedir? Bu çip üreten devler arasındaki bariz benzerliklerin yanı sıra, onlar aynı zamanda HSA Vakfı'nın da kurucuları. HSA nedir ve neden endüstrinin ağır topları tarafından desteklenen bir temele ihtiyaç duyar?

Bu yazıda HSA'nın yakın gelecekte neden önemli olabileceğini açıklamaya çalışacağım, bu yüzden temel bilgilerle başlayacağım: HSA nedir ve neden umursamalısınız ?

HSA, kulağa sıkıcı gelen Heterojen Sistem Mimarisi'nin kısaltmasıdır, ancak bana güvenin, gerçekten çok heyecan verici olabilir. HSA, temel olarak, aynı veri yolu üzerinde CPU'ların ve GPU'ların daha fazla entegrasyonunu sağlamak için tasarlanmış bir dizi standart ve spesifikasyondur. Bu tamamen yeni bir kavram değil; masaüstü CPU'lar ve mobil SoC'ler yıllardır entegre grafikler kullanıyor ve tek bir veri yolu kullanıyor, ancak HSA bunu bir sonraki seviyeye taşıyor.

Aynı yük, farklı mimariler: CPU'lar ve GPU'lar farklı görevlerde başarılıdır. Geliştirici girişi olmadan yükü paylaşmaya başladıklarında ne olur?

Aynı yük, farklı mimariler: CPU'lar ve GPU'lar farklı görevlerde başarılıdır. Geliştirici girişi olmadan yükü paylaşmaya başladıklarında ne olur?
Cıvıldamak

HSA, CPU ve GPU için yalnızca aynı veri yolunu ve paylaşılan belleği kullanmak yerine, bu iki çok farklı mimarinin birlikte çalışmasına ve görevleri paylaşmasına izin verir. Büyük bir şey gibi gelmeyebilir, ancak daha yakından bakarsanız ve bu yaklaşımın potansiyel uzun vadeli etkilerini incelerseniz, teknik anlamda çok “tatlı” görünmeye başlar.

Oh hayır! İşte Aptalca Standart Geliştiricilerin Uygulaması Gereken Başka Bir Aptalca

Evet ve hayır.

Aynı veri yolunu paylaşma fikri yeni değil ve belirli hesaplama görevleri için yüksek düzeyde paralelleştirilmiş GPU'lar kullanma fikri de (ve vesikalık görüntü oluşturmayı içermeyen) yeni değil. Daha önce yapıldı ve sanırım okuyucularımızın çoğu CUDA ve OpenCL gibi GPGPU standartlarına zaten aşina.

Bununla birlikte, CUDA veya OpenCL yaklaşımından farklı olarak, HSA, en azından farklı işlem çekirdeklerine farklı yükler atamak söz konusu olduğunda, geliştiriciyi denklemin dışına çıkarır. Donanım, hesaplamaların ne zaman CPU'dan GPU'ya aktarılacağına ve bunun tersinin ne zaman yapılacağına karar verir. HSA donanımında da uygulanabildiklerinden, HSA'nın OpenCL gibi yerleşik GPGPU programlama dillerinin yerini alması beklenmez.

HSA'nın tüm amacı bu: Tüm süreci kolay, hatta sorunsuz hale getirmesi gerekiyor. Geliştiricilerin, hesaplamaları GPU'ya boşaltmayı düşünmeleri gerekmeyecek. Donanım bunu otomatik olarak yapacaktır.

Birçok büyük isim HSA'yı destekliyor. Ancak endüstrinin ağır topları Intel ve Nvidia listede yok.

Birçok büyük isim HSA'yı destekliyor. Ancak endüstrinin ağır topları Intel ve Nvidia listede yok.
Cıvıldamak

Bunu başarmak için HSA, birden fazla yonga üreticisi ve donanım satıcısından destek almak zorunda kalacak. HSA destekçilerinin listesi etkileyici olsa da, Intel, çip endüstrisinin bu gerçek kimin kim olduğu konusunda bariz bir şekilde yok. Intel'in hem masaüstü hem de sunucu işlemci pazarlarındaki pazar payı düşünüldüğünde, bu çok önemli . Listede bulamayacağınız bir diğer isim ise CUDA'ya odaklanan ve şu anda GPU hesaplama pazarının lideri olan Nvidia'dır.

Ancak HSA, yalnızca Intel Inside etiketine sahip donanımlarda yüksek performanslı sistemler ve uygulamalar için tasarlanmamıştır. HSA, Intel'in ihmal edilebilir bir pazar payına sahip olduğu enerji açısından verimli mobil cihazlarda da kullanılabilir.

Yani, HSA'nın hayatı kolaylaştırması gerekiyor, ancak henüz alakalı mı? Yakalayacak mı? Bu teknolojik bir soru değil, ekonomik bir soru. Piyasanın görünmez eline bağlı olacak. O halde, devam etmeden önce, işlerin şu anda nerede olduğuna ve bu noktaya nasıl geldiğimize daha yakından bakarak başlayalım.

HSA Geliştirme, Diş Çıkarma Sorunları ve Evlat Edinme Endişeleri

Girişte söylediğim gibi, HSA tam olarak yeni bir kavram değildir. Başlangıçta, onu yerden kaldırmakla ilgili bir çıkarı olan Advanced Micro Devices (AMD) tarafından tasarlandı. On yıl önce AMD, grafik uzmanları ATI'yi satın aldı ve o zamandan beri şirket, genel satışları artırmak için en son GPU teknolojisine erişimini artırmaya çalışıyor.

Görünüşte fikir yeterince basitti: AMD yalnızca son teknoloji ayrık GPU'lar geliştirmeye ve üretmeye devam etmeyecek, aynı zamanda ATI'nin GPU teknolojisini işlemcilerine entegre edecekti. AMD'nin pazarlama departmanı bu fikri 'Fusion' olarak adlandırdı ve HSA, Fusion System Architecture (FSA) olarak anıldı. Kulağa harika geliyor, değil mi? İyi entegre grafiklere sahip iyi bir x86 işlemci almak iyi bir fikir gibi görünüyordu ve öyleydi.

Ne yazık ki, AMD yol boyunca bir dizi sorunla karşılaştı; Birkaç tanesini ayıracağım:

  • Teknolojideki herhangi bir iyi fikir, bu durumda, Intel tarafından rakipler tarafından yakalanmak zorundadır.
  • AMD, teknolojik üstünlüğü Intel'e kaptırdı ve Intel'in dökümhane teknolojisi liderliği nedeniyle CPU pazarında rekabet etmenin giderek zorlaştığını gördü.
  • AMD'nin yürütmesi sorunluydu ve yeni işlemcilerin çoğu piyasaya geç çıktı. Diğerleri tamamen hurdaya çıkarıldı.
  • 2008'deki ekonomik çöküş ve ardından gelen mobil devrim yardımcı olmadı.

Bunlar ve bir dizi başka faktör, AMD'nin üstünlüğünü köreltmek ve ürünlerinin ve teknolojilerinin pazarda benimsenmesini engellemek için bir araya geldi. AMD, 2011'in ortalarında yeni nesil entegre Radeon grafikleriyle işlemcileri piyasaya sürmeye başladı ve bunlara CPU yerine Hızlandırılmış İşlem Birimleri (APU'lar) demeye başladı.

Pazarlama bir yana, AMD'nin ilk nesil APU'ları (kod adı Llano) bir fiyaskoydu. Çipler gecikti ve Intel'in tekliflerine ayak uyduramadı. Ciddi HSA özellikleri de dahil edilmedi, ancak AMD bunları 2012 platformuna eklemeye başladı (aslında Llano'nun doğru yaptığı Trinity). Bir sonraki adım 2014'te heterojen bellek yönetimini destekleyen Kaveri APU'larının piyasaya sürülmesiyle geldi (GPU IOMMU ve CPU MMU aynı adres alanını paylaştı). Kaveri ayrıca daha fazla mimari entegrasyon sağlayarak CPU ve GPU arasında tutarlı bellek sağlar (AMD buna Heterojen Birleşik Bellek Erişimi anlamına gelen hUMA adını verir). Sonraki Carizzo yenilemesi daha da fazla HSA özelliği ekleyerek işlemcinin GPU'daki hesaplama görevlerini bağlamsal olarak değiştirmesini ve birkaç numara daha yapmasını sağladı.

Yaklaşan Zen CPU mimarisi ve bunun üzerine inşa edilen APU'lar, piyasaya çıktığında ve ortaya çıktığında daha fazlasını sunmayı vaat ediyor.

Sorun nedir?

AMD, yerleşik GPU'ların potansiyelini fark eden tek yonga üreticisi değildi. Intel, ARM yonga üreticilerinin yaptığı gibi bunları Core CPU'larına eklemeye başladı, bu nedenle entegre GPU'lar şu anda hemen hemen her akıllı telefon SoC'sinde ve ayrıca PC'lerin/Mac'lerin büyük çoğunluğunda kullanılmaktadır. Bu arada AMD'nin CPU pazarındaki konumu erozyona uğradı. Pazar payındaki düşüş, AMD platformlarını geliştiriciler, işletmeler ve hatta tüketiciler için daha az çekici hale getirdi. Piyasada o kadar çok AMD tabanlı bilgisayar yok ve Apple AMD işlemcileri hiç kullanmaz (her ne kadar esas olarak OpenCL uyumluluğu nedeniyle AMD grafiklerini kullanmış olsa da).

AMD artık üst düzey CPU pazarında Intel ile rekabet etmiyor ama öyle olsa bile bu konuda pek bir fark yaratmayacak. İnsanlar tümleşik grafikleri kullanmak için 2.000 dolarlık iş istasyonu veya oyun bilgisayarı satın almazlar. Pahalı, ayrık grafikler kullanırlar ve enerji verimliliğine fazla önem vermezler.

Akıllı Telefonlar ve Tabletler İçin Bazı HSA'lara Ne dersiniz?

Fakat bekle. Peki ya mobil platformlar? AMD, akıllı telefon ve tablet yongaları için benzer çözümler sunamaz mıydı? Hayır, pek değil.

Görüyorsunuz, ATI'nin satın alınmasından birkaç yıl sonra AMD, ekonomik krizin de etkisiyle kendisini zorlu bir mali durumda buldu ve bu nedenle Imageon mobil GPU bölümünü Qualcomm'a satmaya karar verdi. Qualcomm, ürünleri Adreno (Radeon'un anagramı) olarak yeniden adlandırdı ve yeni boyanmış şirket içi GPU'ları kullanarak akıllı telefon işlemci pazarında baskın oyuncu haline geldi.

Bazılarınızın fark edebileceği gibi, akıllı telefon devrimi başlamak üzereyken bir akıllı telefon grafik kıyafeti satmak, parlak bir iş hamlesi gibi görünmüyor, ancak sanırım geriye bakış her zaman 20/20'dir.

HSA eskiden yalnızca AMD ve onun x86 işlemcileriyle ilişkilendiriliyordu, ancak artık durum böyle değil. Aslında, tüm HSA Vakfı üyeleri, HSA özellikli ARM akıllı telefon işlemcilerini göndermeye başlasaydı, hem gelir hem de sevk edilen birim açısından AMD'nin x86 işlemcilerinden birkaç kat daha fazla satarlardı. Peki yaparlarsa ne olur? Bu sektör ve geliştiriciler için ne anlama geliyor?

Yeni başlayanlar için, akıllı telefon işlemcileri zaten bir tür heterojen hesaplamaya güveniyor. Heterojen bilgi işlem genellikle tek bir çipte farklı mimarilerin kullanılması kavramına atıfta bulunur ve günümüzün yüksek düzeyde entegre edilmiş SoC'lerinde bulunan tüm bileşenler göz önüne alındığında, bu çok geniş bir tanım olabilir. Sonuç olarak, hemen hemen her SoC, kişinin standartlarına bağlı olarak heterojen bir bilgi işlem platformu olarak kabul edilebilir. Bazen, insanlar heterojen bir platform olarak aynı talimat setine dayanan farklı işlemcilere bile atıfta bulunurlar (örneğin, her ikisi de 64-bit ARMv8 komut setine dayanan ARM Cortex-A57 ve A53 çekirdekli mobil çipler).

Pek çok gözlemci, Apple A-serisi çipler, Samsung Exynos SoC'ler ve Qualcomm ve MediaTek gibi büyük oyuncular gibi diğer üreticilerin benzer işlemcileri de dahil olmak üzere ARM tabanlı işlemcilerin çoğunun artık heterojen platformlar olarak kabul edilebileceği konusunda hemfikir.

Ancak akıllı telefon işlemcilerinde neden HSA'ya ihtiyaç duyulsun? Profesyonel iş yükleriyle başa çıkmak için genel bilgi işlem için GPU kullanmanın amacı Angry Birds ve Uber değil mi?

Evet öyle, ancak bu, mobil işlemci tasarımında bir öncelik olan verimliliği artırmak için neredeyse aynı bir yaklaşımın kullanılamayacağı anlamına gelmez. Bu nedenle, üst düzey bir iş istasyonunda sayısız paralelleştirilmiş görevi yerine getirmek yerine, HSA, mobil işlemcileri daha verimli ve çok yönlü hale getirmek için de kullanılabilir.

Çok az insan bu işlemcilere yakından bakıyor, yeni bir telefon alırken genellikle teknik özelliklere bakıyorlar ve hepsi bu: Rakamlara ve markalara bakıyorlar. Genellikle SoC'nin kendisine bakmazlar, bu bize çok şey söyler ve işte nedeni: Üst düzey akıllı telefon işlemcilerindeki GPU'lar, CPU'lardan daha fazla silikon alanı kaplar. Zaten orada olduklarını düşünürsek, onları oyun dışındaki uygulamalarda iyi bir şekilde kullanmak güzel olurdu, değil mi?

Varsayımsal, tamamen HSA uyumlu bir akıllı telefon işlemcisi, geliştiricilerin genel üretim maliyetlerine fazla bir şey eklemeden bu potansiyelden faydalanmalarına, daha fazla özellik uygulamasına ve verimliliği artırmalarına olanak sağlayabilir.

HSA'nın akıllı telefon işlemcileri için en azından teoride yapabilecekleri şunlardır:

  • Uygun görevleri GPU'ya aktararak verimliliği artırın.
  • Bazı durumlarda CPU'yu boşaltarak performansı artırın.
  • Bellek veriyolunu daha etkin bir şekilde kullanın.
  • Tek seferde daha fazla silikona dokunarak çip üretim maliyetlerini potansiyel olarak azaltın.
  • CPU çekirdekleri tarafından verimli bir şekilde işlenemeyen yeni özellikleri tanıtın.
  • Standardizasyon sayesinde geliştirmeyi kolaylaştırın.

Kulağa hoş geliyor, özellikle geliştiricilerin uygulama için çok fazla zaman harcamayacağını düşündüğünüzde. Teori bu, ancak eylemde görmek için beklememiz gerekecek ve bu biraz zaman alabilir.

HSA Nasıl Çalışır?

Giriş bölümünde temel konuları zaten özetledim ve birkaç nedenden dolayı çok fazla ayrıntıya girmekte tereddüt ediyorum: Kimse bir teknoloji blogunda yayınlanan romanlardan hoşlanmaz ve HSA uygulamaları farklılık gösterebilir.

Bu nedenle, kavramı birkaç yüz kelimeyle özetlemeye çalışacağım.

Standart bir sistemde, bir uygulama, arabellekleri GPU'ya aktararak hesaplamalar GPU'sunu boşaltır ve bu, kuyruğa alınmadan önce bir CPU çağrısını içerir. CPU daha sonra işi planlayacak ve GPU'ya iletecek ve bu da tamamlandıktan sonra CPU'ya geri iletecektir. Ardından uygulama, hazır olmadan önce CPU tarafından tekrar eşlenmesi gereken arabelleği alır. Gördüğünüz gibi, bu yaklaşım birçok ileri geri içerir.

Bir bellek veri yolunda farklı mimariler. Kolaylaştırma, HSA'nın özüdür.

Bir bellek veri yolunda farklı mimariler. Kolaylaştırma, HSA'nın özüdür.
Cıvıldamak

Bir HSA sisteminde, uygulama işi kuyruğa alır, HSA CPU işi devralır, GPU'ya verir, geri alır ve uygulamaya alır. Tamamlandı.

Bu, diğer bilgi işlem birimleri de dahil olabilse de (örneğin DSP'ler) sistem belleğini doğrudan CPU ve GPU arasında paylaşarak mümkün olur. Bu düzeyde bellek entegrasyonunu gerçekleştirmek için HSA, bilgi işlem cihazları için sanal bir adres alanı kullanır. Bu, CPU ve GPU çekirdeklerinin, sayfa tablolarını paylaştıkları sürece belleğe eşit koşullarda erişebileceği ve farklı cihazların işaretçiler aracılığıyla veri alışverişi yapmasına izin verebileceği anlamına gelir.

Bu açıkça verimlilik için harika, çünkü artık GPU'ya ve CPU'ya her biri için sanal bellek kullanarak bellek ayırmaya gerek yok. Birleştirilmiş sanal bellek sayesinde her ikisi de ihtiyaçlarına göre sistem belleğine erişerek üstün kaynak kullanımı ve daha fazla esneklik sağlar.

512 MB'ı entegre GPU için ayrılmış 4 GB RAM'e sahip düşük güç tüketen bir sistem hayal edin. Bu model genellikle esnek değildir ve anında GPU bellek miktarını değiştiremezsiniz. 256MB veya 512MB ile sıkışıp kaldınız ve hepsi bu. HSA ile canınız ne istiyorsa onu yapabilirsiniz: GPU'ya çok fazla şey yüklerseniz ve GPU için daha fazla RAM'e ihtiyacınız varsa, sistem bunu tahsis edebilir. Bu nedenle, çok sayıda yüksek çözünürlüklü varlığın bulunduğu grafiğe bağlı uygulamalarda, sistem GPU'ya sorunsuz bir şekilde 1 GB veya daha fazla RAM tahsis edebilir.

Her şey eşit olduğunda, HSA ve HSA olmayan sistemler aynı bellek bant genişliğini paylaşacak, aynı miktarda belleğe erişime sahip olacak, ancak HSA sistemi bunu çok daha verimli kullanarak sonuçlanabilir, böylece performansı iyileştirebilir ve güç tüketimini azaltabilir. Her şey daha azına daha fazlasını elde etmekle ilgili.

Heterojen Hesaplama Ne İçin İyi Olabilir?

Basit cevap? Heterojen bilgi işlem veya uygulamalarından biri olarak HSA, GPU'lara CPU'lardan daha uygun olan tüm hesaplama görevleri için iyi bir seçim olmalıdır. Ama bu tam olarak ne anlama geliyor, GPU'lar zaten ne işe yarıyor?

Modern, entegre GPU'lar, ayrı grafiklere (özellikle üst düzey oyun grafik kartları ve iş istasyonu çözümleri) kıyasla çok güçlü değiller, ancak öncekilerden çok daha güçlüler.

Takip etmediyseniz, bu entegre GPU'ların bir şaka olduğunu ve yıllarca sadece bu olduklarını varsayabilirsiniz: ucuz ev ve ofis kutuları için grafikler. Ancak, entegre GPU'lar yonga setinden CPU paketine taşınıp öldükçe, gerçekten entegre hale geldikçe, bu on yılın başında değişmeye başladı.

Bugünlerde bir AMD işlemci kalıbı böyle görünüyor. Onlara hala işlemci diyoruz, ancak GPU, CPU'dan önemli ölçüde daha fazla silikon alanı kaplıyor.

Bugünlerde bir AMD işlemci kalıbı böyle görünüyor. Onlara hala işlemci diyoruz, ancak GPU, CPU'dan önemli ölçüde daha fazla silikon alanı kaplıyor.
Cıvıldamak

Amiral gemisi GPU'lara kıyasla hala çok zayıf olsa da, entegre GPU'lar bile çok fazla potansiyel barındırıyor. Tüm GPU'lar gibi, tek talimat, çoklu veri (SIMD) ve tek talimat, çoklu iş parçacığı (SIMT) yüklemelerinde mükemmeldirler. Tekrarlayan, paralelleştirilmiş yüklerde çok sayıda sayıyı sıkıştırmanız gerekiyorsa, GPU'lar yardımcı olacaktır. Öte yandan CPU'lar ağır, dallara ayrılmış iş yüklerinde hala daha iyidir.

Bu nedenle CPU'larda genellikle iki ile sekiz arasında daha az çekirdeğe sahiptir ve çekirdekler sıralı seri işleme için optimize edilmiştir. GPU'lar, düzinelerce, yüzlerce ve amiral gemisi ayrı grafik kartlarına, binlerce daha küçük, daha verimli çekirdeğe sahip olma eğilimindedir. GPU çekirdekleri aynı anda birden fazla görevi yerine getirmek üzere tasarlanmıştır, ancak bu bireysel görevler CPU tarafından gerçekleştirilenlerden çok daha basittir. GPU bunları üstün verimlilik ve/veya performansla kaldırabiliyorsa, neden CPU'ya bu tür yükler yükleyesiniz?

Ancak GPU'lar bu konuda bu kadar iyiyse, neden onları yıllar önce genel bilgi işlem cihazları olarak kullanmaya başlamadık? Endüstri denedi, ancak ilerleme yavaştı ve belirli nişlerle sınırlıydı. Konsept başlangıçta Grafik İşleme Birimlerinde (GPGPU) Genel Amaçlı Hesaplama olarak adlandırıldı. Eski günlerde potansiyel sınırlıydı, ancak GPGPU konsepti sağlamdı ve daha sonra Nvidia'nın CUDA'sı ve Apple'ın/Khronos Group'un OpenCL'si şeklinde benimsendi ve standartlaştırıldı.

CUDA ve OpenCL, programcıların GPU'ları farklı ve çok daha etkili bir şekilde kullanmalarına izin verdikleri için büyük bir fark yarattı. Ancak bunlar satıcıya özeldi. CUDA'yı Nvidia donanımında kullanabilirsiniz, OpenCL ise ATI donanımı için ayrılmıştır (ve Apple tarafından benimsenmiştir). Microsoft'un DirectCompute API'si DirectX 11 ile piyasaya sürüldü ve sınırlı, satıcıdan bağımsız bir yaklaşıma izin verildi (ancak Windows ile sınırlıydı).

GPU hesaplama için birkaç uygulamayı listeleyerek özetleyelim:

  • HPC kümeleri, süper bilgisayarlar, hesaplama yükleri için GPU kümeleri, GRID bilgi işlem, yük dengeleme biçiminde geleneksel yüksek performanslı bilgi işlem (HPC) .

  • Genel olarak oyun veya grafik içeren, ancak zorunlu olmayan fizik gerektiren yükler . Akışkanlar dinamiği hesaplamalarını, istatistiksel fiziği ve birkaç egzotik denklem ve algoritmayı işlemek için de kullanılabilirler.

  • Geometri , saydamlık hesaplamaları, gölgeler, çarpışma algılama vb. dahil olmak üzere geometri ile ilgili hemen hemen her şey.

  • DSP'ler yerine bir GPU kullanarak ses işleme , konuşma işleme, analog sinyal işleme ve daha fazlası.

  • Dijital görüntü işleme , GPU'ların (tabii ki) bunun için tasarlandığı şeydir, bu nedenle görüntü ve video işleme ve kod çözme işlemlerini hızlandırmak için kullanılabilirler. Bir video akışının kodunu çözmeniz ve bir filtre uygulamanız gerekirse, giriş seviyesi bir GPU bile zemini bir CPU ile silecektir.

  • İklim araştırması, astrofizik, kuantum mekaniği, moleküler modelleme vb. dahil olmak üzere bilimsel hesaplama .

  • Diğer hesaplama açısından yoğun görevler , yani şifreleme/şifre çözme. İster kripto para birimlerini “mayınlamanız”, ister gizli verilerinizi şifrelemeniz veya şifresini çözmeniz, ister parolaları kırmanız veya virüsleri tespit etmeniz gereksin, GPU size yardımcı olabilir.

Bu, olası GPU hesaplama uygulamalarının tam bir listesi değildir, ancak konsepte aşina olmayan okuyucular, GPU hesaplamayı neyin farklı kıldığı hakkında genel bir fikir edinmelidir. Oyun ve profesyonel grafikler gibi bariz uygulamaları da dışarıda bıraktım.

Zaten kapsamlı bir liste mevcut değil, çünkü GPU hesaplama, finans ve tıbbi görüntülemeden veritabanı ve istatistik yüklerine kadar her türlü şey için kullanılabilir. Kendi hayal gücünüzle sınırlısınız. Sözde bilgisayar vizyonu, gelecek vaat eden başka bir uygulamadır. Ağaçlardan, yayalardan ve diğer araçlardan kaçınmak için bir drone veya sürücüsüz arabaya "öğretmeniz" gerekiyorsa, yetenekli bir GPU'ya sahip olmak iyi bir şeydir.

En sevdiğiniz Lindsay Lohan şakasını buraya eklemekten çekinmeyin.

HSA İçin Geliştirme: Bazı Kötü Haber Zamanı

Bu benim kişisel görüşüm olabilir, ama ben bir HSA'ya inanan biriyim. Konseptin, düzgün bir şekilde uygulanması ve çip üreticileri ve geliştiriciler arasında yeterli desteği alması koşuluyla çok fazla potansiyele sahip olduğunu düşünüyorum. Bununla birlikte, ilerleme acı verici bir şekilde yavaştı, ya da belki de bu sadece benim hissim, bir tutam hüsnükuruntu ile. Sadece yeni teknolojiyi iş başında görmeyi seviyorum ve sabırlı bir bireyden başka bir şey değilim.

HSA ile ilgili sorun, henüz orada olmamasıdır . Bu, kalkmayacağı anlamına gelmez, ancak biraz zaman alabilir. Sonuçta, sadece yeni yazılım yığınlarından bahsetmiyoruz; HSA, sihrini yapmak için yeni donanım gerektirir. Bununla ilgili sorun, bu donanımın çoğunun hala çizim tahtasında olması, ancak oraya gidiyoruz. Yavaşça.

Ne yazık ki, HSA çözüm yığını, standart yazılım araçları paketinden daha fazlasını içerir. Heterojen bilgi işlem, yazılım ve donanımın bir simbiyozudur.

Ne yazık ki, HSA çözüm yığını, standart yazılım araçları paketinden daha fazlasını içerir. Heterojen bilgi işlem, yazılım ve donanımın bir simbiyozudur.
Cıvıldamak

Bu, geliştiricilerin HSA ile ilgili projeler üzerinde çalışmadığı anlamına gelmez , ancak bu konuda çok fazla ilgi veya ilerleme yok. HSA'ya bir şans vermek istiyorsanız, kontrol etmeniz gereken birkaç kaynak:

  • HSA Foundation @ GitHub, açıkçası HSA ile ilgili kaynakların yeridir . HSA Vakfı, hata ayıklayıcılar, derleyiciler, hayati HSAIL araçları ve çok daha fazlası dahil olmak üzere GitHub'da bir dizi proje yayınlar ve sürdürür. Kaynakların çoğu AMD donanımı için tasarlanmıştır.

  • AMD tarafından sağlanan HSAIL kaynakları, HSAIL özellikleri hakkında daha iyi bir fikir edinmenizi sağlar. HSAIL, HSA Intermediate Language anlamına gelir ve temel olarak arka uç derleyici yazarları ve HSA cihazlarını hedeflemek isteyen kitaplık yazarları için anahtar araçtır.

  • HSA Programcının Referans Kılavuzu (PDF), tam HSAIL spesifikasyonunu ve ayrıca ara dilin kapsamlı bir açıklamasını içerir.

  • HSA Vakfı kaynakları şimdilik sınırlıdır ve vakfın Geliştiriciler Programı "yakında" geliyor, ancak kontrol edilmesi gereken bir dizi resmi geliştirici aracı var. Daha da önemlisi, başlamak için ihtiyaç duyacağınız yığın hakkında size iyi bir fikir verecektir.

  • Resmi AMD Blogu, bazı faydalı HSA içeriğine de sahiptir.

Meraklı bir tip olmanız şartıyla, başlamanız için bu yeterli olacaktır. Asıl soru, başlamak için zahmet edip etmemeniz gerektiğidir.

HSA ve GPU Hesaplamanın Geleceği

Gelişmekte olan bir teknolojiyi ne zaman ele alsak, aynı ikilemle karşı karşıyayız: Okuyuculara zaman ve kaynak harcamalarını mı, yoksa uzak durup bekle ve gör yaklaşımını mı söylemeliyiz?

Biraz önyargılı olduğumu açıkça belirttim çünkü GPU hesaplamanın genel konseptini seviyorum, ancak çoğu geliştirici şimdilik onsuz yapabilir. Başlasa bile, HSA sınırlı bir çekiciliğe sahip olacak ve çoğu geliştiriciyi ilgilendirmeyecektir. Ancak, yolun aşağısında önemli olabilir. Ne yazık ki AMD için x86 işlemci pazarında oyunun kurallarını değiştirmesi pek olası değil, ancak ARM tabanlı mobil işlemcilerde daha önemli olduğunu kanıtlayabilir. AMD'nin fikri olabilir, ancak Qualcomm ve MediaTek gibi şirketler, HSA özellikli donanımı yüz milyonlarca kullanıcıya ulaştırmak için daha iyi bir konumdalar.

Yazılım ve donanımın mükemmel bir birlikteliği olmalıdır. Mobil yonga üreticileri HSA için çıldırırsa, bu büyük bir mesele olur. Yeni nesil HSA yongaları, CPU ve GPU çekirdekleri arasındaki çizgiyi bulanıklaştıracaktır. Aynı bellek veriyolunu eşit şartlarda paylaşacaklar ve bence şirketler bunları farklı şekilde pazarlamaya başlayacaklar. Örneğin AMD, APU'larını halihazırda farklı "bilgi işlem çekirdeklerinden" (CPU'lar ve GPU'lar) oluşan "bilgisayar cihazları" olarak pazarlamaktadır.

Mobil çipler, benzer bir yaklaşımla sonuçlanabilir. Sekiz veya on CPU çekirdeği ve şu veya bu GPU'lu bir çipi pazarlamak yerine, çip üreticileri kümeler, modüller ve birimler hakkında konuşmaya başlayabilirler. Bu nedenle, dört küçük ve dört büyük CPU çekirdeğine sahip bir işlemci, GPU çekirdeklerini hesaba katarlarsa "çift küme" veya "çift modül" işlemci veya "üç küme" veya "dört küme" tasarımı olacaktır. . Ofis yazıcınızdaki DPI veya ucuz akıllı telefon kameranızdaki megapiksel sayısı gibi birçok teknik özellik zamanla anlamsız hale gelme eğilimindedir.

HSA, farklı mimarilerin kendi ağırlıklarını çekmelerine ve son derece farklı yüklerin üstesinden daha yüksek verimlilikle gelmelerine olanak tanır.

HSA, farklı mimarilerin kendi ağırlıklarını çekmelerine ve son derece farklı yüklerin üstesinden daha yüksek verimlilikle gelmelerine olanak tanır.
Cıvıldamak

Yine de sadece pazarlama değil. GPU'lar CPU çekirdekleri kadar esnek hale geldiyse ve sistem kaynaklarına CPU kadar eşit koşullarda erişebiliyorsa, neden onları gerçek adlarıyla çağırma zahmetine girelim ki? Yirmi yıl önce, endüstri, her CPU'nun olmazsa olmaz bir bileşeni haline geldiğinde özel matematiksel yardımcı işlemciler (FPU'lar) kullanmayı bıraktı. Sadece birkaç ürün döngüsünden sonra onların var olduğunu unuttuk.

Hesaplama için GPU'lara dokunmanın tek yolunun HSA olmadığını unutmayın.

Intel ve Nvidia gemide değil ve yaklaşımları farklı. Intel, son yıllarda GPU Ar-Ge yatırımını sessizce hızlandırdı ve en yeni entegre grafik çözümleri oldukça iyi. On-kalıp GPU'lar daha güçlü hale geldikçe ve daha fazla silikon alanı kapladıkça, Intel'in bunları genel bilgi işlem için kullanmanın daha ustaca yollarını bulması gerekecek.

Nvidia ise yıllar önce (PC yonga seti üretmeyi bıraktığında) tümleşik grafik pazarından çekildi, ancak Tegra serisi işlemcileriyle ARM işlemci pazarında şansını denedi. Çok büyük bir başarı olmadılar, ancak hala bazı donanımlarda kullanılıyorlar ve Nvidia, çabalarını gömülü sistemler, yani otomotiv üzerinde yoğunlaştırıyor. Bu ayarda, entegre GPU, çarpışma algılama, iç mekan navigasyonu, 3D haritalama vb. için kullanılabildiğinden kendi ağırlığını çeker. Google'ın Tango Projesi'ni hatırlıyor musunuz? Donanımın bir kısmı Tegra çiplerine dayanıyordu ve derinlik algılamaya ve birkaç başka düzgün numaraya izin veriyordu. Yelpazenin diğer tarafında, Nvidia'nın Tesla ürün serisi, üst düzey GPU hesaplama pazarını kapsar ve Nvidia'nın bu nişte yıllarca hakimiyetini sağlar.

Sonuç olarak? Kağıt üzerinde GPU hesaplama, çok sayıda potansiyele sahip harika bir kavramdır, ancak teknolojinin mevcut durumu arzulanan çok şey bırakmaktadır. HSA, bu sorunların çoğunu ele almak için uzun bir yol kat etmelidir. Dahası, benimsemeyi daha da yavaşlatacak olan tüm sektör oyuncuları tarafından desteklenmemektedir.

Birkaç yıl sürebilir, ancak GPU'ların eninde sonunda genel bilgi işlem alanında, hatta mobil çiplerde haklı yerlerini alacaklarından eminim. Teknoloji neredeyse hazır ve gerisini ekonomi halledecek. Nasıl? İşte basit bir örnek. Intel'in mevcut nesil Atom işlemcileri, 12 ila 16 GPU Yürütme Birimi (AB) içerirken, önceki modellerinde daha eski bir mimariye dayalı olarak yalnızca dört AB bulunur. Entegre GPU'lar daha büyük ve daha güçlü hale geldikçe ve kalıp alanları arttıkça, yonga üreticilerinin bunları genel performansı ve verimliliği artırmak için kullanmaktan başka seçeneği kalmayacak. Bunu yapmamak, marjlar ve hissedarlar için kötü olur.

Endişelenmeyin, bu yeni tür GPU'da ara sıra oynanan oyunun keyfini çıkarmaya devam edebileceksiniz. Bununla birlikte, oyun oynamadığınız zamanlarda bile, GPU arka planda pek çok şey yapacak ve performansı ve verimliliği artırmak için CPU'yu boşaltacaktır.

Özellikle ucuz mobil cihazlarda bunun çok büyük bir anlaşma olacağı konusunda hemfikiriz.

İlgili: Vulkan API'sine Kısa Bir Bakış