Zephyrnet Logosu

Enerjinin Sistem Düzeyinde Optimize Edilmesi

Tarih:

Güç her yerde mevcut olan bir konudur ve sistemi bir bütün olarak ele almadan sistemin enerji tüketimini optimize etmek imkansızdır. Donanım uygulamasının optimizasyonunda çok büyük ilerlemeler kaydedildi, ancak bu artık yeterli değil. Sistemin tamamı optimize edilmelidir.

Bunun, bazıları alana özgü bilişime giden yolu yönlendiren geniş kapsamlı sonuçları var. Sola kaymanın bir rolü var ama daha da önemlisi, tanımlanmış bir görev için toplam enerji tüketiminde rol oynayan tüm tarafların bu hedefe ulaşmak için birlikte çalışması gerektiği anlamına geliyor.

Enerji hızla birinci sınıf bir konu haline geliyor. Ürün yönetimi ve stratejik pazarlamadan sorumlu kıdemli direktör Guillaume Boillet, "Enerji verimliliği tüm bilgi işlem alanlarında kritik bir konu haline geldiğinden, mimarlardan sıklıkla hem donanım hem de yazılım tasarımı için algoritmaların enerji maliyetini dikkate almaları isteniyor" diyor. arterler. “Odak noktası, yalnızca hesaplama verimliliği (hız, verim, gecikme) için optimizasyon yapmaktan, aynı zamanda enerji verimliliği (işlem başına joule) için de optimizasyona doğru kayıyor. Bu, bellek erişimlerinin sayısı, hesaplamanın paralelleştirilebilirliği ve belirli görevler için enerji açısından daha verimli hesaplama sunabilen özel donanım hızlandırıcıların kullanımı gibi faktörlerin dikkate alınmasını gerektirir."

Bu, odağı donanım uygulamasından hem donanımın hem de yazılımın mimari analizine kaydırır. EDA Group ürün yönetimi direktörü William Ruby, "Tasarım akışının sonraki aşamalarında optimizasyon fırsatları azalıyor" diyor. Synopsus. “Otomatik optimizasyon için daha fazla fırsatınız olabilir, ancak daha küçük bir yüzdelik iyileşmeyle sınırlısınız. Potansiyel tasarruf eğrisi göz önüne alındığında (bkz. Şekil 1), mimariden imzaya kadar düzgün bir eğri değildir. Sentezde bir dönüm noktası var. Tasarım bir uygulamaya eşlenmeden önce çok daha fazla serbestlik dereceniz var, ancak bu dönüm noktasından sonra işler büyük ölçüde düşüyor."


Şekil 1: Tasarım aşamalarında güç tasarrufu fırsatları. Kaynak: Özet

En büyük engel, dönüm noktasından önce gücün faaliyete bağlı hale gelmesi ve bu durumun otomatik optimizasyonu çok daha zorlaştırmasıdır. "RTL geliştirme sırasında, israfı ortaya çıkarmak ve mantıksal yeniden yapılandırmayı, saat geçişini, operatör geçişini ve bunu azaltmak için diğer teknikleri gerçekleştirmek için dinamik vektör odaklı kontroller kullanılabilir" diyor Qazi Ahmed, baş ürün müdürü Siemens EDA. "Gücün kullanım durumuna duyarlı olduğunu ve tüm olası senaryoların kapsandığından emin olmak için gerçek yazılım odaklı iş yükleriyle profilinin oluşturulması gerektiğini anlamak da önemlidir. Bu, özellikle güç zarfının IP düzeyinde sentetik vektör odaklı analizin gösterebileceğinden tamamen farklı olabileceği tam SoC bağlamında geçerlidir."

Synopsys sanal prototip oluşturma baş mühendisi Tim Kogel, "Daha fazla ön planlama, profil oluşturma ve optimizasyon gerekli olacak" diyor.

Kogel, ele alınması gereken çeşitli düzeylere dikkat çekti:

  • Makro mimari düzeyinde, büyük bilet ödünleşim analizi ve özel işleme öğelerinin seçimi için;
  • Mikro mimari düzeyinde, hedef uygulamaya yönelik komut setini ve yürütme birimlerini optimize etmek;
  • Algoritmik düzeyde, hesaplama verimliliği ve bellek erişimleri için algoritmaların seçilmesi ve optimize edilmesi ve
  • Yazılım düzeyinde, geliştiricilere yazılımlarını güç ve enerji açısından nasıl optimize edecekleri konusunda geri bildirim sağlamak.

"Bu, donanım ve yazılım uygulamasının optimize edilebileceği verileri oluşturmak için sanal prototip oluşturma ve yazılım geliştirme için güç ve enerjiye duyarlı araçlar gerektirecektir" dedi.

Yazılım haritalama
Yazılımda ne olması gerektiğine karar vermek erken bir görevdir. “CPU'nun yükünü boşaltmak için bir DSP çekirdeğine sahip olmak ister miyim?” Synopsys'in Ruby'sine sorar. “Bu, güç tüketimimi nasıl etkiler? Bir donanım hızlandırıcı uygulamak mı istiyorum, yoksa tüm bu işlevleri yazılımda mı gerçekleştirmek istiyorum? CPU üzerinde çalışan yazılımın enerji maliyeti sıfır değil.”

Sistemler yazılımları tarafından giderek daha fazla tanımlandıkça, enerji konusunun da başlaması gereken yer burasıdır. Kıdemli CPU Mimarı Vincent Risson, "Yazılım, enerji tasarrufu ve performansın artırılması açısından önemli bir unsurdur" diyor. Kol. "Bilgisayar yoğunluklu uygulamalar genellikle uygulama optimizasyonundan önemli ölçüde yararlanıyor. Bu, hem yüksek düzeyde ayarlanmış kitaplıklar açısından statik olabilir, hem de bilgi işlemin en uygun işleme motoruna hedeflenmesine olanak tanıyan dinamik çerçeveler olabilir. Örneğin, mobil cihazlar, ortak bir ISA ve konfigürasyona uyum sağlarken uygulama işlemcilerine farklı bilgi işlem performansı sağlayan bir CPU sistem mimarisi üzerinde standartlaşmıştır. Bu, uygulamaların verimlilik açısından en uygun işlemcilere dinamik olarak taşınmasına olanak tanır. Hem yazılımın hem de heterojen donanımın birleşimiyle sağlanan, iç gözlem ve çok yönlülük için sağlanan mekanizmalar, gelecekte verimliliğin artması için fırsatlar sağlayacaktır."

Genellikle yazılımın çalıştırabileceği birden fazla işlemci sınıfı vardır. Intel'de müşteri SoC mimarileri tasarım mühendisliği grubu CTO'su Jeff Wilcox, "Gördüğümüz iş yükü türlerine göre belirli bir uygulamanın nerede çalışması gerektiğini seçebiliyoruz" diyor. “Daha küçük bir çekirdeğin ihtiyaçlarını aşarsa daha büyük çekirdekler çalıştırılabilir. Güç açısından en verimli şekilde işlerin nerede çalıştırılması gerektiğini bulmaya yönelik telemetri ve iş yükü karakterizasyonu vardır. Şu anda gördüğümüz iş yüklerinin çoğu farklı. Aynı iş yükü üzerinde çalışan simetrik aracılar olsa bile aralarında bağımlılıklar vardır. Giderek artan sayıda iş yükü, GPU'ların, NPU'ların, IPU'ların mevcut olduğu ve bu tür iş yüklerinin CPU ile işbirliği yaptığı asimetrik aracılar gerektirir. Bunu optimize etmek çok daha zor bir şey. Performans ve güç zorluklarını anlayabilecek kancalara sahip olduğumuz bir noktaya geldik, ancak hâlâ bunları nasıl tam olarak sindirip optimize edeceğimizi gerçekten anlamak için araçlar geliştiriyoruz."

Buradaki zorluk, iş yükünün mimarisinin donanım mimarisine bağlı olabilmesidir. Untether AI donanımdan sorumlu başkan yardımcısı Renxin Xia, "Yapay zeka alanında pek çok gelişme var ve önemli olan yalnızca modelin boyutu değil" diyor. "Modellerin nasıl inşa edildiği ve enerji verimli bir şekilde inşa edilip edilmediği de aynı derecede önemlidir. Buna cevap vermek daha zordur çünkü mimariye bağlıdır. GPU üzerinde çalışan bir algoritmanın enerji maliyeti, bilgi işlem mimarisinde bellek üzerinde çalışan bir algoritmanın enerji maliyetinden çok farklı olabilir.”

Yazılıma odaklanın
Genel fikir birliği, bunların hiçbirinin daha fazla donanım-yazılım işbirliği olmadan mümkün olmadığı yönünde. Intel'in veri merkezi biriminde kıdemli uzman olan Sailesh Kottapalli, "Bu adım işlevi iyileştirmelerini elde etmek için donanım-yazılım ortak geliştirmesi gerekiyor" diyor. “Donanımda bunu şeffaf bir şekilde yapmaya çalışmak sınırlarına ulaşmak anlamına geliyor. Yapay zekada neler olduğuna bakın. Eğer donanım tek unsur olsaydı, gördüğümüz büyük ilerlemeyi göremezdik. Bunların çoğu algoritmik iyileştirmelerdir. Yazılım algoritmaları ile yol uzunluğunu azaltırsanız, daha az sayıda talimatla ve daha az yazılım çalışmasıyla aynı sonucu elde edebilirsiniz. Bazen bu konuda netlik elde ettiğinizde, bu algoritmalar için yeni bir optimal komut seti, yeni bir mikro mimari olduğunu anlayabiliriz ve ardından bunu donanımda daha da optimize edebilirsiniz."

Yazılım geliştirme akışlarında büyük bir değişiklik gerektiriyor. Synopsys'ten Kogel, "Geçmişte mimariler ve yazılım akışları üretkenlik için optimize edilmişti; bu, en hızlı ve en ucuz yazılım araçlarını kullanarak yüksek seviyeli dillerle programlanan genel amaçlı işlemciler anlamına geliyordu" diyor. "Genel amaç, mümkün olduğu kadar fazla esneklik ve üretkenlik sağlamak ve yalnızca kesinlikle gerekli olduğu kadarını optimize etmekti. Bunun yalnızca gerektiği kadar esneklik sağlayacak şekilde değiştirilmesi ve aksi takdirde özel uygulamaların kullanılması gerekiyor."

Birçok yazılım işlevi için bellek erişimi en büyük güç tüketicisidir. Synopsys'ten Ruby, "Bir yazılım işlevi farklı şekillerde uygulanabilir ve bu da farklı güç ve enerji profillerine sahip farklı talimat akışlarıyla sonuçlanır" diyor. “Bellek erişim talimatlarına ağırlık vermeniz veya daha ağır maliyetler atamanız gerekiyor. Bir şeyleri nasıl modellediğinize dikkat etmeniz gerekir. Sadece CPU olsa bile enerji maliyetlerini sistem bağlamında modellemeniz gerekiyor."

Gelecekte sonuçların doğruluğu da optimizasyona yardımcı olabilecek bir faktör olabilir. Arteris'ten Boillet, "Yazılımın mevcut donanım kaynaklarını daha iyi kullanacak şekilde optimize edilmesiyle önemli miktarda güç tasarrufu elde edilebilir" diyor. "Bu, derleyici optimizasyonlarını, hesaplama karmaşıklığını azaltmak için kodun yeniden düzenlenmesini ve enerji açısından verimli olacak şekilde özel olarak tasarlanmış algoritmaları içeriyor. İkincisi, multimedya işleme, makine öğrenimi ve sensör veri analizi gibi belirli düzeyde belirsizliği tolere edebilen uygulamalar için yaklaşık bilgi işlemle elde edilebilir."

Analiz
Her şey analizle başlar. Ruby, "Sistemin sanal bir modelini oluşturabiliriz" diyor. "Ardından, bu bağlamda tasarımın çalışma modlarının bir dizisi olan kullanım durumlarını tanımlayabiliriz. Bu henüz bir yazılım değil. Hem performans hem de güç modellerinden oluşan bir model koleksiyonu olarak tanımlanan sisteminiz var. Ve size bu modellere ve tanımladığınız kullanım senaryosuna dayalı bir güç profili verecektir. Bir sonraki alternatif benzer türde bir sanal sistem açıklamasıdır. Artık buna karşı gerçek bir yazılım iş yükünü çalıştırıyorsunuz. Daha da derine inerseniz, daha fazla görünürlük, daha ince taneli detay istiyorsanız, tasarımın RTL açıklamasını alabilirsiniz, belki henüz nihai değil, belki henüz erken ama çoğunlukla kıpırdadığı sürece takabilirsiniz. bir emülatör kullanın ve gerçek işi çalıştırın. Bunu yaptığınızda emülatör bir etkinlik veritabanı oluşturacaktır. Büyük miktarda veriyi, yüz milyonlarca saat döngüsü iş yükü verisini alabilen ve bir güç profili oluşturabilen emülasyon odaklı güç analizi yetenekleri mevcuttur. Yapılabilecek çok çeşitli şeyler var.”

Bazı durumlarda bu yeterince uzun bir zaman dilimi olmayabilir. Intel'den Kottapalli, "Termal analizlerimizin çoğu, gerekli iz uzunlukları ve analiz için gereken süre nedeniyle silikon öncesi simülasyona değil, silikon verilerine dayanan kapalı döngü analizine dayanıyor" diyor. "Gerçekçi bir termal profil oluşturmak için bu kadar uzun süre simülasyon yapmamızın hiçbir yolu yok. Farklı türde iş yükleri ve izlemeler kullanarak silikondan profil verilerini kullanıyoruz ve ardından hangi çözümleri oluşturmamız gerektiğine dair analiz yapıyoruz."

Süreler kısaldıkça daha kolay oluyor. Ruby, "Temel mimari kararların bir tür güç görüşü akılda tutularak değerlendirilmesi gerekiyor" diyor. "Tüm işlem çekirdekleri ve bellek alt sistemi de dahil olmak üzere sisteminizin tüm parçalarının daha yüksek düzeyde, daha soyut bir modeline ihtiyacınız var çünkü bunun nasıl organize edildiği gerçekten çok önemli. Gerçekten ne kadar belleğe ihtiyaç var? Bunlar temel mimari kararlardır. Bu bileşenlerle ilişkili bazı güç verilerine sahip olmanız gerekir. Bu belirli iş yükü veya söz konusu iş yükü altında CPU ne kadar güç tüketiyor? Peki ya DSP çekirdeği, donanım, bellek, çip üzerindeki ağ; her bir işlemi gerçekleştirirken bunların her biri ne kadar tüketiyor? Temel mimari kararların alınması için bunlara ihtiyaç var.”

Güçle ilgili birçok yeni araca ihtiyaç vardır. Intel'den Wilcox, "Yüksek hızlı, yüksek güç yoğunluğundaki geçici akımlarla başa çıkmak için EDA araçları mevcut olsa da, başka birçok zorluk da var" diyor. "Diğer zorluklardan bazıları daha uzun zaman sabiti dinamiklerine veya SoC genelinde işlerin nasıl yönetileceğine bakmaktır. EDA alanında buna yardımcı olan pek bir şey görmedim. Bu yetenekleri geliştirmek için daha fazla yerel araç kullanıyoruz."

Bu mimari değiş tokuşların donanım tarafı için araçlar geliştirilmiş olsa da, günümüzde yazılım tarafında yardımcı olacak çok az araç mevcuttur. Ruby, "Yazılım mühendislerimizin mümkün olan en kısa sürede doğru kodu üretmesine ihtiyacımız var" diyor. "Gerçekten ihtiyaç duyulduğuna inandığım şey, yazılım geliştirici için bir tür yardımcı teknolojidir. Donanım için RTL güç analizi araçlarımız olduğu gibi, yazılım geliştirme sistemleri de bu kodun ne kadar güç ve enerji tükettiğini onlara söyleyecek bir tür güç profili oluşturucuya ihtiyaç duyar. Artık yapay zeka çağında yaşadığımıza göre, yapay zeka teknolojisinin kodu analiz etmesi harika olurdu. Güç tüketimine ilişkin bir tahmin elde edersiniz ve bazı yapay zeka teknolojileri, kodunuzu bu şekilde yeniden yapılandırırsanız çok fazla güç tasarrufu yapabileceğinizi söyleyebilir."

Sonuç
Donanım dünyası güç ve enerjiyle ilgili duvarlara çarpıyor. Bu toplulukta termal sınırlar ve endişeler artıyor. Bunlar dikkate alınmadan donanım işlevselliği büyüyemez. Ancak bunlar henüz sistem düzeyindeki kaygılar düzeyine ulaşmadı. Enerji tüketimine katkıda bulunan tüm taraflar aynı odada oturup sistemi enerji verimli olacak şekilde tasarlamadıkça soruna gerçek çözümler göremeyeceğiz.

Bunun bir de ikinci tarafı var. Bu insanların kullandığı araçları üreten herkesin aynı odaya girmesi ve herkesin başarılı olmasını sağlayacak akışlar geliştirmesi gerekiyor. EDA ile sistem dünyası arasında bazı termal zorlukların çözümüne yönelik bir miktar ilerleme kaydedilmiş olsa da, mimari düzeyde daha az ilerleme var ve donanım ve yazılım dünyaları arasında neredeyse hiç ilerleme yok. İşlevselliğe odaklanan sanal prototipler yeterli değildir. Bunların sistem gücüne ve enerjiye kadar genişletilmesi gerekiyor ve bu, derleyici geliştiricilerin katılımı olmadan yapılamaz. Etki alanına özgü hesaplama alanında bir fırsat var çünkü bu insanlar bu sorunların bir sonucu olarak donanımda yeni bir yöne gidiyorlar ve bu onlar için bitişik alanlarda ilerleme kaydedecek kadar önemli olabilir. Ancak bunların hepsi gelecekte uzun bir süre kalacak gibi görünüyor.

İlgili Okuma
Cipslerde Gücün Artan Fiyatı
Daha fazla veri daha hızlı işlenmesini gerektirir ve bu da bir sürü soruna yol açar; bunların hepsi açık değildir, hatta çözülebilir bile değildir.

spot_img

En Son İstihbarat

spot_img