AI'nın hızlandırılması için ASIC kullanımı nasıl çalışır?


9

Biz okuyabilirsiniz Vikipedi sayfasından Google AI hızlandırmak için yardımcı olan bir özel ASIC makine öğrenme için çip ve TensorFlow için özel inşa ettiğini.

ASIC yongaları, devresini değiştirme yeteneği olmadan belirli bir kullanım için özel olarak özelleştirildiğinden, çağrılan bazı sabit algoritmalar olmalıdır.

Peki algoritması değiştirilemezse, ASIC yongaları kullanarak AI'nin hızlanması tam olarak nasıl çalışır? Hangi kısmı tam olarak hızlanıyor?


1
Fark ettiğim ana akım AI tekniği algoritmanın değiştirilmesini gerektirmiyor , ancak çoğu veri değiştirme yeteneğine bağlı (bağlantı güçlü, nüfus üyeleri) vb.
NietzscheanAI

Yani ağ durumu gibi tek dinamik bölüm bazı flash bellek veya sürücüde tutulur?
kenorb

Yanıtlar:


4

Tensör işlemleri

Çoğu ML uygulamasındaki ana çalışma, bir dizi (çok büyük) tensör işlemidir, örneğin matris çarpımı. Sen yapabilirsin o bir ASIC kolayca ve tüm diğer algoritmalar sadece bunun üstüne çalıştırabilirsiniz.


1
Önemli bir nokta, TPU'nun CPU tarafından sunulan daha geniş çarpma işleminden çok daha verimli bir şekilde uygulanabilen 8 bit çarpma kullanmasıdır. Böyle düşük bir hassasiyet yeterlidir ve bu tür binlerce çarpanın tek bir yonga üzerinde paketlenmesine izin verir.
maaartinus

3

Bence algoritma çok az değişti, ancak gerekli donanım kemiğe kesildi.

Veri geçiş işlemlerinin sayısı kadar geçit geçişlerinin sayısı da azalır (belki de şamandıra ops ve kesinlik de), böylece hem güç hem de çalışma süresi tasarrufu sağlanır. Google, TPU'larının aynı işi yapmak için 10 kat maliyet tasarrufu sağladığını öne sürüyor.

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html


1

ASIC - Uygulamaya Özel IC anlamına gelir. Temelde HDL'de bir çip tasarlamak için programlar yazıyorsunuz . Benim fikrimi açıklamak için modern bilgisayarların nasıl çalıştığına dair örnekler alacağım:

  • CPU'lar - CPU'lar temel olarak birçok yardımcı IC'nin belirli görevleri yerine getirdiği bir mikroişlemcidir . Bir mikroişlemcide, yalnızca hesaplamaların yapıldığı ve yalnızca akümülatörde depolanan değerlerin depolandığı bir değerin saklanması gereken Akümülatör adı verilen tek bir Aritmetik İşlem birimi (oluşturulmuş terim) vardır. Bu nedenle, her talimat, her işlem, her R / W işlemi akümülatör aracılığıyla yapılmalıdır (bu nedenle, günümüzde süreç rafine edilmiş ve akümülatör gerektirmeyebilir, ancak bir dosyadan bir cihaza yazdığınızda eski bilgisayarlar donmuştu. özellikle DMA arasına girmek). Şimdi ML algoritmalarında, kolayca paralelleştirilebilen matris çarpımlarını gerçekleştirmeniz gerekiyor, ancak bizde sadece tek bir işlem birimimiz var ve böylece GPU'lar geldi.
  • GPU'lar - GPU'ların 100 işlem birimi vardır, ancak CPU'nun çok amaçlı olanaklarından yoksundurlar. Yani paralelleştirilebilir hesaplamalar için iyidirler. Matris çoklu işleminde üst üste binen bellek olmadığından (belleğin aynı kısmı 2 işlem tarafından işlenir), GPU'lar çok iyi çalışır. GPU çok işlevli olmadığından, ancak bir CPU'nun belleğe veri beslemesi kadar hızlı çalışır.
  • ASIC - ASIC, ona vermek istediğiniz herhangi bir bellek miktarına sahip bir GPU, CPU veya tasarım işlemcisi olabilir. Kendi özel ML işlemcinizi tasarlamak, ASIC üzerinde bir işlemci tasarlamak istediğinizi varsayalım. 256 bit FP numarası mı istiyorsunuz? 256 bit işlemci oluşturun. Özetlemenin hızlı olmasını ister misin? Paralel toplayıcıyı geleneksel işlemcilerden daha fazla sayıda bite mi uygular? İstediğiniznÇekirdek sayısı? Sorun değil. Farklı işlem birimlerinden farklı yerlere veri akışını tanımlamak mı istiyorsunuz? Bunu yapabilirsin. Ayrıca dikkatli bir planlama ile ASIC alanı vs güç vs hız arasında bir denge elde edebilirsiniz. Tek sorun, tüm bunlar için kendi standartlarınızı oluşturmanız gerektiğidir. Genellikle pim sayısı ve işlevselliği, kayan nokta gösterimi için IEEE 754 standardı, vb. Gibi birçok deneme ve hatadan sonra ortaya çıkan işlemcilerin tasarımında iyi tanımlanmış bazı standartlar izlenir. Yani tüm bunların üstesinden gelebilirseniz, kolayca kendi ASIC'inizi oluşturabilirsiniz.

Google'ın TPU'larıyla ne yaptığını bilmiyorum ama görünüşe göre eldeki gereksinimlere bağlı olarak 8 bit çekirdeği için bir çeşit Integer ve FP standardı tasarladılar. Muhtemelen güç, alan ve hız hususları için ASIC üzerinde uyguluyorlar.


0

Düşük hassasiyet, Convo ve FC katmanlarında yüksek paralellik hesaplaması sağlar. CPU ve GPU sabit mimarisi, ancak ASIC / FPGA sinir ağı mimarisine dayanarak tasarlanabilir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.