Neden yapay zeka çipleri çağı - TPU'dan başlayarak düzinelerce kat daha fazla performans yolculuğu

Leifeng.comun AI Technology Review Press: ACM Communications (ACM Communications) çevrimiçi dergisinin yakın tarihli bir sayısında, yazarın Googledan bir makalesi yayınlayarak, son yıllarda yarı iletkenlerin gelişimini yeniden incelememize neden oldu ve AI araştırma ve uygulama personeli artık kabul etti Soru: Özel işlemci neden bu kadar iyi 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 belirtmek gerekir. Leifeng.com AI Technology Review'in 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.

  • Yapay sinir ağları için yonga bilgi işlem kaynaklarının özel olarak yeniden dağıtılmasıyla TPU, gerçek bir veri merkezi yük ortamında genel amaçlı bilgisayarlardan 30-80 kat daha verimlidir ve dünya çapında 1 milyar kişiye günlük hizmetler sunmuştur.

  • 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ır.

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

1965'te Intelin kurucularından Gordon Moore, bir çipteki transistör sayısının her iki yılda bir ikiye katlanacağını tahmin etti. Ocak 2017'de ACM haber bülteninin kapağındaki çağrıya rağmen: "Bitireceğim endişesi sadece temelsiz bir endişedir", Moore Yasası gerçekten öldü. 2014'te piyasaya sürülen DRAM yongası 8 milyar transistör içeriyor ve insanlar 2019'da bile 16 milyar transistörlü DRAM yongalarının dört yıl içinde toplu olarak üretilmeyeceğini, Moore Yasası'nın öngörüsüne göre dört yıl içinde üretileceğini tahmin ediyor. 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 tahmin edilen değerden 2,5 kat daha düşüktü - tabii ki, Yarı iletken endüstrisi hala ilerlemekte 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ör sayısı dört katına çıkacaktı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 aracılığıyla kaynakları performansa dönüştürmüştür. Bu tasarımlar, farklı işleme 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 yollar bulamadılar. Dennard Scaling 2004'te sona erdi ve talihsizlik, talimat düzeyinde paralelliği geliş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 (tanınmış bir IBM mühendisi ve Amdahl Yasasının yazarı) tarafından önerilen ve işlemci sayısının artmasını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ılda 32 bit ve 64 bit işlemci çekirdeklerinin en yüksek SPECCPUint performansını grafiğe döküyoruz; iş hacmi için SPECCPUint_rate, platosu birkaç gecikme olsa bile benzer bir durumu yansıtır 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 yongalar için güç bütçesi artmadı (çünkü Elektronik mobilite, mekanik ve termal sınırlamalar), çip tasarımcıları çok çekirdekli yeteneklere tam anlamıyla hakim oldular (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, özellikle derin sinir ağlarında (DNN) son yıllarda makine öğrenimi konusunda ilerleme kaydetmiştir. 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 çok katman olduğu anlamına gelir. Bulutta çok büyük veri kümeleri olduğu için, yalnızca daha büyük ve daha fazla katmana geçerek daha doğru bir model oluşturabilirsiniz ve ayrıca 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 üretimi ifade eden 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.

"Niceleme" olarak adlandırılan dönüştürme, kayan nokta türlerini genellikle yalnızca 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 ayrıca enerji tüketiminin 13 katını sağlayabilir ve 38 katına kadar alan.

Aşağıdaki tablo, toplam üç tür, 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 ve sadece 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 büyük veri merkezinin fazla bilgi işlem gücünü kullanabilirler. Temelde, ücretsiz olarak kabul edilebilir ve para harcamadan getirmenin 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 veri merkezlerinde 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 I / O veriyolunda 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. 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şlemcilerine GPU'lardan 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 talimatları, 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 diyagramı için sağ üst köşeden başlayarak matris çarpım birimi TPU'nun çekirdeğidir ve 256 × 256 MAC, işaretli veya işaretsiz tam sayılar üzerinde 8 bit çarpma ve ekleme işlemlerini gerçekleştirebilir. 16 bitlik sonuç, matris hesaplama birimi altında toplam 4MB boşlukla 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 mimarisi ve yonga düzeninin şematik diyagramı

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, matris hesaplama biriminin girdisi olarak kullanılabilen 24MiB çip üzerinde "birleşik tamponda" saklanır. 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 ilkesi, 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 bir statik rasgele erişimli belleğin (SRAM) okunması, 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 gerçekleştirir. 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 aynı anda 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'da ç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

Mimari araştırma belgelerinin çoğu, potansiyel performansı (eğer uygulanırsa) tahmin edebilen küçük, kolayca taşınabilir kıyaslama test simülasyonları ç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 geriye dönük bir değerlendirmesi olması açısından yukarıdaki makaleden 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 uygulama güvenilirliği için Google ölçeğinde gereksinimler, makinelerin en azından bellek hatalarını kontrol etmesi gerektiği anlamına gelir. NVIDIA Maxwell GPU'lar ve en son Pascal P40 GPU'lar dahili depolamadaki hataları kontrol etmediğinden, bu işlemcileri Google ölçeğinde dağıtmak ve yine de Google uygulamalarının sıkı 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, Intel'in 18 çekirdekli çift soketli Haswell işlemcisi ile temsil edilir. Bu platform aynı zamanda bir GPU veya TPU ana sunucudur. Google mühendisleri, sunucuda dört TPU çipi kullandı.

Tablo 2. Kıyaslanan hizmetler 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 aralığı 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 ile 2017 arasında, 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 çipler kullanır: yaklaşık 600 mm2'lik çip 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, yüksek performanslı bilgisayar kümesinin (HPC) Roofline performans modelini kullandık. Bu basit görsel model mükemmel olmasa da performans darboğazının nedenini ortaya koymaktadır. 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 (FLOPS cinsinden) kayan nokta işlemlerinin performansını temsil eder, 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 / Byte) = Bayt / sn. Yeterli bilgi işlem yoğunluğu olmadığında, program bellek bant genişliği ile sınırlanı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 kullanmak için DNN uygulaması nicelendiğinde ilk olarak kayan nokta işlemlerini tam sayı işlemleriyle değiştiririz. DNN'ler tarafından uygulanan ağırlıklar genellikle çip ü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'nun Ç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ünden ziyade 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: Roofline 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. Tepki 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ğitim, zorlu bir yanıt süresine sahip olmayabilir, ancak genellikle çıkarım yapar veya çıkarım görevleri, daha büyük iş hacmini seçmeye kıyasla düşük gecikmeyi tercih eder.

Örneğin, uygulama geliştiricilerin ihtiyaçlarına 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 yonganın göreli çıkarım performansının alt satırını göstermektedir ve bu altı DNN uygulamasının göreli performansının ağırlıklı ortalamasını göstererek K80 yongasının hızının Haswell'in 1,9 katı olduğunu göstermektedir. 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. Ancak, 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ü göz ardı edildiğinde, 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, CPU'nun göreli artan performansı / watt'ına kıyasla, Google tarafından tasarlanan ASIC seviyesine 83 kat ulaşıldı, bu da GPU'nun performansının / watt'ının 29 katı.

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

FPU'ya benzer şekilde, TPU yardımcı işlemcisinin 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 yongasını değerlendirmek için kullandık (aynı yarı iletken teknolojisini 15 ay içinde kullanarak bu yongayı 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 önlemi 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 toplam 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 Yanlış tuzak çürütme Genişletme biçimi:

Yanlışlık: Veri merkezindeki DNN, uygulamanın iş hacmi 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. . Süren 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 etkisi 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 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 dizideki 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 yonga uygulamasını kolaylaştırabilir. 4. TPU'nun niceleme uygulaması, GPU'nun 32 bit kayan noktası yerine 8 bitlik tamsayı kullanır; K80, 8 bitlik 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 de 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 sağlar) 5. TPU, GPU için gerekli olan ancak DNN tarafından gerekli olmayan özellikleri göz ardı ederek TPU yongalarını azaltır ve enerji tüketimini azaltır. 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ü mimariler tasarlarken mimari geçmişi göz ardı etmek . Genel amaçlı bilgi işlem için geçerli olmayan fikirler, alana özgü mimarilere uyabilir. TPU için 1980'lerin başına kadar üç önemli mimari özellik izlenebilir: sistolik dizi, ayrı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ı elde eder ve üçü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) verimli kullanımı çok fazla çalışma gerektirdiğinden, 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, bu nedenle bu tamsayı hesaplama sonucu için ayrı bir Çatı Çizgisi 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 kadar 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ık 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 başlangıç taraması vardır. Cnvlutin, aktivasyon girişi sıfır olduğunda çarpma işlemini atladı. 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, algoritmaları, yapıları ve devre disiplinlerini kapsayan 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 merkezi 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, bir veri merkezi bilgi işlem platformu olarak FPGA için 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 ve 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 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ğunu biliyoruz; 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ına göre 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 çok iyi performansa sahiptir.

  • Sistolik dizi. İki boyutlu organizasyon sistolik dizileri 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 bitlik tamsayı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.

En azından geçtiğimiz on yılda, bilgisayar mimarisi araştırmacıları tarafından yayınlanan yeniliklerin tümü analog hesaplamalardan geldi.Bu sonuçlar sınırlı kıyaslamalar kullanıyor ve genel amaçlı işlemcilerdeki iyileştirmeler sadece% 10 veya daha az ve performansı rapor ediyoruz Gerçek üretim uygulamalarında kullanılan gerçek donanımda kullanılan etki alanına özgü mimarinin avantajı olan iyileştirme, orijinalin on katından fazla.

Ticari ürünler arasındaki farkın büyüklüğü bilgisayar mimarisinde nadirdir ve bu, TPU'nun bu alandaki gelecekteki çalışmalar için bir model olmasına yol açabilir. Başkalarının da bu yönde hareket etmesini ve eşiği daha da yükseltmesini bekliyoruz.

Teşekkürler

TPU ekibinin tüm üyelerine proje boyunca katkılarından dolayı teşekkür ederiz. Google'da gördüğümüz gibi TPU'nun ve diğer sistemlerin donanım ve yazılım üretimini, dağıtımını ve geniş ölçekli kullanımını tasarlamak, doğrulamak ve uygulamak gerçekten bir ekibin tamamını gerektiriyor.

Lei Feng.com AI Technology Review tarafından derlenen acm.org aracılığıyla

Penetrasyonda bir atılım bulan şeyler
önceki
Zafer Kralı Okçu Kahramanı neden bitiş zamanlarını tercih ediyor? !
Sonraki
"Giriş biletlerini" sahte almak için kendi kendine kayıt için ne kadar su var?
BIGBANG'ın genel dönüşü görünürde yok, cesaretiniz kırılmasın! GD'ye ek olarak, grup yeni bir albüm getiriyor mu?
30 hacker takımıyla rol yapma oyunum
Beşinci nesil Land Rover Discovery SVX versiyonu 2017'de satışa sunulabilir
Hollywood müzikallerinin kralı Stanley Donan öldü, bir zamanlar "Song in the Rain" yönetildi
Ülkedeki en iyi liselerin sıralaması tartışmalı ve Qingbei oranı açık! Mezun olduğunuz okulun nasıl olduğunu görün
Meyve tozundan siyah yeme siyaha: forumda asılı atların tuhaf bir şekilde tersine çevrilmesi
Yeni kumaş kutsaması! Nike Blazer tüm stilleri tekrar oynamak üzere!
7 Nisan'da resmi olarak listelenen Chevrolet Explorer konfigürasyon gösterimi
İngiliz matematikçi Riemann'ın varsayımının "güncellenmiş" olduğunu kanıtladı
Ali'yi solda, Tencent'i tutmada sağda, Unicom karma reform projesi indi
Yeni saldırı kampanyası! StealthWorker kötü amaçlı yazılımı birden çok platformu yok eder
To Top