Tavan hattı modeli - Roofline model

Temel biçiminde bir Çatı Hattı modeli örneği. Görüntünün gösterdiği gibi, eğri platforma özgü iki performans tavanından oluşur: işlemcinin en yüksek performansı ve bellek bant genişliğinden türetilen bir tavan. Her ikisi de eksenler içeride logaritmik ölçek

Tavan hattı modeli sezgisel bir görseldir performans modeli sağlamak için kullanılan verim verilen tahminler hesaplama çekirdeği veya üzerinde çalışan uygulama çok çekirdekli, çok çekirdekli veya gaz pedalı işlemci mimarileri, doğal donanım sınırlamalarını ve potansiyel yarar ve önceliğini göstererek optimizasyonlar. Birleştirerek mahal, Bant genişliği ve farklı paralelleştirme paradigmaları tek bir performans rakamına dönüştüren model, hem uygulama hem de doğal performans sınırlamaları hakkında içgörüler sağladığı için basit tepe yüzdesi tahminleri kullanmak yerine elde edilen performansın kalitesini değerlendirmek için etkili bir alternatif olabilir.

En temel Çatı Hattı modeli çizilerek görselleştirilebilir kayan nokta performansı makinenin en yüksek performansının bir fonksiyonu olarak[belirsiz ][açıklama gerekli ], makinenin en yüksek bant genişliği ve aritmetik yoğunluk. Ortaya çıkan eğri, çekirdek veya uygulama performansının altında bulunduğu etkin bir performans sınırlamasıdır ve iki platforma özgü performans tavanı içerir[açıklama gerekli ]: bellek bant genişliğinden türetilen ve işlemcinin en yüksek performansından türetilen bir tavan (sağdaki şekle bakın).

İlgili terimler ve performans ölçütleri

İş

belirli bir tarafından gerçekleştirilen işlemlerin sayısını gösterir çekirdek veya uygulama.[1] Bu metrik, sayısından itibaren herhangi bir işlem türünü ifade edebilir. dizi sayısı güncellendi tamsayı operasyon sayısı kayan nokta işlemler (FLOP'lar),[2] ve birinin veya diğerinin seçimi kolaylık ile sağlanır. Ancak vakaların çoğunda, olarak ifade edilir FLOP'lar.[1][3][4][5][6]

Unutmayın ki belirli bir çekirdeğin veya uygulamanın bir özelliğidir ve bu nedenle kısmen platform özelliklerine bağlıdır.

Bellek trafiği

hafıza trafiği sayısını gösterir bayt çekirdek veya uygulamanın yürütülmesi sırasında meydana gelen bellek aktarımlarının oranı.[1] Kıyasla , büyük ölçüde seçilen platformun özelliklerine bağlıdır, örneğin önbellek hiyerarşi.[1]

Aritmetik yoğunluk

aritmetik yoğunluk olarak da anılır operasyonel yoğunluk,[3][7] işin oranı hafıza trafiğine :[1]

ve bellek trafiğinin baytı başına işlem sayısını belirtir. Ne zaman iş olarak ifade edilir FLOP'larortaya çıkan aritmetik yoğunluk kayan nokta işlemlerinin toplam veri hareketine oranı olacaktır (FLOP'lar / bayt).

Naif Çatı Hattı

Naif bir Çatı Çizgisi arsa örneği burada iki çekirdekler rapor edilmektedir. İlk (dikey kesik kırmızı çizgi) bir aritmetik yoğunluk bu altında en yüksek bant genişliği tavan (çapraz düz siyah çizgi) ve sonra belleğe bağlı. Bunun yerine, ikinci (en sağdaki dikey kesikli kırmızı çizgiye karşılık gelir) bir aritmetik yoğunluk bu altında en yüksek performans tavan (yatay düz siyah çizgi) ve dolayısıyla hesaplamaya bağlı.

naif Çatı Hattı[3] basit sınır ve darboğaz analizi uygulanarak elde edilir.[8] Roofline modelinin bu formülasyonunda sadece iki parametre vardır, zirve verim ve zirve Bant genişliği belirli mimari ve bir değişken, aritmetik yoğunluk. En yüksek performans, genel olarak şu şekilde ifade edilir: GFLOPS, genellikle mimari kılavuzlardan türetilebilirken, en yüksek bant genişliği DRAM özel olması gereken bant genişliği, bunun yerine kıyaslama.[1][3] Ortaya çıkan arsa, genel olarak her ikisi ile eksenler içinde logaritmik ölçek, daha sonra aşağıdaki formülle türetilir:[1]

nerede ... ulaşılabilir performans, ... en yüksek performans, ... en yüksek bant genişliği ve ... aritmetik yoğunluk. Performansın en yüksek performans düzeyinde doyduğu nokta diyagonal ve yatay çatının birleştiği yer, şu şekilde tanımlanır: sırt noktası.[4] Sırt noktası, en yüksek performansı elde etmek için gereken minimum aritmetik yoğunluğu sağlayarak ve programcının en yüksek performansı elde etmek için ihtiyaç duyduğu çaba miktarını bir bakışta önererek makinenin genel performansı hakkında fikir verir.[4]

Verilen çekirdek veya uygulama daha sonra aritmetik yoğunluğu ile verilen bir nokta ile karakterize edilir (x ekseninde). Ulaşılabilir performans daha sonra Çatı çizgisi eğrisine çarpan dikey bir çizgi çizilerek hesaplanır. Bu nedenle. çekirdek veya uygulamanın olduğu söyleniyor belleğe bağlı Eğer . Tersine, eğer , hesaplama olduğu söyleniyor hesaplamaya bağlı.[1]

Modele tavan ekleme

saf Çatı Hattı sadece bir üst sınır (teorik maksimum) verim. Ulaşılabilir performans hakkında hala yararlı bilgiler verebilmesine rağmen, gerçekte onu neyin sınırladığına dair tam bir resim sunmamaktadır. Örneğin, dikkate alınan çekirdek veya uygulama Tavan Hattının çok altında performans gösteriyorsa, basit tepe noktası dışında diğer performans tavanlarını yakalamak faydalı olabilir. Bant genişliği ve performans, programcıya daha iyi rehberlik etmek için optimizasyon uygulamak veya hatta uygunluğunu değerlendirmek için mimari analiz edilen çekirdek veya uygulamaya göre kullanılır.[3] Eklenen tavanlar daha sonra elde edilebilir performansa gerçek Çatı Hattının altında bir sınır getirir ve çekirdeğin veya uygulamanın, ilgili optimizasyonu gerçekleştirmeden bu tavanlardan herhangi birini kıramayacağını belirtir.[3][4]

Çatı Hattı planı üç farklı açıdan genişletilebilir: iletişim, ekleyerek bant genişliği tavanları; hesaplama sözde ekleyerek çekirdek içi tavanlar; ve mahal, ekleyerek yerel duvarlar.

Bant genişliği tavanları

bant genişliği tavanları idealleştirilmiş en yüksek bant genişliği köşegeninin altına yerleştirilmiş bant genişliği diyagonalleridir. Varlıkları, bellekle ilgili bir tür mimari optimizasyonun eksikliğinden kaynaklanmaktadır. önbellek tutarlılığı veya kötü maruz kalma gibi yazılım optimizasyonu eşzamanlılık (bu da bant genişliği kullanımını sınırlar).[3][4]

Çekirdek içi tavanlar

çekirdek içi tavanlar bazı biçimlerin bulunmaması nedeniyle mevcut olabilecek gerçek çatı çizgisinin altındaki çatı çizgisi benzeri eğridir. paralellik. Bu tavanlar, yüksek performansın ulaşabileceğini etkili bir şekilde sınırlar. Temelde yatan paralellik eksikliği ifade edilene ve sömürülene kadar performans çekirdek içi tavanı aşamaz. Tavanlar, karşılaştırmalı değerlendirmeler dışında mimari optimizasyon kılavuzlarından da elde edilebilir.[3][4]

Yerel duvarlar

Aritmetik yoğunluğun yalnızca çekirdeğin bir işlevi olduğuna dair ideal varsayım kaldırılırsa ve önbellek topolojisi - ve dolayısıyla önbellekte eksik - hesaba katıldığında, aritmetik yoğunluk açıkça çekirdek ve mimari kombinasyonuna bağlı hale gelir. Bu, ortaya çıkan aritmetik yoğunluk ile aritmetik yoğunluk arasındaki dengeye bağlı olarak performansta düşüşe neden olabilir. sırt noktası. "Uygun" tavanlardan farklı olarak, Çatı Hattı grafiğinde ortaya çıkan çizgiler, aritmetik yoğunluğun optimizasyon olmadan geçemeyeceği dikey bariyerlerdir. Bu nedenle, şu şekilde anılırlar: yerel duvarlar veya aritmetik yoğunluk duvarlar.[3][4]

Modelin uzatılması

Tanıtımından bu yana,[3][4] model, daha geniş bir ölçüm kümesini ve donanımla ilgili darboğazları hesaba katmak için daha da genişletildi. Literatürde halihazırda mevcut olan uzantıların etkisini hesaba katan NUMA Örgütlenmesi hafıza,[6] nın-nin sıra dışı yürütme,[9] nın-nin hafıza gecikmeler,[9][10] ve daha ince taneli modellemek için önbellek hiyerarşi[5][9] performansı neyin sınırladığını daha iyi anlamak ve optimizasyon süreç.

Ayrıca, model belirli özelliklere daha iyi uyacak şekilde genişletilmiştir. mimariler ve gibi ilgili özellikler FPGA'lar.[11]

Ayrıca bakınız

Referanslar

  1. ^ a b c d e f g h Ofenbeck, G .; Steinmann, R .; Caparros, V .; Spampinato, D. G .; Püschel, M. (2014-03-01). Çatı hattı modelini uygulama. 2014 IEEE Uluslararası Sistem ve Yazılım Performans Analizi Sempozyumu (ISPASS). s. 76–85. doi:10.1109 / ISPASS.2014.6844463. ISBN  978-1-4799-3606-9.
  2. ^ David A. Patrick, John L. Hennessy. Bilgisayar Organizasyonu ve Tasarımı. s. 543.
  3. ^ a b c d e f g h ben j Williams, Samuel W. (2008). Çok Çekirdekli Bilgisayarlarda Otomatik Ayarlama Performansı (Doktora). Berkeley'deki California Üniversitesi.
  4. ^ a b c d e f g h Williams, Samuel; Waterman, Andrew; Patterson, David (2009-04-01). "Tavan Hattı: Çok Çekirdekli Mimariler için Anlayışlı Görsel Performans Modeli". Commun. ACM. 52 (4): 65–76. doi:10.1145/1498765.1498785. ISSN  0001-0782.
  5. ^ a b İliç, A .; Pratas, F .; Sousa, L. (2014-01-01). "Önbelleğe duyarlı Tavan Hattı modeli: Çatı katını yükseltme". IEEE Bilgisayar Mimarisi Mektupları. 13 (1): 21–24. doi:10.1109 / L-CA.2013.6. ISSN  1556-6056.
  6. ^ a b Lorenzo, Oscar G .; Pena, Tomás F .; Cabaleiro, José C .; Pichel, Juan C .; Rivera, Francisco F. (2014-03-31). "NUMA sistemlerindeki verileri ve iş parçacığı yakınlıklarını anlamak için genişletilmiş bir Çatı Hattı Modeli kullanma". Çok Çekirdekli ve GPU Programlama Yıllıkları. 1 (1): 56–67. ISSN  2341-3158.
  7. ^ "Tavan Hattı Performans Modeli". Lawrence Berkeley Ulusal Laboratuvarı. Alındı 19 Haziran 2016.
  8. ^ Kourtis, Kornilios; Goumas, Georgios; Koziris, Nectarios (2008-01-01). Dizin ve Değer Sıkıştırmayı Kullanarak Seyrek Matris-vektör Çarpımını Optimize Etme. 5. Computing Frontiers Konferansı Bildirileri. CF '08. New York, NY, ABD: ACM. s. 87–96. CiteSeerX  10.1.1.140.9391. doi:10.1145/1366230.1366244. ISBN  9781605580777.
  9. ^ a b c Cabezas, V. C .; Püschel, M. (2014-10-01). Çatı hattı modelini genişletme: Mikro mimari kısıtlamalarla darboğaz analizi. 2014 IEEE Uluslararası İş Yükü Karakterizasyonu Sempozyumu (IISWC). s. 222–231. doi:10.1109 / IISWC.2014.6983061. ISBN  978-1-4799-6454-3.
  10. ^ Lorenzo, O. G .; Pena, T. F .; Cabaleiro, J. C .; Pichel, J. C .; Rivera, F.F. (2014-03-26). "3DyRM: bellek gecikme bilgilerini içeren dinamik bir çatı hattı modeli". Süper Hesaplama Dergisi. 70 (2): 696–708. doi:10.1007 / s11227-014-1163-4. ISSN  0920-8542.
  11. ^ da Silva, Bruno; Braeken, An; D'Hollander, Erik H .; Touhafi, Abdellah (2013-01-01). "FPGA'lar için Performans Modellemesi: Üst Düzey Sentez Araçları ile Çatı Hattı Modelini Genişletme". International Journal of Reconfigurable Computing. 2013: 1–10. doi:10.1155/2013/428078. ISSN  1687-7195.

Dış bağlantılar

Kullanılabilir Araçlar