Google TPU'yu derinlemesine açıklıyor: İlkeyi bir makalede anlayın ve neden GPU'yu ezdiğini öğrenin

Li Lin Shu Shi Derleme ve bitirme

Qubit Raporu | Genel Hesap QbitAI

Arama, sokak görünümü, fotoğraflar, çeviri, Google tarafından sağlanan bu hizmetlerin tümü, arkasındaki sinir ağı hesaplamasını hızlandırmak için Google'ın TPU'sunu (tensör işlemci) kullanır.

Google'ın PCB kartındaki ilk TPU'su ve TPU'nun dağıtıldığı veri merkezi

Google, TPU'yu geçen yıl piyasaya sürdü ve kısa süre önce bu çipin performansı ve mimarisi hakkında ayrıntılı bir çalışma yaptı. Basit sonuç şudur: Aynı dönemdeki CPU ve GPU ile karşılaştırıldığında TPU, 15-30 kat performans artışı ve 30-80 kat verimlilik (performans / watt) iyileştirme sağlayabilir.

Bu, Google'ın hizmetlerinin en gelişmiş sinir ağlarında büyük ölçekte çalışabileceği ve maliyetin kabul edilebilir bir düzeyde kontrol edilebileceği anlamına gelir. Aşağıdaki içerik, Google TPU'daki teknolojiyi derinlemesine yorumlayacak ve daha iyi performansın nasıl elde edileceğini tartışacaktır.

TPU'ya giden yol

2006'nın başlarında Google, sinir ağları için uygulamaya özel bir entegre devre (ASIC) oluşturmayı düşünüyordu. Bu talep, Google'ın bilgi işlem talebindeki hızlı büyümenin veri merkezi sayısının karşılanması için iki katına çıkması gerektiği anlamına gelebileceğini fark ettiği 2013 yılında daha acil hale geldi.

Genel olarak, ASIC gelişimi birkaç yıl sürer. Ancak TPU söz konusu olduğunda, tasarımdan doğrulamaya, inşaata ve veri merkezine dağıtmaya kadar yalnızca 15 ay sürüyor.

TPU ASIC, ana frekansı 700MHz ve güç tüketimi 40W olan 28nm işlem kullanılarak üretilmiştir. TPU'yu mevcut sunuculara mümkün olan en kısa sürede dağıtmak için Google, bu yongayı harici bir genişletme hızlandırıcısında paketlemeyi ve ardından kullanım için SATA sabit disk yuvasına takmayı seçti. Bu nedenle, TPU, PCIe Gen3 x16 veri yolu üzerinden ana bilgisayara bağlanır, bu da 12,5 GB / sn'lik etkili bir bant genişliği anlamına gelir.

Sinir ağı ile tahmin edin

TPU'nun tasarım fikrini açıklamak için önce sinir ağı hesaplamasını tanıtmamız gerekiyor.

Bu bir TensorFlow Playground örneğidir. Verileri etiketlerle sınıflandırmak veya eksik verileri tahmin etmek veya gelecekteki verileri çıkarmak için bir sinir ağını eğitmek için kullanılır. Çıkarım için sinir ağındaki her nöron aşağıdaki hesaplamaları yapar:

  • Sinyal gücünü temsil etmek için giriş verileri (x) ağırlık (w) ile çarpılır

  • Ürünler toplanır ve nöronun durumunu temsil eden tek değer olur

  • Nöronları düzenlemek için ReLU, Sigmoid vb. Gibi aktivasyon fonksiyonunu (f) uygulayın

Sinir ağı, giriş verilerini ağırlık matrisiyle çarpar ve aktivasyon fonksiyonunu girer

Örneğin, üç giriş verisine ve iki tam bağlı nörona sahip tek katmanlı bir sinir ağı için, iki ürün setinin toplamını elde etmek için girişi ve ağırlığı altı kez çarpmak gerekir. Bu çarpma ve toplama dizisi bir matris çarpımı olarak yazılabilir ve ardından matrisin çıktısı aktivasyon işlevi aracılığıyla daha fazla işlenir.

Daha karmaşık sinir ağı mimarilerinde, çarpım matrisi genellikle hesaplama açısından en yoğun kısımdır.

Gerçek işte kaç tane çarpma gereklidir? Temmuz 2016'da, Google ekibi gerçek iş dünyasında altı temsili sinir ağı uygulamasını araştırdı. Sonuçlar aşağıdaki tabloda gösterilmektedir:

Yukarıdaki tabloda gösterildiği gibi, her bir sinir ağındaki ağırlık sayısı 5 milyon ile 100 milyon arasında değişmektedir. Her tahmin, girdi verisinin birçok adımının ağırlık matrisi ile çarpılmasını ve aktivasyon işlevine girilmesini gerektirir.

Sonuç olarak, hesaplama miktarı çok büyük. Optimizasyonun ilk adımı olarak Google, CPU veya GPU'daki tüm matematik işlerinde 32 bit veya 16 bit kayan nokta işlemleri gerçekleştirmek yerine tamsayı işlemleri gerçekleştirmek için niceleme adı verilen bir teknik uyguladı. Bu, gerekli bellek kapasitesini ve bilgi işlem kaynaklarını azaltabilir.

Sinir ağlarında niceleme

Genel olarak konuşursak, sinir ağının tahmini 32-bit veya 16 kayan nokta hesaplama doğruluğu gerektirmez Bazı metotlarla, sinir ağı 8-bitlik bir tamsayı ile tahmin edilebilir ve uygun doğruluğu koruyabilir.

Sözde niceleme, önceden ayarlanmış minimum ve maksimum değerler arasındaki herhangi bir değeri yaklaşık olarak belirlemek için 8 bitlik tamsayılar kullanan bir optimizasyon tekniğidir.

TensorFlow'da Niceleme

Niceleme, sinir ağı tahmininin maliyetini düşürmek için güçlü bir araçtır ve bunun getirdiği bellekteki azalma, özellikle mobil ve gömülü konuşlandırmalar için çok önemlidir. Örneğin, Inception'da nicelemeyi uyguladıktan sonra, bu görüntü tanıma modeli 91MB'den 23MB'ye sıkıştırılarak dörtte üçünü başarıyla kaybedebilir.

Kayan nokta hesaplamaları yerine tamsayıların kullanılması, TPU'nun donanım boyutunu ve güç tüketimini büyük ölçüde azaltır. Bir TPU saati 65.536 adet 8 bitlik tamsayı çarpanları içerir. Bulut ortamlarında kullanılan genel kullanıma yönelik GPU'lar genellikle binlerce 32 bit kayan nokta çarpanı içerir. 8 bit doğruluk gereksinimlerini karşılayabildiği sürece, performans artışının 25 katından fazlasını sağlayabilir.

RISC, CISC ve TPU komut seti

Programlanabilirlik, TPU'nun bir diğer önemli tasarım hedefidir. TPU, belirli türde bir sinir ağını çalıştırmak için değil, birçok farklı model türünü hızlandırmak için tasarlandı.

Çoğu çağdaş CPU, azaltılmış bir komut seti (RISC) benimsemiştir. Ancak Google, daha karmaşık görevleri çalıştırmaya odaklanan TPU komut setinin temeli olarak karmaşık komut kümesini (CISC) seçti.

TPU'nun yapı şemasına bir göz atalım.

TPU, aşağıdaki bilgi işlem kaynaklarını içerir:

  • Matris Çarpma Birimi (MUX): 65,5368-bit çarpma ve matris hesaplamalarını çalıştırmak için toplama birimleri

  • Birleşik arabellek (UB): Kayıt olarak çalışan 24 MB kapasiteli SRAM

  • Aktivasyon ünitesi (AU): donanım bağlantısı için aktivasyon fonksiyonu

Hesaplama için MUX, UB ve AU'yu kontrol etmek için Google, sinir ağı çıkarımı için özel olarak tasarlanmış bir düzineden fazla üst düzey talimat tanımlamıştır. İşte beş örnek.

Kısacası, TPU tasarımı sinir ağı hesaplamasının özünü içerir ve çeşitli sinir ağı modelleri için programlanabilir. Google, programlama için ayrıca TensorFlow grafiklerinden API çağrılarını TPU talimatlarına dönüştürmek için bir derleyici ve yazılım yığını oluşturdu.

TensorFlow'dan TPU'ya: Yazılım Yığını

Matris çarpım biriminin paralel hesaplanması

Tipik bir RISC işlemcisi, çarpma veya toplama gibi basit hesaplamalar için talimatlar sağlar. Bu şeylere skaler işlemciler denir çünkü her komut tek bir işlemi, yani skaler işlemi işler.

CPU, gigahertz'de saat hızına sahip olsa bile, bir dizi skaler işlem aracılığıyla büyük bir matrisin hesaplanmasının tamamlanması hala uzun zaman alıyor. Geliştirilen yöntem, aynı işlemi birden çok veri öğesi üzerinde aynı anda gerçekleştiren vektör işlemidir.

GPU'nun Akış İşlemcisi (SM), tek bir saat döngüsünde yüzlerce ila binlerce işlemi işleyebilen verimli bir vektör işlemcisidir.

TPU'ya gelince, Google, MXU'yu tek bir saat döngüsünde yüz binlerce işlemi, yani matris işlemlerini işleyebilen bir matris işlemci olarak tasarladı.

TPU'nun çekirdeği: sistolik dizi

MXU, sistolik dizi adı verilen geleneksel CPU ve GPU'dan tamamen farklı bir mimariye sahiptir. Buna "titreşim" denir çünkü bu yapıda, kalbin kan sağlamak için atmasına benzer şekilde, veri dalga dalga çip dalgasından geçer.

Şekilde gösterildiği gibi, CPU ve GPU'nun her işlemde birden çok kayda erişmesi gerekir; TPU'nun sistolik dizisi, tek bir kayıttan çoklama yaparak birden çok aritmetik mantık birimini (ALU) seri olarak birbirine bağlar. Sonuçlar okundu.

MXU'daki ağırlık dizisi matris çarpımı için optimize edilmiştir ve genel hesaplamalar için uygun değildir.

Sistolik bir dizide, giriş vektörü ağırlık matrisi ile çarpılır

Sistolik bir dizide, girdi matrisi ağırlık matrisi ile çarpılır

MXU'nun sistolik dizisi 256 × 256 = 65.536 ALU içerir; bu, TPU'nun döngü başına 65.5368 bitlik tamsayı çarpma ve eklemeyi işleyebileceği anlamına gelir.

TPU, 700 MHz gücünde çalışır, yani saniyede 65.536 × 700.000.000 = 46 × 1012 çarpma ve toplama işlemi veya saniyede matris biriminde 92 trilyon (92 × 1012) işlem yapabilir.

TPU'da MXU

CPU, GPU ve TPU döngüsü başına aritmetik işlemleri karşılaştıralım:

Döngü başına hesaplama miktarı CPU'lar birkaç CPU (vektör genişletme) on binlerce GPU on binlerce TPU yüz binlerce

Karmaşık komut seti hesaplamasına (CISC) dayanan bu matris işlem tasarımı, mükemmel bir performans-güç oranı sağlar: TPU'nun performans-güç oranı, aynı dönemin CPU'sundan 83 kat, aynı dönemin GPU'sundan 29 kat daha güçlüdür.

Minimalist deterministik tasarım

Minimalist Bu noktadan daha önce Google tarafından yayınlanan TPU makalesinin 8. sayfasında bahsedilmişti. CPU ve GPU ile karşılaştırıldığında, tek amaçlı TPU tek iş parçacıklı bir çiptir ve önbelleğe alma, dal tahmini ve çoklu işlem gibi sorunları dikkate alması gerekmez.

TPU'nun tasarımı, kalıbın plan görünümünden de görülebileceği gibi basittir:

Sarı, aritmetik birimi temsil eder; mavi, veri birimidir; yeşil, G / Ç'dir, kırmızı, kontrol mantık birimidir.

CPU ve GPU ile karşılaştırıldığında, TPU'nun kontrol birimi daha küçüktür ve tasarımı daha kolaydır. Alan, tüm kalıbın yalnızca% 2'sini kaplar ve çip üzerinde bellek ve bilgi işlem birimi için daha fazla yer bırakır. Dahası, TPU'nun boyutu diğer yongaların yalnızca yarısıdır. Silikon levha ne kadar küçükse, maliyet o kadar düşük ve verim o kadar yüksek olur.

ve Kesinlik Tek kullanımın getirdiği bir diğer avantajdır. CPU ve GPU'nun çeşitli görevlerde performans optimizasyonunu dikkate alması gerekir, bu nedenle gittikçe daha karmaşık mekanizmalar olacaktır ve yan etki, bu işlemcilerin davranışının çok öngörülemez olmasıdır.

TPU ile bir sinir ağını çalıştırmanın ve bir tahmin almanın ne kadar süreceğini kolayca tahmin edebiliyoruz.Bu şekilde, gecikmeyi sıkı bir şekilde kontrol ederken çipin iş hacminin zirveye yakın olduğu bir durumda çalışmasını sağlayabiliriz.

Örnek olarak yukarıda bahsedilen MLP0'ı ele alalım.Gecikmenin 7 milisaniye içinde kontrol edildiği durumda, TPU'nun verimi CPU ve GPU'nunkinin 15 ila 30 katıdır.

Çeşitli işlemcilerde saniyede çalıştırılabilir MLP0 tahminleri

Aşağıda TPU, CPU ve GPU'nun altı sinir ağındaki performansının bir karşılaştırması bulunmaktadır. CNN1'de TPU performansı, CPU'nun 71 katına ulaşan en şaşırtıcı performans.

sonuç olarak

Yukarıda belirtildiği gibi, TPU'nun güçlü performansının sırrı, sinir ağı çıkarımına odaklanmasıdır. Bu, niceleme seçeneklerini, CISC komut setlerini, matris işlemcileri ve minimal tasarımları mümkün kılar.

Sinir ağları, bilgi işlem modellerinin dönüşümünü yönlendiriyor. Google, önümüzdeki birkaç yıl içinde TPU'nun hızlı, akıllı ve uygun fiyatlı önemli bir çip haline geleceğini tahmin ediyor.

Orijinal Google Cloud'da yayınlandı

Yazar:

Google Cloud Kaz Sato, Personel Geliştirici Destekçisi

Cliff Young, Yazılım Mühendisi, Google Brain Yazılım Mühendisi

David Patterson, Google Brain'in Üstün Mühendisi

Bitiş

İşe Alım

Qubit, editörleri, muhabirleri, operasyonları, ürünleri ve diğer pozisyonları işe alıyor ve çalışma yeri Pekin, Zhongguancun'da bulunuyor. İlgili ayrıntılar için lütfen şu yanıtı verin: resmi hesabın diyalog arayüzünde "İşe Alım".

Bir şey daha...

Bugün AI dünyasında dikkat etmeye değer başka ne var? Yapay zeka endüstrisini ve tüm ağımızdan toplanan araştırma eğilimlerini görmek için QbitAI genel hesap diyalog arayüzünde "bugün" yanıtını verin. Yeniden doldur ~

Ortak girişim ABB'nin omurgasının soğumasını kıskanıyor, WEY hızla Çin lüks SUV'sinin en üst noktasına sıkıca oturuyor
önceki
Güney Korenin en büyük kara at oyunu bir aydan uzun süredir çevrimiçi. Avantajları nelerdir?
Sonraki
21 + 29, 19 + 24, 23 + 21 Rockets patronu kurtarıcılar boşuna hareket etmedi, bu Rockets West Decisive General!
Wang Baoshan "kesen bir deli" mi oldu? Guoan, saniyeler içinde sıcak bir büyükelçi olur! Evergrandenin eski generali kazanmaktan çok rahatladığını söyledi.
Soğuk hava güneye iner ve duman tekrar vurur "Lanyi" ciğerlerinizi kurtarmak için ne yapabilirsiniz?
Zhou Qi, Liaoning grubundaki Super 5 devlerine mi katıldı? Panik yapmayın, geçmeniz gereken 4 seviye var, son 2 seviye çok zor!
Dalian taraftarlarının zaferi ve utanç: bir taraf Süper Lig'i baş döndüren "Cui Yi tekme"! Birbirini izleyen iki şiddetli savaşçı birbirini patlatıyor
DNF ne kadar kötü? Geçtiğimiz 10 yılda insanlar pornografiyle tokatlandı, ancak yine de yılda 10 milyardan fazla öfke yaratıyorlar!
DeRozan'ın en büyük 13 dileğinden 6'sı yerine getirildi ve 3'ü umutsuz!
Yıllık etkinlik, Chongqing geçiş ücreti reformunun ayrıntılı açıklamasına bakalım
Düz başlı adam değiştirildi ve doğrudan soyunma odasına geri döndü Ka Shuai aptal Huanglian'ı yiyor mu? İki neden onu kalıcı korkulara bıraktı
PlayerUnknown's Battlegrounds inekler tek bir 17shou öldürür, 1 takım 17 klanı yok eder! Ama bir hata yüzünden tavuk yemeyi özledim
Spurs, Leonard'ı nasıl tedavi edecek? Dört kişi yanlışlıkla söylediklerini söyledi, Murray açık sözlü ve acımasızdı!
"Gong Shou Dao" yu izledikten sonra Auchan 6AT Zhidou Baojun DCT'yi izleyelim
To Top