Görüş Neden yapay zeka çipleri çağı, TPU'dan başlayarak düzinelerce kez performans yolculuğuna çıkmalı

AI Technology Review Press: ACM Communications (ACM Communications) çevrimiçi dergisinin yakın tarihli bir sayısında, Google'dan yazar tarafından bir makale yayınlayarak, son yıllarda yarı iletken gelişiminin geçmişini ve yapay zeka araştırmacılarının ve uygulamalarının artık kabul ettiği sorunu yeniden incelememizi sağladı: özel işlemciler Neden güzel ve neden ısınıyor? Bu makalenin yazarlarından birinin, Google TPU ekibinin bir üyesi, UC Berkeley'de emekli bir profesör ve 2017 Turing Ödülü sahibi David Patterson olduğunu belirtmekte fayda var. AI Technology Review'un tam metni aşağıdaki gibi derlenmiştir.

TPU ile dolu Google Cloud sunucu rafı

Moore Yasasının sonu, belirli alanlara hizmet eden mimarileri bilgi işlemin geleceği haline getirecek. Çığır açan bir örnek, Google tarafından 2015 yılında başlatılan ve şu anda bir milyardan fazla insana hizmet veren tensör işleme birimidir (TPU). TPU, derin sinir ağlarının (DNN) hesaplama hızını 15-30 kat artırır ve enerji verimliliği, benzer teknolojiler altındaki çağdaş CPU ve GPU'lardan 30-80 kat daha yüksektir.

Çekirdek görünüm

  • TPU, uygulamaya özel bir entegre devre olsa da çalıştırdığı programlar, Google veri merkezindeki görüntü tanıma, çeviri, arama ve oyunlar dahil olmak üzere birçok önemli uygulamayı çalıştıran TensorFlow çerçevesi altındaki sinir ağından gelir.

  • TPU bilişim kaynaklarını özellikle sinir ağları için yeniden dağıtarak gerçek bir veri merkezi yükleme ortamında genel amaçlı bilgisayarlardan 30-80 kat daha verimlidir ve dünya çapında 1 milyar insana günlük hizmetler sağladı.

  • Sinir ağlarının muhakeme aşaması genellikle katı yanıt süresi gereksinimlerine sahiptir, bu da genel amaçlı bilgisayarlar tarafından kullanılan teknolojinin etkinliğini azaltır; genel amaçlı bilgisayarlar genellikle daha hızlı çalışır, ancak bazı durumlarda daha yavaştırlar.

Tüm üstel büyümenin bir sonu olacak

1965'te Intel'in kurucularından Gordon Moore, bir çipteki transistör sayısının her iki yılda bir ikiye katlanacağını tahmin etti. Ocak 2017'deki ACM haber bülteninin kapağında "Bitireceğim endişesi sadece temelsiz bir endişedir" diye seslense de, Moore Yasası gerçekten öldü. 2014'te piyasaya sürülen DRAM yongası 8 milyar transistör içeriyor. İnsanların tahminlerine göre 2019'da bile 16 milyar transistörlü DRAM yongaları seri üretilmeyecek. Ancak Moore Yasası'nın öngörüsüne göre dört yıl içinde Transistör sayısı dört katına çıkarılmalıdır. 2010 Intel Xeon E5 işlemcide 2,3 milyar transistör varken, 2016 Xeon E5 yalnızca 7,2 milyar transistöre sahipti veya Moore Yasası tarafından öngörülen değerden 2,5 kat daha düşük - tabii ki, Yarı iletken endüstrisi hala gelişiyor olsa da, hızı çok yavaştı .

Dennard Scaling, az bilinen ancak aynı derecede önemli bir gözlemdir. Robert Dennard, 1974'te transistörlerin küçülmeye devam ettiğine, ancak çipin güç yoğunluğunun değişmediğine inanıyordu. Transistör boyutu doğrusal olarak iki kat azaltılırsa, çipin aynı alanındaki transistörlerin sayısı dört kat olacaktır. Eşzamanlı, Akım ve voltaj yarı yarıya azalırsa kullandığı güç 4 kat düşerek aynı frekansta aynı gücü sağlar. . Dennard Scaling, keşfedildikten 30 yıl sonra sona erdi. Nedeni, transistörün boyutunun artık küçülmemesi değil, Güvenilirliği korurken akım ve gerilim düşmeye devam edemez .

Bilgi işlem mimarları her zaman Moore Yasasına ve Dennard Ölçeklendirmeye bağlı kalmış ve karmaşık işlemci tasarımı ve bellek hiyerarşisi yoluyla kaynakları performansa dönüştürmüştür. Bu tasarımlar, farklı işlem talimatları arasındaki paralellikten yararlanmıştır, ancak mimarlar bunu yapmamıştır. Programlama bilgisi yok. = (´ *))) Ne yazık ki, sonuçta mimarlar öğretim düzeyinde paralellikten yararlanmak için yeni bir yol bulamadılar. Dennard Scaling 2004'te sona erdi ve talihsizlik, talimat düzeyinde paralelliği iyileştirmeye devam etme yönteminin de olmamasıdır.Bu, endüstriyi tek çekirdekli yüksek enerjili işlemcilerden çok çekirdekli yüksek verimli işlemcilere geçmeye zorlar.

Bugün hala 1967'de Gene Amdahl (ünlü bir IBM mühendisi ve Amdahl yasasının yazarı) tarafından önerilen ve işlemci sayısını artırmanın performans iyileştirmelerinin azalmasına yol açacağına inanan yasaya uyuyoruz. Amdahl yasası, paralel hesaplamanın teorik ivmesinin görevler dizisi ile sınırlı olduğunu söylüyor; Görevin 1 / 8'i seri ise, maksimum hızlanma orijinal performanstan yalnızca 8 kat daha yüksektir -Görevin geri kalanı kolayca paralelleştirilse ve mimar 100 işlemci ekler.

Aşağıdaki şekil, yukarıdaki üç yasanın son kırk yılda işlemci performansı üzerindeki etkisini göstermektedir. Mevcut hızlarda, standart işlemcilerin performansı 2038'den önce ikiye katlanmayacak.

Şekil 1. Hennessy ve Patterson'un teorisine göre, son 40 yılın her birinde 32 bit ve 64 bit işlemci çekirdeklerinin en yüksek SPECCPUint performansını çiziyoruz; verim odaklı SPECCPUint_rate, plato birkaç gecikme olsa bile benzer bir durumu yansıtıyor yıl

Transistörlerin iyileştirme için çok az alanı var gibi görünüyor (bu Moore Yasasının sonunu yansıtıyor) ve milimetrekare yonga alanı başına güç tüketimi artıyor (sonuçta Dennard Ölçeklendirme de bitti), ancak insanların yonga için güç bütçesi artmadı (çünkü Elektronik mobilite, mekanik ve termal sınırlamalar), çip tasarımcıları halihazırda çok çekirdekli yetenekleri tam olarak kullanıyorlar (ancak bu aynı zamanda Amdahl yasasıyla da sınırlıdır) ve mimarlar artık genel olarak şuna inanıyor: Performans, fiyat ve enerji dengesini önemli ölçüde iyileştirmenin tek yolu, alana özgü mimarilerdir - bunlar yalnızca birkaç özel görev için uygundur, ancak çok verimlidirler .

Buluttaki büyük veri kümeleri ile çok sayıda bilgisayar arasındaki işbirliği, makine öğreniminin son yıllarda özellikle derin sinir ağlarında (DNN) büyük ilerleme kaydetmesini sağladı. Diğer bazı alanların aksine, DNN geniş bir uygulama alanına sahiptir. DNN'nin çığır açan ilerlemesi, eski yönteme kıyasla konuşma tanımanın kelime hata oranını% 30 azaltmayı içeriyor; bu, son 20 yılda yapılan en büyük tek gelişme; 2011'den bu yana, görüntü tanımanın hata oranı% 26'dan 3.5'e düşürüldü. %; Go'da insan dünya şampiyonunu yendi; gelişmiş arama sıralaması vb. Tek bir DNN mimarisinin dar bir uygulama aralığı olabilir, ancak bu yöntem yine de çok sayıda pratik uygulamayı ortaya çıkarmaktadır.

Sinir ağları, maks (0, değer) gibi ağırlıklı girdi toplamının doğrusal olmayan işlevleri olan basit yapay nöronlara dayanan insan beynindeki sinirlerin işlevlerine benzer. Bu yapay nöronlar birçok farklı katmana bölünmüştür ve bir katmanın çıktısı bir sonraki katmanın girdisi olarak kullanılacaktır. Derin bir sinir ağındaki "derin katman", birden fazla katman olduğu anlamına gelir.Bulutta çok büyük veri kümeleri olduğu için, onu daha büyük ve daha fazla katmanla değiştirerek daha doğru bir model oluşturabilir ve daha doğru modeller elde edebilirsiniz. Üst düzey soyut desenler veya kavramlar ve GPU'lar, DNN'leri geliştirmemize yardımcı olmak için yeterli bilgi işlem gücü sağlayabilir.

DNN operasyonunun iki aşaması, sırasıyla geliştirme ve üretime atıfta bulunan eğitim (veya öğrenme) ve çıkarım (veya tahmin) olarak adlandırılır. Bir DNN'yi eğitmek birkaç gün sürebilir, ancak eğitimli bir DNN'nin çıkarım yapması yalnızca birkaç milisaniye sürer. Farklı uygulamalar için, geliştiricilerin sinir ağının katmanlarının türünü ve sayısını seçmeleri gerekir ve eğitim süreci ağdaki ağırlıkları belirleyecektir. Neredeyse tüm eğitimler, derin öğrenme çağında GPU'ların bu kadar popüler olmasının nedenlerinden biri olan kayan nokta operasyonlarıdır.

Sözde "niceleme" dönüşümü, kayan nokta türlerini, genellikle sadece 8 bit olan tam sayı türlerine dönüştürür - bu düzey genellikle çıkarım gereksinimleri için yeterlidir. IEEE 75416 bit kayan nokta çarpımı ile karşılaştırıldığında, 8 bitlik tamsayı çarpma, enerji tüketiminin yalnızca 1 / 6'sını gerektirir ve gereken alan yalnızca 1 / 6'dır ve tamsayı toplamaya dönüştürme, enerji tüketiminin 13 katını da sağlayabilir ve 38 kat alan iyileştirme.

Aşağıdaki tablo, toplam üç tür ve altı DNN örneğinin çalışma verimliliği olmak üzere iki örnek göstermektedir. Bu, 2016'da Google Veri Merkezi'nin derin sinir ağı çıkarım iş yükünün% 95'ini temsil etmektedir ve bunları karşılaştırma olarak kullanıyoruz. TensorFlow'daki kodları çok kısadır, yalnızca 100-1500 satırdır. Bu örnekler, ana sunucuda çalışan ve binlerce ila milyonlarca satır C ++ kodundan oluşabilen daha büyük uygulamalardaki küçük bileşenlerdir. Uygulamalar genellikle kullanıcı odaklıdır ve bu da yanıt süresine katı gereksinimler getirir.

Tablo 1. Temmuz 2016'da Google TPU'daki DNN iş yükü. TPU iş yükünün% 95'ini temsil eden toplam altı DNN uygulaması (üç DNN türü)

Tablo 1'de gösterildiği gibi, her model 5 ila 100 milyon ağırlık gerektirir, bu ağırlıklara erişmek bile çok fazla zaman ve enerji gerektirir. Erişim maliyetlerini azaltmak için, eğitimde veya çıkarımda tamamen alakasız girdi örnekleri için aynı ağırlıklar kullanılır ve bu da performansı artırabilir.

TPU kaynağı, mimarisi ve uygulaması

2006'nın başlarında Google, veri merkezlerinde GPU'lar (grafik işleme birimleri), FPGA'lar (sahada programlanabilir kapı dizileri) veya uygulamaya özel entegre devreler (ASIC'ler) dağıtmayı düşünmeye başladı. O zamanki sonuç, özel donanım üzerinde çalışabilecek çok fazla uygulama olmadığıdır. Googleın temelde ücretsiz olarak kabul edilebilecek büyük veri merkezinin fazla bilgi işlem gücünü kullanabilirler ve çok para harcamadan getirmeleri de zordur. Harika gelişme. Google kullanıcıları, Google'ın veri merkezinin bilgi işlem gereksinimlerini ikiye katlayan ve geleneksel CPU'ları kullanmak çok pahalı olacak şekilde, günde üç dakika konuşma tanıma DNN sesli aramasını kullandığında 2013'te durum değişti. Bu nedenle Google, hızlı bir şekilde çıkarım için özel bir çip üretmek ve eğitim için hazır GPU'lar satın almak için çok yüksek öncelikli bir proje başlattı. Google'ın hedefi, fiyat / performans oranını 10 kat artırmaktır. Bu görevi yerine getirmek için, Google TPU'lar tasarladı, doğruladı, oluşturdu ve kendi veri merkezinde dağıttı ve bu süreç yalnızca 15 ay sürdü .

Dağıtım gecikmeleri riskini azaltmak için, Google mühendisleri TPU'yu G / Ç veri yolunda bir yardımcı işlemci olarak tasarladı ve TPU'yu CPU ile sıkı bir şekilde entegre etmek yerine bir GPU gibi mevcut bir sunucuya takılmasına izin verdi. Buna ek olarak, donanım tasarımını ve hata ayıklamayı basitleştirmek için ana sunucu, TPU'nun kendi kendine almasına izin vermek yerine çalıştırılması için TPU'ya talimatlar gönderir. Bu nedenle TPU, kavram olarak kayan nokta birimi (FPU) yardımcı işlemcisine GPU'dan daha yakındır.

Google mühendisleri TPU'yu bir optimizasyon sistemi olarak görüyor. Ana bilgisayar CPU'suyla etkileşimi azaltmak için TPU, tüm çıkarım modelini çalıştırır, ancak 2013'teki DNN ile sınırlı olmamak üzere 2015 ve sonrasında DNN ile eşleştirme esnekliği sağlar.

Şekil 2: TPU mimarisinin şematik diyagramı. TPU talimatı, ana bilgisayardan talimat ara belleğine PCI-e Gen3x16 veriyolu aracılığıyla gönderilir. Dahili bilgi işlem modülleri genellikle 256 bayt genişliğinde bir yolla birbirine bağlanır. Sağdaki yonga düzeni şeması için, sağ üst köşeden başlayarak matris çarpma birimi TPU'nun çekirdeğidir. 256 × 256 MAC, işaretli veya işaretsiz tam sayılar üzerinde 8 bit çarpma ve ekleme işlemlerini gerçekleştirebilir. Elde edilen 16 bitlik sonuç, matris hesaplama birimi altında toplam 4MB alanla 32 bitlik bir toplayıcıda saklanacaktır. Bu dört MiB, 4.096256 elemanlı 32 bitlik bir akümülatörü temsil eder. Matris hesaplama birimi, döngü başına 256 öğenin kısmi bir toplamını üretir.

Şekil 2. TPU mimari şeması ve yonga düzeni şeması

Matris biriminin ağırlığı, "ağırlık belleği" olarak adlandırdığımız yonga dışı 8 GB DRAM'den okunan yonga üzerinde "ağırlık FIFO" ile derecelendirilir; çıkarım için ağırlık yalnızca okunur; 8 GB alan aynı anda birden fazla etkinleştirmeyi destekleyebilir Modeller. FIFO ağırlığı dört seviye derinliğindedir. Ara sonuçlar, 24MiB çip üzerinde "birleşik tamponda" saklanır ve matris hesaplama birimine girdi olarak kullanılabilir. Programlanabilir DMA denetleyicisi, verileri CPU ana bellek ve birleşik tampon arasında aktarır. Google ölçeğinde güvenilir bir şekilde dağıtılabilmesi için, dahili ve harici depolama, yerleşik hata denetimi ve düzeltme donanımı içerir.

TPU mikro mimarisinin prensibi, matris hesaplama birimini her zaman çalışır durumda tutmaktır. Bu amaca ulaşmak için, ağırlığı okuma talimatı, ayrıştırılmış erişim / yürütme prensibini takip eder, bir talimatı, ağırlığın adresi gönderildikten sonra, ancak ağırlık hafızasından alınmadan önce tamamlayabilir. Giriş etkinleştirilirse veya ağırlık verileri hazır değilse, matris hesaplama ünitesi duracaktır.

Büyük ölçekli Statik Rasgele Erişim Belleğini (SRAM) okumak matematiksel işlemlerden çok daha fazla enerji tükettiğinden, matris birimi, birleşik tamponun okuma ve yazmasını azaltarak enerji tasarrufu sağlamak için "titreşim yürütme" kullanır. Farklı yönlerden gelen veriler, dizideki hücrelere düzenli aralıklarla ulaşır ve ardından birleşik hesaplamalar yapar. 65.536 elemanlı bir vektör-matris çarpımı, matriste çapraz dalga cephesi olarak hareket eder. Bu ağırlıklar önceden yüklenir ve yeni veri bloğunun ilk verileriyle birlikte ileri dalga ile birlikte yürürlüğe girer. Kontrol ve veriler ardışık düzenlenmiştir, programcıya 256 girişin bir defada okunduğu ve 256 akümülatörün her birinin bir pozisyonunun hemen güncellendiği yanılsamasını verir. Doğruluk açısından yazılım, matris biriminin titreşim özelliklerini anlamaz, ancak performansı artırmak için birimin gecikmesi dikkate alınmalıdır.

TPU yazılım yığını, uygulamaların hızlı bir şekilde TPU'ya taşınabilmesi için CPU ve GPU için geliştirilen yazılım yığınıyla uyumlu olmalıdır. Uygulamanın TPU üzerinde çalışan kısmı genellikle TensorFlow'da yazılır ve GPU veya TPU üzerinde çalışabilen bir API'de derlenir.

CPU, GPU, TPU platformu

Çoğu mimari araştırma makalesi, potansiyel performansı (uygulanmışsa) tahmin edebilen küçük, kolayca taşınabilir karşılaştırma testleri çalıştırmaya dayanmaktadır. Bu makale, 2015 yılından bu yana veri merkezlerinde gerçek, büyük ölçekli üretim iş yükleri çalıştıran makinelerin geçmişe dönük bir değerlendirmesi olması açısından yukarıdaki makalelerden farklıdır. Bu makinelerin bazılarının günlük 1 milyardan fazla kullanıcısı vardır. Tablo 1'de listelenen altı uygulama, 2016'daki TPU veri merkezi kullanımının% 95'ini temsil etmektedir.

Ölçüm, üretim ortamının yükü olduğundan, karşılaştırılacak karşılaştırma platformunun Google veri merkezinde dağıtılabilir olması gerekir, çünkü üretim ortamının bilgi işlem yükü yalnızca burada hesaplanabilir. Google'ın veri merkezindeki birçok sunucu ve Google ölçeğinin uygulama güvenilirliği gereksinimleri, makinelerin en azından bellek hatalarını kontrol etmesi gerektiği anlamına gelir. Nvidia Maxwell GPU ve en son Pascal P40 GPU dahili depolamadaki hataları kontrol etmediğinden, bu işlemcileri Google ölçeğinde dağıtmak ve yine de Google uygulamalarının katı güvenilirlik gereksinimlerini karşılamak imkansızdır.

Tablo 2, Google'ın veri merkezinde bulunan ve TPU ile karşılaştırılabilecek sunucuları göstermektedir. Geleneksel CPU sunucusu, aynı zamanda bir GPU veya TPU ana sunucusu olan Intel'in 18 çekirdekli çift soketli Haswell işlemcisi tarafından temsil edilir. Google mühendisleri, sunucuda dört TPU çipi kullandı.

Tablo 2. Karşılaştırma hizmetleri Haswell CPU, K80 GPU ve TPU kullanır

Birçok bilgisayar mimarı, ürün piyasaya sürülmesi ile veri merkezinde kullanıcılara hizmet verebilecek yongalar, anakartlar ve yazılımlar arasındaki zaman gecikmesini dikkate almadı. Tablo 3, 2014 ile 2017 yılları arasında , Ticari bulut şirketlerinin GPU zaman farkı 5-25 aydır . Bu nedenle, 2015 yılında kullanıma sunulan TPU ile karşılaştırmaya uygun olan GPU, açık bir şekilde aynı yarı iletken sürecinde olan ve TPU konuşlandırılmadan altı ay önce piyasaya sürülen NVIDIA K80 idi.

Tablo 3. 2015'ten 2017'ye, NVIDIA GPU sürümü ile bulut dağıtımı arasındaki zaman farkı. 4 nesil GPU Kepler, Maxwell, Pascal ve Volta mimarileridir.

Her K80 kartı iki silikon yonga içerir ve dahili bellek ve DRAM için hata algılama ve düzeltme işlevleri sağlar. Bu sunucuya en fazla 8 K80 silikon yongası takılabilir ve bu da bizim kıyaslama yapılandırmamızdır. Hem CPU hem de GPU büyük yongalar kullanır: yaklaşık 600 mm2 yonga alanı, Intel Core i7'nin yaklaşık üç katıdır.

Performans: Tavan hattı, yanıt süresi, iş hacmi

Bu altı uygulamanın üç tip işlemci üzerindeki performansını göstermek için, High Performance Computer Group'un (HPC) Roofline performans modelini kullandık. Bu basit görsel model mükemmel olmasa da performans darboğazının nedenini ortaya koymaktadır. Bu modelin arkasındaki varsayım, uygulamanın gerektirdiği hesaplamaların yonga üzerindeki önbelleğe tam olarak yüklenemeyeceğidir, bu nedenle ya hesaplamada sınırlı ya da bellek bant genişliğinde sınırlıdır. HPC için y ekseni, saniyedeki kayan nokta işlemlerinin performansını temsil eder (FLOPS cinsinden), bu nedenle en yüksek hesaplama oranı çatı çizgisi grafiğinin "düz" alanını oluşturur. X ekseni operasyonel yoğunluğu temsil eder ve birim FLOPS / bayttır. Bellek bant genişliği, çatı hattının "eğimli" kısmını oluşturan saniyede kaç bit olduğunu gösterir, çünkü (FLOPS / sn) / (FLOPS / Bayt) = Bayt / sn. Yeterli bilgi işlem yoğunluğu olmadığında, program bellek bant genişliğiyle sınırlıdır ve performans yalnızca çatı çizgisinin "eğimli" kısmı altında olabilir.

Bir uygulamanın saniyede gerçek hesaplamaları ile tavan hesaplamaları arasındaki mesafe, hesaplama yoğunluğunu sabit tutarken performans iyileştirme potansiyelini temsil eder; hesaplama yoğunluğunu artıran optimizasyonlar (önbellek bölümleme gibi) daha büyük performans iyileştirmeleri sağlayabilir.

TPU'da Roofline modelini kullanabilmek için DNN uygulaması nicelendiğinde ilk olarak kayan nokta işlemlerini tamsayı işlemleriyle değiştiriyoruz. DNN'ler tarafından uygulanan ağırlıklar genellikle yonga üzerindeki belleğe yüklenemediğinden, ikinci değişiklik, Tablo 1'de gösterildiği gibi, her 1 bayt ağırlık değeri okuması için tamsayı çarpma ve biriktirme işlemleri sayısı olarak işlem yoğunluğunu yeniden tanımlamaktır.

Şekil 3, Roofline modeli tarafından değerlendirilen tek bir TPU, CPU ve GPU silikon yongasının performans göstergelerini göstermektedir Şekil, dizin koordinatlarını göstermektedir. TPU Çatı Hattı modelinin "eğimli" kısmı daha uzundur. Hesaplama yoğunluğu açısından bu, performansın en yüksek bilgi işlem gücü yerine bellek bant genişliği ile daha sınırlı olduğu anlamına gelir. Altı uygulamadan beşi tavana yakın, MLP ve LSTM bellek ile sınırlıdır, CNN hesaplama ile sınırlıdır .

Şekil 3: Tavan Hattı modelinde TPU, CPU ve GPU'nun performansı. Beş köşeli yıldız TPU'yu temsil eder, üçgen NVIDIA Tesla K80 GPU'yu temsil eder ve daire Intel Core işlemciyi (Haswell) temsil eder; tüm TPU beş köşeli yıldızlar diğer iki yonganın Tavan Hattı modeline eşit veya üzerindedir.

Şekil 3'te gösterildiği gibi Haswell ve K80'de, altı DNN uygulaması ile Tavan Hattı tavanı arasındaki mesafe TPU'daki mesafeden daha büyüktür. Cevap süresi sebebi. Bu uygulamaların çoğu son kullanıcı hizmetlerinin parçasıdır. Araştırmalar, yanıt süresindeki küçük bir artışın bile kullanıcıların hizmeti daha az kullanmasına neden olacağını göstermiştir. Eğitimin zorlu bir yanıt süresi son tarihi olmayabilir, ancak çıkarım genellikle yapar veya çıkarım görevleri, daha büyük bir iş hacmi seçmeye kıyasla düşük gecikmeyi tercih eder.

Örneğin, uygulama geliştiricilerin gereksinimlerine göre, MLP0 uygulaması, sürenin% 99'u içinde 7 ms'den fazla olmayan yanıt süresi gerektirir . (Saniyede gereken çıkarım sayısı ve 7 ms gecikme gereksinimi sunucu ana bilgisayar süresini ve hızlandırıcı süresini içerir) Yanıt süresi sınırı gevşetilmiş olsa bile, Haswell ve K80 çalışma zamanları sırasıyla MLP0 uygulamalarının yalnızca% 42'sine ve en yüksek verimine ulaşabilir. % 37. Bu sınırlamalar, TPU'nun maksimum MLP0 işlem hacmine daha yakın olan% 80 aktarım hızında çalışan TPU'yu da etkileyecektir. CPU ve GPU ile karşılaştırıldığında, tek iş parçacıklı TPU karmaşık mikro mimari özelliklere sahip değildir ve performansı iyileştirmek için ortalama koşullar için transistör ve güç tüketmesine gerek yoktur.Koşulların% 99'una doğrudan uygulanabilir, yani TPU'nun önbelleği yoktur, dal tahmini, Sıra dışı yürütme, çoklu işleme, spekülatif ileri okuma, adres birleştirme, çoklu iş parçacığı, bağlam değiştirme vb. Minimalizm, alana özgü işlemcilerin avantajıdır.

Tablo 4, CPU'ya karşı iki hızlandırıcının ana sunucu ek yükü de dahil olmak üzere her bir yonganın göreli çıkarım performansının alt satırını gösterir ve bu altı DNN uygulamasının göreli performansının ağırlıklı ortalamasını gösterir ve K80 yonga hızının Haswell'in 1,9 katı olduğunu gösterir. Yonga hızı Haswell'in 29,2 katı ve TPU yonga hızı GPU'nun 15,3 katı.

Tablo 4: DNN iş yükü altında K80 GPU yongası ve TPU yongasının CPU'ya performans oranı. Ağırlıklı ortalama, Tablo 1'deki altı uygulamanın gerçek karışımını kullanır.

Maliyet performansı, tam döngü maliyeti (TCO), performans / güç tüketimi

Büyük miktarlarda bilgisayar satın alırken, maliyet performansı performanstan daha önemlidir. Bir veri merkezi için en iyi maliyet göstergesi, tam döngü maliyetidir (TCO). Bir kuruluşun (Google gibi) binlerce çip satın almak için ödediği gerçek fiyat, ilgili şirketlerle müzakere ve iletişime bağlıdır. Ticari sırlar nedeniyle bu tür fiyat bilgilerini veya verileri açıklayamayız. Bununla birlikte, güç TCO ile ilgilidir ve her sunucunun güç tüketimini açıklayabiliriz, bu nedenle burada performans / TCO oranı yerine performans / güç oranını kullanıyoruz. Bu bölümde tek bir çip yerine tüm sunucuyu karşılaştırdık.

Şekil 4, Haswell CPU'ya göre K80 GPU ve TPU'nun ortalama performans / güç oranını göstermektedir. İki farklı performans / güç oranı hesabı verdik. İki farklı performans / güç hesaplama yöntemi gösteriyoruz. İlk "toplam", GPU ve TPU'nun performans / güç tüketimini hesaplarken ana CPU sunucusu tarafından tüketilen gücü içerir; ikinci "artımlı" ise ana CPU sunucusu tarafından tüketilen gücü GPU ve TPU'dan çıkarır.

Şekil 4: GPU sunucusu ile CPU sunucusu arasındaki performans / güç tüketimi karşılaştırması (mavi çubuk), TPU sunucusu ile CPU sunucusu arasındaki güç tüketimi karşılaştırması (kırmızı çubuk) ve TPU sunucusu ile GPU sunucusu arasındaki güç tüketimi karşılaştırması (turuncu çubuk). TPU ', TPU'yu geliştirmek için K80'in GDDR5 belleğini kullanan bir çiptir

Toplam performans / watt için K80 sunucusu Haswell'in 2,1 katıdır. Artımlı performans / watt için, Haswell sunucu gücünü göz ardı ederken, K80 sunucusu Haswell'in 2,9 katıdır. TPU sunucusunun toplam performansı / watt değeri Haswell'inkinden 34 kat daha yüksektir ve TPU sunucusunun performansı / gücü K80 sunucusunun 16 katıdır. TPU için, göreceli artan performans / watt CPU ile karşılaştırıldığında, Google tarafından tasarlanan ASIC seviyesine 83 kat ulaşıldı, bu da GPU'nun performansının / watt'ının 29 katıdır.

Alternatif TPU tasarımlarının değerlendirilmesi

FPU'ya benzer şekilde, TPU yardımcı işlemcilerin değerlendirilmesi daha kolaydır, bu nedenle altı uygulama için bir performans modeli oluşturduk. Model simülasyon sonuçları ile gerçek donanım performansı arasındaki ortalama fark% 10'dan azdır.

Performans modelini TPU 'olarak adlandırılan başka bir varsayımsal TPU çipini değerlendirmek için kullandık (aynı yarı iletken teknolojisini 15 ay içinde kullanarak bu çipi tasarlayabiliriz). Daha radikal mantık sentezi ve modül tasarımı, saat frekansını% 50 daha artırabilir; GDDR5 bellek için bir arayüz devresi tasarlamak (K80 gibi) ağırlık okuma için bellek bant genişliğini dört kat artırabilir ve tavan hattının bükülme noktasını eğikten düz hale getirebilir. 1350250'ye düştü.

Belleği geliştirmeden saat frekansını tek başına 1.050 MHz'e çıkarmak, çok sınırlı performans iyileştirmelerine neden olacaktır. Saat frekansını 700 MHz'de tutup bellek olarak GDDR5 kullanırsak, ağırlıklı ortalama 3,9 katına çıkar. . Bu iki ölçümü aynı anda yapmak aslında performansı değiştirmez, bu nedenle varsayımsal TPU'nun yalnızca daha hızlı belleği vardır.

DDR3 ağırlıklı belleğin K80 ile aynı GDDR5 belleğiyle değiştirilmesi, bellek kanalı sayısının, yani 4 kanalın iki katına çıkarılmasını gerektirir. Bu iyileştirme, çip alanında yaklaşık% 10'luk bir artış gerektirecektir. GDDR5'in ayrıca TPU sisteminin güç bütçesini 861 W'tan yaklaşık 900 W'a yükseltmesi gerekiyor, çünkü her sunucuda dört TPU var.

Şekil 4'ten TPU'nun silikon çip başına genel performans / güç tüketiminin Haswell'in 86 katı ve K80'in 41 katı olduğu görülmektedir. Artımlı endeksi Haswell'in 196 katı ve K80'in 68 katıdır.

tartışmak

Bu bölüm Hennessy ve Patterson'un Hata-tuzak-çürütme Genişletme biçimi:

Hata: Veri merkezindeki DNN, uygulamanın verim ve yanıt süresini eşit derecede önemli kıldığını ortaya çıkarır. Google TPU geliştiricilerinin yanıt süresi için bu kadar yüksek gereksinimleri olmasına şaşırıyoruz. 2014 yılında birisi şunu ortaya çıkardı: TPU için, parti boyutu TPU bilgi işlem performansının zirvesine ulaşacak kadar büyük olmalı ve gecikme gereksinimleri o kadar da zorlu değil. . Rol oynayan bir uygulama, çevrimdışı görüntü işlemedir. Google geliştiricilerinin sezgisi, etkileşimli hizmetler de TPU gerektiriyorsa, çoğu hizmetin hesaplama için TPU'ya teslim edilmeden önce yeterince büyük gruplar biriktirmesi gerektiğidir. 2014'te bile, yanıt süresine (LSTM1) odaklanan Google'ın uygulama geliştiricileri, 2014'teki sınırın 10 ms olduğunu ve TPU'ya geçerken 10 ms'nin 7 ms'ye düşeceğini söyledi. TPU'daki bu hizmetlerin çoğunun beklenmedik gereksinimleri ve bunların etkileri ve hızlı yanıt süresi tercihleri bu denklemi değiştirdi. Uygulama yazarları genellikle daha büyük gruplar biriktirmek yerine gecikmeyi azaltmayı seçerler. Neyse ki TPU, etkileşimli hizmetlerin düşük yanıt süresi ve yüksek en yüksek verim gereksinimlerini karşılamak için basit ve tekrarlanabilir bir yürütme modeline sahiptir. Nispeten küçük gruplar hesaplanırken bile, mevcut CPU'lardan ve GPU'lardan daha iyi performansa sahiptir. verim.

Hata: K80 GPU mimarisi DNN çıkarımı için çok uygundur. Performans, enerji tüketimi ve maliyet açısından TPU'nun K80 GPU'dan daha iyi olmasının beş nedeni olduğunu bulduk. 1. TPU'da yalnızca bir işlemci varken, K80'de 13 vardır ve tek iş parçacığı elbette sıkı gecikme hedeflerini karşılamak için daha kolaydır. 2. TPU'nun çok büyük bir iki boyutlu çarpma birimi vardır ve GPU'nun 13 küçük tek boyutlu çarpma birimi vardır. DNN'nin matris çarpım yoğunluğu, iki boyutlu dizide aritmetik mantık işlem birimi için uygundur. 3. İki boyutlu dizi ayrıca, kayıtlara erişimi engelleyerek enerji tasarrufu sağlayarak titreşimli bir yonga uygulamasını kolaylaştırabilir. 4. TPU'nun niceleme uygulaması, GPU'nun 32-bit kayan noktası yerine 8-bit tamsayı kullanır; K80, 8-bit tamsayıyı desteklemez. Daha küçük verilerin kullanılması yalnızca hesaplama enerji tüketimini iyileştirmekle kalmaz, aynı zamanda FIFO ağırlığının etkin kapasitesini ve ağırlık belleğinin etkin bant genişliğini dört katına çıkarır. (Çıkarım için 8 bitlik tamsayılar kullanılsa da, bu uygulamalar bu uygulamaları eğitirken kayan nokta kullanmakla aynı doğruluğu garanti eder) 5. TPU, GPU için gerekli olan ancak DNN için gerekli olmayan özellikleri göz ardı ederek TPU yongalarını azaltır, enerji tasarrufu sağlar ve Diğer iyileştirmeler için yer bırakın. TPU yongasının boyutu K80'in neredeyse yarısı kadardır ve genellikle işlem için gereken enerjinin üçte birini gerektirirken, hafızası ikincisinin 3,5 katıdır. Bu beş faktör, TPU'nun enerji tüketimi ve performans açısından K80 GPU'dan 30 kat daha iyi olmasına neden oluyor.

Tuzak: Alana özgü mimarileri tasarlarken mimari geçmişi göz ardı edin. Genel amaçlı bilgi işlem için geçerli olmayan fikirler, alana özgü mimarilere uyabilir. TPU için, 1980'lerin başlarına kadar üç önemli mimari özellik izlenebilir: sistolik dizi, ayrıştırılmış erişim / yürütme ve karmaşık komut seti. İlk özellik, büyük matris çarpma biriminin alanını ve enerji tüketimini azaltır; ikinci özellik, matris çarpma biriminin çalışması sırasında paralel olarak ağırlıkları alır; üçüncü özellik, talimat göndermek için PCIe veriyolunun sınırlı bant genişliğini daha iyi kullanır. Bu nedenle, bilgisayar mimarisinin tarihini daha iyi anlayan, alana özgü mimarların rekabet avantajı vardır.

Yanlış: Google CPU'yu daha verimli kullanırsa TPU ile karşılaştırılabilir sonuçlar alacaktır. Tamsayı hesaplamalarını verimli bir şekilde desteklemek için CPU'nun Gelişmiş Vektör Uzantılarının (AVX2) etkin kullanımı nedeniyle, çok fazla çalışma gerektirir.Başlangıçta, CPU'da 8 bitlik tamsayı performans testi sonuçlarına sahip yalnızca bir DNN vardı ve performans artışı yaklaşık 3,5 kattı. Tüm CPU performans değerlendirmeleri, daha net bir şekilde göstermek için (ve çok fazla grafik alanı kaplamayacak) kayan nokta hesaplama performansına dayanmaktadır ve bu tamsayı hesaplama sonucu için ayrı bir Tavan Hattı grafiği yoktur. Tüm DNN'ler benzer hızlanma elde ederse, TPU'nun getirdiği performans / güç oranı iyileştirmesi sırasıyla 41 kat ve 83 kattan 12 katına ve 24 katına düşecektir.

Yanılgı: Google uygun yeni sürümü kullanırsa, GPU sonuçları TPU'ya benzer olacaktır. Tablo 3, GPU'ların ne zaman piyasaya sürüldüğü ile müşterilerin bulutta GPU'ları ne zaman kullanabileceği arasındaki farkı göstermektedir. Yeni GPU'larla adil bir karşılaştırma, yeni TPU'yu içerecek ve ek 10W güç tüketimi için, 28nm, 0.7GHz, 40W TPU'nun performansını üç katına çıkarmak için yalnızca K80in GDDR5 belleğini kullanmamız gerekiyor. TPU'nun 16nm sürecine taşınması, performansını / güç tüketimini daha da artıracaktır. 16 nanometrelik Nvidia Pascal P40 GPU'nun en yüksek performansı, birinci nesil TPU'nun yarısıdır, ancak 250 watt'lık enerji tüketimi, orijinalinin birçok katıdır. Daha önce belirtildiği gibi, hata algılama eksikliği, Google'ın artık P40'ları veri merkezinde dağıtamayacağı ve bu nedenle gerçek bağıl performanslarını belirlemek için bunlar üzerinde üretim iş yükleri çalıştıramayacağı anlamına gelir.

İlgili araştırma

DNN ASIC'i tanıtan iki araştırma makalesi, en azından 1990'ların başına kadar izlenebilir. 2016 ACM iletişiminde bahsedildiği gibi, DianNao ailesi, DNN uygulamalarında bellek erişim modları için etkili mimari desteği sağlayarak yonga üzerinde ve harici DRAM bellek erişimini en aza indirebilen dört DNN mimarisine sahiptir. Orijinal DianNao, 6416 bitlik tamsayı çarpma ve biriktirme birimi dizisi kullandı.

Google TPU 3.0, bu yılın Mayıs ayında piyasaya sürüldü. Fonksiyonu, 100 petaflop'a varan bir performansla TPU 2.0'ın sekiz katıdır. Çip, sıvı soğutma kullanır.

DNN'ler için alana özgü mimariler tasarlamak, bilgisayar mimarları için hala sıcak bir konu. Odak noktalarından biri, 2015'te TPU'nun ilk dağıtımından sonra önerilen seyrek matrislerin hesaplama mimarisidir. Verimli Çıkarım Motorunda çok küçük değerleri filtreleyen, ağırlıkların sayısını yaklaşık 1 / 10'a düşüren ve ardından çıkarım performansını iyileştirmek için verileri daha da azaltmak için Huffman kodlamasını kullanan tek bir ilk tarama vardır. Cnvlutin, aktivasyon girişi sıfır olduğunda çarpma işlemini atlar.Bu hesaplamanın olasılığı% 44'e ulaşabilir. Nedenin bir kısmı, doğrusal olmayan dönüşüm fonksiyonu ReLU'nun girdinin negatif değerini sıfıra dönüştürmesidir; hesaplamadaki bu ihmal, ortalamayı yapar Performans 1,4 kat arttı. Eyeriss, bellek ayak izini azaltmak için çalışma uzunluğu kodlaması yoluyla verilerde sıfırlar kullanan ve girdi sıfır olduğunda hesaplamalardan kaçınarak enerji tasarrufu sağlayan yeni bir düşük güçlü veri akışı mimarisidir. Minerva, algoritma, yapı ve devre disiplinlerini kesen ortak bir tasarım sistemidir.Verileri ölçerek ve daha küçük aktivasyon işlevlerini budayarak güç tüketimini orijinalin 1 / 8'ine düşürür. 2017'de sergilenen bu sistemin sonucu, seyrek ve sıkıştırılmış evrişimli sinir ağları için bir hızlandırıcı olan SCNN'dir. Ağırlıklar ve etkinleştirme işlevleri DRAM ve dahili tamponlarda sıkıştırılır, böylece veri aktarımı için gereken süre ve enerji azaltılır ve çipin daha büyük modelleri depolamasına izin verilir.

2016'dan bu yana bir başka eğilim, eğitim için alana özgü mimaridir. Örneğin, ScaleDeep, DNN eğitimi ve çıkarımı için tasarlanmış yüksek performanslı bir sunucu girişimidir ve binlerce işlemci içerir. Bu yongaların her biri özel bir bilgi işlem modülü ve 3: 1 oranında özel bir depolama modülü içerir ve performansı GPU'nunkinden 6-28 kat daha iyidir. 16 bit veya 32 bit kayan nokta hesaplamalarını destekler. Çipler, DNN iletişim modu ile eşleşen yüksek performanslı bir ara bağlantı topolojisi aracılığıyla bağlanır. SCNN gibi, bu topoloji yalnızca CNN'de değerlendirilir. 2016'da CNN, Google'ın veri merkezinin TPU iş yükünün yalnızca% 5'ini oluşturuyordu. Bilgisayar mimarları, diğer DNN türleri ve donanım uygulamaları üzerinde ScaleDeep değerlendirmeleri yapmayı dört gözle bekliyorlar.

DNN, FPGA'nın bir veri merkezi bilgi işlem platformu olarak iyi bir kullanım örneği gibi görünüyor. Gerçek konuşlandırmaya bir örnek Catapult'tur. Catapult, 2014 yılında halka açık olarak piyasaya sürülmesine rağmen, TPU ile aynı dönemdir, çünkü Microsoft'un veri merkezinde 28 nanometre Stratix V FPGA, Google'ın TPU dağıtımıyla aşağı yukarı aynı zamanda konuşlandırılmıştır. Catapult, CNN'yi sıradan sunuculardan 2,3 kat daha hızlı çalıştırır. Catapult ile TPU arasındaki belki de en önemli fark, kullanıcıların en iyi performansı elde etmek için kısa programlar yazmak için yüksek seviyeli TensorFlow çerçevesini kullanmak yerine FPGA için uzun programlar yazmak için düşük seviyeli donanım tasarım dili Verilog'u kullanmaları gerektiğidir; başka bir deyişle "yeniden programlanabilirlik" (Yeniden programlanabilirlik) TPU'dan gelen yazılım, en hızlı FPGA'daki donanım yazılımı değil.

sonuç olarak

TPU G / Ç veriyolunda olmasına ve nispeten sınırlı bellek bant genişliğinin tam performansını sınırlamasına rağmen (altı DNN uygulamasından dördü bellekle sınırlıdır), çok ayrıntılı olsa bile çok sayıda parça demonte edilebilir. Çatı hattı performans modelinde gösterildiği gibi, hala nispeten büyük bir sayı olan döngü başına 65536 çarpma ve birikim hesaplamaları. Bu sonuç, Amdahl yasasının aslında çok değerli bir çıkarım olduğunu göstermektedir - çok sayıda ucuz kaynağın verimsiz kullanımı yine de uygun maliyetli yüksek performans sağlayabilir.

Muhakeme uygulamalarının genellikle kullanıcı odaklı uygulamalar olduğundan katı yanıt süresi sınırlarına sahip olduğunun farkındayız; bu nedenle, DNN'ler için bilgi işlem çipleri tasarlayan tasarımcıların, vakaların% 99'unda zaman sınırı gereksinimlerini karşıladıklarından emin olmaları gerekir.

TPU yongası, belirli bir alanda TensorFlow çerçevesi kullanılarak yazılan kısa programları çalıştırmak için MAC ve yonga üstü bellekteki avantajlarını kullanır.TensorFlow çerçevesi, K80 GPU yongasından 15 kat daha hızlıdır, bu nedenle performans / toplamla ilişkili olarak 29 kat performans / güç avantajı elde edebilir Sahip olma maliyeti ilişkilidir. Haswell CPU yongaları ile karşılaştırıldığında, karşılık gelen oranlar sırasıyla 29 ve 83 katıdır.

Bu performans açığını açıklayabilecek beş mimari faktör vardır:

  • işlemci. TPU'da yalnızca bir işlemci varken K80'de 13 ve CPU'da 18 bulunur; tek iş parçacığı, sistemin sabit bir gecikme sınırı içinde kalmasını kolaylaştırır.

  • Büyük iki boyutlu çarpma birimi. TPU çok büyük bir iki boyutlu çarpma birimine sahipken, CPU ve GPU sırasıyla yalnızca 18 ve 13 daha küçük tek boyutlu çarpma birimine sahiptir; iki boyutlu donanım matris çarpımında iyi performansa sahiptir.

  • Sistolik dizi. İki boyutlu organizasyon, sistolik diziyi destekleyerek kayıt erişimini ve enerji tüketimini azaltır.

  • 8 bitlik tam sayı. TPU uygulamaları, hesaplama ve bellek verimliliğini artırmak için 32 bit kayan nokta işlemleri yerine 8 bit tam sayılar kullanır.

  • Atılan özellikler. TPU, CPU ve GPU tarafından ihtiyaç duyulan ancak DNN tarafından kullanılmayan işlevlerden vazgeçer. Bu, TPU'yu daha ucuz hale getirir, kaynakları korur ve transistörlerin yerleşik belleğin belirli alanlarında yeniden kullanılmasına olanak tanır.

Gelecekteki CPU ve GPU çıkarımda daha hızlı çalışacak olsa da, 2015 dolaylarında GPU belleğini kullanan yeniden tasarlanan TPU orijinalinden üç kat daha hızlı olacak ve performans / güç avantajı K80 ve Haswell'in sırasıyla 70 katı ve 70 katı olacak. 200 kez.

10%

TPU

Teşekkürler

TPUTPU

via acm.orgAI

Hoşçakal deme Huang Zihua Jin Penangkou Dongdu, burada en güçlü spoylere gülüyor!
önceki
Yeniden açılan PORTER'da cihazlar çantalardan daha mı iyi?
Sonraki
Özet Han Xu, Tsinghua Üniversitesi: Sinirsel İlişki Ekstraksiyon Modeli
20 milyar maliyetle "büyük pantolon" olarak adlandırılan CCTV binasının yapımının zorluğu nedir?
Sister Hong Kong Geriye bakış Hayat bir satranç gibidir, düştüğünüzde pişmanlık duymazsınız, Guo Aiming'in sekülerlik seçimi sorumsuz sözler söylemeye cesaret edemez
Salanghey! Samsung'un ilk 4 kameralı telefonu burada
"Tang Hanedanlığının Zaferi" reytingini "Üç Yaşam" a kaptırsa da Huanrui Yüzyılı, Jiaxing Media'dan daha karlı
Kayıt AI Çince Kütüphane Paylaşımı
Olay yerine gitmedin mi? Gelin ve ilk elden Timberland x MADNESS etkinliğini izleyin!
Charmaine Sheh | İkili vizyondan ayrıldıktan sonra, destekleyici rol C pozisyonunun ışığını neredeyse hiç gizleyemez
Gökyüzü bahçesi havada asılı mı? 1500 yıl önce bu proje ne kadar zordu, kadimlerin bilgeliğine hayranım
Zeiss kamera ışığı amiral gemisi: Nokia X7 Twilight Red Picture Tour
Yeni MG 6 resmi olarak piyasaya sürüldü, coupe tarzı mizaç / Kasım'da listelendi
"Ruyi's Royal Love in the Palace" filminin ve diğer dramaların oyuncu kadrosunun arkasındaki sahneleri açığa çıkaran yönetmen yardımcısı, birbiriyle kavga eden yüzlerce kişiyle şirketleşti.
To Top