Zephyrnet Logosu

İş Yükleri İçin Yonga Mimarilerini Optimize Etmenin Zorluğu

Tarih:

Bir sistem üzerinde çalışan bir iş yükünü sadece donanım veya yazılıma ayrı ayrı bakarak optimize etmek mümkün değildir. Birlikte geliştirilmeleri ve karmaşık bir şekilde iç içe geçmeleri gerekir; bu, uzun bir bağımsız çalışma geçmişine sahip iki dünya arasında köprü kurmayı da gerektiren bir mühendislik başarısıdır.

Bilgi işlemin ilk zamanlarında, donanım ve yazılım tamamen ayrı ekipler tarafından, genellikle farklı odalarda veya farklı binalarda ve çok az doğrudan iletişim veya ortak yönetim olmaksızın tasarlanır ve inşa edilirdi. Bu, herhangi bir şeyi optimize etmeyi zorlaştırdı.

Daha yakın zamanlarda, donanım ve yazılım mühendisliği ekipleri, daha fazla işbirliği yoluyla büyük kazanımlar elde edilebileceğini öğrendi. Duvarlar ilk olarak duvarların devreye girmesiyle yumuşamaya başladı. elektronik sistem düzeyinde tasarım (ESL), EDA şirketlerinin birleşik bir tanımdan otomatik olarak donanım ve yazılım oluşturan akışlar oluşturmaya çalıştığı yüzyılın başında. ESL ile tasarımlar bölümlere ayrıldı ve parçalar en uygun uygulama teknolojileriyle eşleştirildi. Bu, ESL'nin kayda değer bir çekiş elde etmesi için fazla iddialı olduğunu kanıtladı, ancak bugün işlemcileri belirli bir iş yükü için özelleştirme fikri standart bir uygulama haline geliyor.

Daha hızlı ve daha verimli tasarımlar için yarışta, optimizasyon sadece daha iyi donanım veya daha iyi yazılım oluşturmakla ilgili değildir. İş yüklerini, uygulama yeteneklerinin farkında olan yollarla tanımlamakla ilgilidir. Örneğin, %1 daha iyi doğruluğa sahip bir AI öğrenme algoritması tanımlamayla ilişkili sonuçları anlamak önemlidir. Maliyetler faydalardan daha ağır basıyor mu? Veya niceleme kullanılıyorsa, bunun doğruluk, güç, maliyet ve diğer faktörler üzerinde ne gibi etkisi olacak? Uygulamayı donanımla eşleştirmeye yardımcı olan derleyiciler veya diğer araçlar ne kadar verimli?

Benzer şekilde kuantum hesaplamada, donanımın hata oranları ve diğer kısıtlamaları göz önüne alındığında hangi iş yükleri mümkündür? Sistemin olgunlaşması için bir süreç var ama her şey aynı anda ya da aynı oranda olmuyor.

Bugün neredeyiz?
Neyin değiştiğini anlamak için sürecin geçmişte nasıl işlediğine bakmak faydalı olacaktır. Tensilica AI ürünleri için ürün pazarlama direktörü Suhas Mitra, "Olan şu ki, uzun yıllar boyunca işleri belirli bir şekilde yapan tek bir mimariniz oldu" diyor. Ritim. “Zaman içinde daha fazla yazılım geliştirdiniz ve donanım da gelişti. Biri bir işlemci için çalışan bir mimari tasarladı, talimatları getiriyor ve yürütüyor. Bu basit uygulamalar için işe yaradı. Ancak daha yüksek uygulamalara geçmek istediklerinde, daha fazla belleğe, belki de bir miktar önbelleğe ihtiyaçları olduğunu fark ettiler. O zaman hafıza korumasına veya başka bir şeye ihtiyaçları var, düşük güç nedeniyle belirli şeyleri belirli bir şekilde yapmaları gerekiyor - hepsi rekabet tarafından yönlendiriliyor.”

Herhangi bir aksamayla ilişkili risk yüksek olabilir. Tensilica Xtensa Processor IP, Cadence ürün pazarlama müdürü George Wall, “Yıllar önce, GPU mimarileri algoritmik gereksinimlere bakılarak tasarlandı” diyor. "Ancak bir donanım prototipi ortaya çıkana kadar, yazılım çalışanlarının yapacağı pek bir şey yoktu. Donanım ellerine geçene kadar bu donanımdan yararlanamazlardı. Yani donanım geliştirme yazılımdan önce gelir. Bu değişiyor. Sola kay Donanımı beklemek zorunda kalmamaları için sektörü bu yazılım geliştirme sürecini hızlandırmaya zorluyor.”

İşlemci mimarilerinin açılması da bu trende giriyor. yakın zamanda blog, Keith Graham, üniversite programı başkanı kodasip, “geleneksel araştırmalar, sabit ve kapalı işlemci mimarileri nedeniyle yazılım algoritmaları ve harici donanım kaynakları ile sınırlı kaldı. (Bkz. şekil 1.) Ne yazık ki araştırma denkleminin önemli bir bileşeni olan işlemci dışarıda bırakılmıştır. İşlemci mimarisi optimizasyonu, uygulamaya özel işlevselliği işlemciyle sıkı bir şekilde birleştirmek ve döngü sayısını azaltarak işlemci performansını artırmak olmak üzere iki temel kavramı içerir.

Şekil 1: İşlemci mimarisi optimizasyonu artık üniversite araştırmalarına dahil edilmiştir. Kaynak: Codasip

Şekil 1: İşlemci mimarisi optimizasyonu artık üniversite araştırmalarına dahil edilmiştir. Kaynak: Codasip

Ancak bu, bir sistemi optimize etmek için geleneksel olarak kullanılan yol değildir. HLS platform programı direktörü Russell Klein, "Buradaki asıl zorluk, alana özgü mimari geliştiricilerin CPU'lar ve GPU'lar gibi mevcut mimarileri önemli ölçüde yenmeleri için son derece uzmanlaşmış olmaları gerektiğidir" diyor. Siemens EDA. Ancak ticari olarak başarılı olmak için yeterince büyük bir pazara hitap etmek için oldukça esnek olmaları, yani programlanabilir olmaları gerekir. İki hedef taban tabana zıt olduğu için bu zor bir kombinasyon. Çok özel ihtiyaçları olan geliştiriciler, kendi donanım hızlandırıcılarını oluşturmak isteyebilirler, bu da yüksek düzeyde programlanabilir olma veya büyük bir pazarı hedefleme ihtiyacını ortadan kaldırır.”

Önerilen mimarilerin çoğu bir problem arıyor gibi görünüyor. Siemens EDA'nın IC Tasarım Doğrulama bölümünün strateji direktörü Neil Hand, "CPU'dan xPU'ya evrim devam ediyor ve yeni bir şirketin yeni bir bilgi işlem platformu başlatmasını görmeden geçen bir gün neredeyse yok" diyor. “Birçoğu başarılı olamayacak. Özünde, bir iş yükü için yeni mimarilerin oluşturulması tamamen risk/ödül oranı ile ilgilidir. Temel soru, bu risk/ödül denklemini değiştirecek bir şey olup olmadığıdır. Ve eğer öyleyse, genel amaçlı işlemeden iş yüküne özel işlemeye geçişi hızlandırır mı?

Belki de başarısız olan, önerilen mimarilerden ziyade pazarlardır. "Birinin bir çip tasarlayıp sonra 'Bu çipi kullanabileceğim bir problem bulayım' diye düşündüğünü varsaymam," diyor şirket arkadaşı ve sistem mimarı Michael Frank. arter IP'si. “Bu geriye dönük düşünmek. Bir çipiniz olabilir ve daha sonra bu çipin alternatif bir kullanımını ararsınız. Başlangıçta, bu çip belirli bir kullanım durumu düşünülerek tasarlandı."

Tüm bunlar, donanımın minimum gereksinimleri karşılayabileceğini varsayar. Ar-Ge operasyon müdürü Joel Wallman, "Günümüzde kuantum hesaplamanın birincil odak noktası, hataya dayanıklı kuantum hesaplama için gereken tüm işlemleri gerekli doğruluk ve hassasiyetle gerçekleştirebilen daha güvenilir kuantum bilgisayarlar oluşturmaktır" diyor. Keysight Teknolojileri. “İhtiyaç duyulan iki temel ilerleme var. İlk olarak, kuantum sistemlerinin fiziksel uygulamalarının daha sağlam hale getirilmesi gerekiyor. İkinci olarak, kuantum bilgisayarlar için kontrol sistemlerinin, son derece hassas ve hızlı, gerçek zamanlı geri bildirim ile mikro saniyenin altında kontrol dizilerini uygulamak için geliştirilmesi gerekiyor, bu da verimli devre yürütme ve hata teşhisine olanak sağlıyor.”

gelişen mimariler
Doğru mimariyi seçmek için önemli miktarda analiz yapılması gerekir. Arteris' Frank, "Önce bu kullanım durumunun gerekliliklerini düşünün," diyor. “Sıcak noktalar nerede? Bellek ayak izi nedir? Ve belirli bir kullanım durumu için bellek bant genişliği gereksinimleri nelerdir? Büyük şirketlerdeki mimarlar, elektronik tablo odaklı analizler yapardı. Bu, muhtemelen Gem5 veya QEMU gibi bir emülatör kullanarak çok daha gerçekçi modellemeye yol açtı. Uygulama yazılımınızı alır, çalıştırır ve izleri toplarsınız. Bunlar, belirli bir süre içindeki okuma ve yazma sayısı, bellek ayak izi ve ne tür işlemlerin gerçekleştirildiği için analiz edilebilir. Örneğin, çok sayıda vektör tipi işleminiz varsa, bu verileri bir makine inşa etme kararlarınızı yönlendirmek için kullanırsınız. Bu, şeyleri paralelleştirme yarışıdır. Bu, yaptığınız çok seviyeli bir analiz türüdür ve umarız hiçbir şeyi başıboş bırakmazsınız çünkü önemli bir şeyi kaçırırsanız, sisteminiz iş yüküyle başa çıkamayabilir.”

Bir iş yükü pazar tarafından kabul edildikten sonra, gereksinimleri genellikle değişir. Siemens'ten Klein, “Geliştirme topluluğunda gördüğüm şey çok fazla yeni iş yükü değil, mevcut algoritmaların geçmişte pratik olmayan çözümler sunması için daha iyi performans ve verimlilik talepleri” diyor. "Kullanıcılar, artırılmış gerçeklik için gerçek zamanlı 4K görüntü işleme ve bir çift gözlüğe yerleşik yapay zeka istiyor ve bunun bir gramdan daha hafif olmasını, göze batmamasını ve tek bir şarjla bir hafta boyunca çalışmasını istiyorlar."

Başarı çoğalmayı besler. Frank, "Video oynatma buna iyi bir örnek" diyor. "Eski günlerde, sadece videonun kodunu çözmek için bunun için özel çipler yaptılar. Bugün, her küçük cihazın, tüm farklı standartlarda yüksek çözünürlüklü video için bir video kod çözücüsü ve kodlayıcısı vardır. Bir kullanım durumunuz var ve bu kullanım durumunun farklı pazarlara hitap etmesi gerekiyor. Performans gereksinimleri genel bir terimdir, çünkü performans gereksinimleri yalnızca işi belirli bir süre içinde yaptırmayı içermeyebilir, aynı zamanda belirli bir miktarda mevcut enerji ile işi yaptırabilirim. Bu çok boyutlu bir sorun.”

ile benzer bir durum görüyoruz. AI. Cadence'den Mitra, “Veri merkezinde modeller son derece karmaşık hale geliyor” diyor. “Modellerin uçta da basitleştirilmesi gerekiyor. Bu, spektrumun son derece geniş olduğu ve alana özgü hesaplamayı yönlendiren şeyin bu olduğu anlamına gelir. Bir şirket, IoT'yi hedeflemek isteyebilir ve bu, yalnızca o belirli etki alanı için geçerli olacak donanımı belirler."

Her iki yerde de olabilecek çıkarsama için, bunun önemli etkileri vardır. Untether AI ürün direktörü Philip Lewer, "Çıkarım artık sadece bulutta değil, uçta da oluyor" diyor. "Bu, 500 TOP'a ulaşabilen bağımsız üst düzey AI hızlandırıcılardan, onlarca GOP performansında mikrodenetleyiciler için özel AI hızlandırma fikri mülkiyetine kadar uzanan AI iş yükü hızlandırma ihtiyacını kesin olarak ortaya koydu."

Geleceği tahmin etmek
Donanım tasarlayan kişiler önemli zorluklarla karşı karşıyadır. Mitra, "Her şeyin bir zorluğu ve bir tehlikesi vardır" diyor. “Bir tür iş yükü için bir şeyler inşa ediyorsunuz ve sonuç alınmıyor çünkü üç yıl sürdü ve şimdi piyasa farklı bir yönde ilerliyor. Modeller gelişiyor ve sadece ölçeklendirmeyle değil. Günümüzde doğal dil işleme için dönüştürücü mimariler devreye giriyor. Eğer bir inşa ederseniz ASIC, her şeyi sertleştiriyorsun. Güç ve alan oyununu oynuyorsunuz ve bir pazarda neyin başarılı olacağı. İnsanların tercih ettiği belirli pazarlar vardır. FPGA'leri çünkü her şeyi sertleştirmek zorunda değiller. Kumaşta bazı işlevleri koruyabilirler. Bunlar daha esnek. Diğer her şey gibi, verdiğiniz her kararın da bir artısı ve bir eksisi var.”

Bu zorluk endüstride yankılanıyor. Untether's Lewer, “Transformatör tabanlı ağlarda tasarlanmış büyük dil modellerinin kullanımında hemfikir ve artış görüyoruz” diyor. "Bu ağlar başlangıçta bu kullanım durumuna odaklanmıştı, ancak şimdi bunların yerini aldıkları vizyon gibi diğer uygulamalarda giderek daha fazla kullanıldığını görüyoruz. CNN'ler".

Ekonomi her şeyi yönlendirir. Cadence's Wall, "Birisi bir alanın yeterince stabilize olduğunu ve birkaç yıl içinde çalıştırması gerekecek ağları desteklemek için donanım oluşturabileceğini düşünüyorsa, işleri sağlamlaştırma konusunda daha fazla güvene sahip olur" diyor. “Ancak bu iş yükü çözümlerinden herhangi birinde bir programlanabilirlik düzeyine sahip olmak önemlidir, çünkü yalnızca belirli bir ağ sınıfını hedefleyen bir tasarıma sahip olmak ve ardından iki yıl sonra pazarın hareket ettiğini öğrenmek istemezsiniz. Donanımda bu programlanabilirliğe ve esnekliğe sahip olmanız gerekir.”

Algoritmik gelişmelere ek olarak, büyük etkisi olabilecek teknolojik gelişmeler de var. Klein, "Tüm verilerin merkezi işlem birimine taşınmasına ilişkin mevcut paradigma - işlemsel kelime 'merkezi'dir - ve sonra tekrar belleğe geri döndürülür," diyor Klein. “Birçok sistemde veri hareketi genel performansı sınırlar. Verilerin depolandığı yere daha yakın işlenmesi, performans ve güç tüketiminde büyük iyileştirmeler sağlayabilir. için büyük bir meydan okuma görüyorum bellek/yakın bellek programlamada hesaplayın. Bir yazılım geliştiricisi işlemleri nasıl tanımlar ve aktiviteyi nasıl senkronize eder? Bir dereceye kadar bu, yazılım geliştirme topluluğunun şimdiye kadar büyük ölçüde kaçındığı paralel bir programlama sorunudur.”

AI'nın durumu
AI tarafından etkinleştirildi GPU'lar. Frank, "Bu, yazılımın geliştirildiği bir durumdu ve donanım için bir dizi gereksinim tanımladı" diyor. “O zamanlar GPU mevcut en iyi şeydi. GPU, bağımsız öğeleri çok güzel paralel işleme yapıyor ve bu harika. 'Algoritmam böyle görünüyor.' Veya, 'Algoritmamı bu şekilde şekillendirebilirim.' Aslında, bazen mevcut donanım üzerinde daha iyi çalışması için algoritmayı değiştirmeniz gerekir. Bir noktada GPU'nun tamamına ihtiyaç duymadıklarını fark ettiler. Bunun yerine, daha uzmanlaşmış bir şeye ihtiyaçları vardı.”

GPU'nun birçok yönü, AI hızlandırıcılarına dönüşmüştür. Mitra, "GPU kayan nokta kullanıyor" diyor. "Ancak çıkarım yapmak için bu kayan noktalı modellerin yalnızca sabit noktalı versiyonuna ihtiyacınız var. Günümüzde insanlar kayan noktalı modellerin daha da küçük sürümlerini deniyorlar — bfloat16 gibi. Bazı iş yükleri için 8 bit nicemleme bile yeterli olabilir. Daha yüksek kuantizasyona ihtiyacınız olabilir. Tek bir doğru cevap olacağına inanmamız için hiçbir neden yok. Her şey için tek bir niceleme formatı yoktur. Bu, bir silikon şirketi veya bazı akademik şirketler için çok zor hale geliyor, çünkü bir şeyi geleceğe hazırlamak istiyorlar. Yeniden yön verebilmeniz, bir şeyleri yeniden yapabilmeniz ve bir şeyleri gerçekleştirebilmeniz gerekecek.”

İş yükleri daha iyi anlaşıldıkça başka mimari değişiklikler de ortaya çıkıyor. Lewer, "Hesaplama paralelleştirme için çeşitli uzamsal mimari türlerini görmeye devam edeceksiniz" diyor. “Bunlar, karmaşık grafiklerin, çip üzerindeki bir tür ağ aracılığıyla bağlanan binlerce işlem elemanına bölünmesine izin veriyor. Bellek hızları ve daha yüksek bellek derinlikleri, çok sayıda ağırlığa ve etkinleştirmeye hızlı erişim sağlıyor ve buna karşılık bellek ile bilgi işlem arasında daha sıkı bir bağlantı görmeye devam edeceksiniz.”

Çoğu mimarinin bugün yaptığı şey, iş yüklerini değil, işlemleri optimize etmeye çalışmaktır. Frank, "Donanım bir uygulama arar, ancak işin temelinde iş yükü vardır" diyor. “İş yükü matris matris çarpımları olabilir. Bunu kullanabilecek birçok uygulama olduğunu bilerek, matris matrisini iyi çoğaltan bir şey inşa edersiniz. Ancak uygulamayı iş yükü ile eşanlamlı olarak karıştırmamalısınız. Hızlandırmaya çalıştığınız bir algoritmanın bir öğesidir ve bu benim iş yükü diyeceğim şeyi tanımlar.”

Sonuç
Yazılımların günümüzde donanımdan daha hızlı hareket etmesi, donanımın yalnızca bugünün yazılım ihtiyaçlarını karşılamakla kalmayıp, performans gereksinimlerinden ödün vermeden gelecekteki ihtiyaçlara uyum sağlayabilecek ve rekabet edemez hale gelebilecek stratejiler aramasına neden oluyor. Birden fazla işletim ortamını göz önünde bulundurmaları gerektiğinden, yazılıma yönelik talepler de gelişmektedir.

Mitra, "Optimizasyonun aşamaları var" diyor. “Yeni ağ geliştirme aşamaları, yeni mimarilerin aşamaları ve insanların mevcut mimarileri ihtiyaçlarına göre değiştireceği geliştirme aşamaları olacak. İnsanlar ne yapmaya çalıştıklarına bağlı olarak ya eğitime ya da çıkarsamaya ya da her ikisine birden bakıyor olabilirler ve bu, PPA gereksinimlerini karşılayan farklı çözümlere ihtiyaç duyacakları anlamına gelir."

Donanım her zamankinden daha hızlı gelişmeye yönlendiriliyor ve şimdi bunun ekonomisi üzerinde çalışılması gerekiyor. Yazılım doğrudan donanım için bir sürücü haline geldi, ancak aynı zamanda donanımda mümkün olanlardan da etkilenir.

spot_img

En Son İstihbarat

spot_img