AI Acceleration için FPGA Mimarisini Anlamak
Makine-Programlanabilir kapı Dizileri (FPGA), yapılandırma yoluyla donanım açıklama dillerinin kullanıldığı tümleşik devreler (ASICs) tarafından, fabrikada sabitlenmiş, FPGA, bu donanım organizasyonlarının tam olarak yapılandırılması için donanım açıklama dil işleme modellerini kullanarak, modern yüksek çözünürlükte (N) ile birlikte, yüksek çözünürlükte bulunan modern yüksek çözünürlükte (HLS) araçları ile doğrudan bağlantı kurmasını sağlar.
Temel bina blokları, aynı ölülere yönelik yüksek hızlı transceiversiyonlar için göz ardı edilir ve bu heterojen mimari, hem yeniden yapılandırılabilir bir hızlandırıcı hem de sistem kontrolörü için tek bir FPGA'nın, kenar dağıtımlarında birden çok ayrı bileşene ihtiyacı azaltır. NLP iş yükleri için, aynı zamanda ağlayan çipler aynı şekilde ağlayarak ağlatma ve yönlendirme protokolleri de yönetebilirsiniz.
Neden NLP Workloads Excel
Doğal dil işleme büyük paralellik ve öngörülebilir gerçek zamanlı yanıtlayıcılığı talep eder, özellikle tokenizasyon, dizi etiketi ve dönüştürücü tabanlı inference. Geleneksel CPUler, matrislerin hacmi ile mücadele eder ve özellikle NLP'ye uygun hale getirirken, bellek bant genişliği şişeleri vurup bu boşluğu büyük gücü tüketir. FPGAs, bu boşluğu mimarların verileri en aza indirmek için verileri en aza indirmek ve hesaplama birimleri sürekli olarak besler.
- [FONT:0]Fine-Grateed Paralellik: FPGAs, aynı anda bir cümlenin farklı bölgelerinde veya dizilerin farklı bölümleri üzerinde çalışan yüzlerce küçük aritik birimlerini anlık olarak genişletebilir.
- [FONT:0)Müşteri Hierarchies:[Dönetici:[Döneticileri) Tüm bu yerelleştirilmiş depolama, geleneksel mimarileri gömmek için tüm donanıma ve UltraRAM'a bağlı olarak, genel notlar veya anahtar / değerli önbellekleri, büyük ölçüde bellek erişimlerini azaltmak.
- [FONT:0)Deterministic Latency:[Dönetici: 0,8] Çünkü mantık donanımda tamamen uygulanır, gecikme gecikme süresi talep yüküne bakılmaksızın tutarlı kalır - üretim sohbetbotları ve gerçek zamanlı transkriptiyonlar için kritik bir şekildedir.
- [FONT:0)Power Verimliliği: [Döneticiler için ağırlıkta bir bellek için uygun hale getirmek, FPGA genellikle bu verimliliğin kullanılmaması için 2-5x tarafından bir GPU oluşturur.
Son gelişmeler FPGA-akceleratedFLT:0)BERT-base), uzun süre gecikmeli cihazlara geçiş yapmadan sub-2ms latency elde etmek için, [[Ücretsiz Alveo U280).
Core NLP Primitives
FPGA'ların NLP'yi nasıl hızlandırdığını anlamak için, bu özel görevleri için tipik boru hattını bozmaya yardımcı olur.Her biri özel donanım bloklarına haritalanabilir ve bu haritalar FPGA'ların neden genel amaçlı işlemciler ortaya çıkarır.
Hediyeleme ve Preprocessing
Bir model metni görmeden önce, giriş dizeleri, sabitleştirilmiş ve tam olarak kimliklere dönüştürülmelidir. Token tolenization is traditional CPU-bound, but an FPGA can implement a high- speed state machine (FSM) that parallelizes Unicode normalizasyon ve kelime arama.For large-scale serve systems handle million of query per second, moving tokenization tokenization tokenization tokenization tokenating tokens process multiple characters per hour cycle using comp paralleler.For large-scale service systems uses tokenization tokenization tokenization tokenization tokenization to the 10 GB
FSM yaklaşımı, Byte-Pair Encoding (BPE) ve WordPiece gibi alt kelime algoritmalarına genişletilir. Bu algoritmaları tekrarlanan sürüme, en sık çiftleri birleştirmek için girişten geçer, donanımda boru hattını uygularken, bir önceki kuyrukta bir optimizasyon işlemine izin verir.
Dörekli Bakarlar
Modern NLP modellerine ait tablolar milyonlarca parametre içerebilir.DRAM'dan bu vektörleri tek bir döngüde toplayabilir, daha sonraki hesaplama birimlerini tezgahsız bir şekilde beslemektedir. Bu bankalı mimari, zaman içinde %90'dan fazla çift-port anılarını oluşturmak için bir caching katmanı yaratır.
Seslendirme noktaları üzerinde dolu kelime boyutları için, FPGA'lar doğrudan donanımda uygulanan yedekleme şemalarını uygularlar.Bu yaklaşım, ortalama 12 nanometre veya daha fazla vocabularyo için bile geçerlidir.
Dikkat Mechanisms
Alttalı modeller, sabit olmayan bir şekilde hafızaya girer çünkü bilgisayar QK^T softmax puanlarını uzun diziler üzerinde gerçekleştirmek için. FPGA, özel devreler, bir akış modadaki dikkat puanlarını hesaplamak, yerel tamponlardan gelen önemli vektörleri sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık bir işlem elemanların (PEs) geri çekilmesi için PEs'e yakın tutar.
Yumuşakmax işlevinin kendisi, seri büyüklüğü boyunca bir boru hattı azaltımı ağacının tamamının tamamının sabitleştirilmesi ve değiştirilmesini gerektirir. FPGAs, uzun N. uzun diziler ve hesaplamalar için bir parça lineer bir kesme ağacının tam yüzücülerden kaçınır, bu donanım-akılış maliyetinin tam olarak 10-20x olması gerekir.
Katman Normalleştirme ve Aktivasyon Fonksiyonlar
GELU (Gaussian Hata Linear Unit) veya ReLU gibi normalleştirme ve aktivasyon işlevleri, her alt katmanın matris motorundan sonra ortaya çıkıyor. Bu füzyon, onlarca katmandaki bu küçük gecikmeleri azaltmak, normalleştirme ve aktivasyon işlemleri doğrudan hesaplama hattına girebilir, onları matris motorundan çıkarlar.
GELU için, hata fonksiyonunu içeren yanlış (x), FPGA'lar, her tokenin gizli durumlarının yalnızca yüzde 0.1'ini gerektiren rasyonel bir yaklaşımla ve bir ek olarak, doğru matematiksel değeri kullanarak, hesaplama boru hatlarıyla normalleşmeye kadar iki yönlü akış mimarisini kullanır.
FPGA Fabric'e Transformer Modelleri Haritalama
Dönüşüm mimarisi neredeyse tüm modern NLP modellerinin temelidir, BERT'den GPT varyantlarına kadar. FPGA'da tam bir dönüştürücüyü dikkatli bir tasarım bölmesi gerektirir. Yaygın olarak, encoder veya decoder yığını bir fiziksel işleme elemanının bir veya daha fazla model tabakaları idare etmesi için kayıt dışıdır.
- [FONT:0)Layer Pipelining:[Dönetici:[Dönetici:0)[Dönetici:0)Layer Pipelining:[Dönetici: 0,4x) Bir tabakanın önümüzdeki 12-24 katmanlarla model için eşit işlem için tamamlaması için dört kattan fazla beklemesi gerekir.
- [FONT=0)Batch Interleaving:[Dönetici:[Dönetici:0)Batch Interleaving:[Dönetici:0)Batch Interleaving:[Döneticileri, farklı kullanıcılardan gelen boru hatlarıyla birlikte, FPGA, değişken uzunluktaki girişlerle bile tüm arithmetic birimlerini kullanmalarını sağlamak için inter-toplanır.
- [FONT:0]Weight Stationarity:[Dönetici:[Dönetici:0)Weight Stationarity:[Dönetici:[Dönetici: 0) Model parametreleri bir kez yerel tamponlar başlangıçta yükleniyor ve tüm hizmet seansı için orada tuttu. Bu, her inference, trafik hafızasını dramatik bir şekilde kesmeden kaçınıyor.
- [FONT:0]Sparsity Exploitation:[Dönetici: 0D) Prud modeller blok sparsitesi gibi birçok sıfır değerli ağırlık ve aktivasyon içerir. FPGA-SYON mantıkları, basit sıfır devreleri kullanarak ilişkili olarak atılır, hızlara göre hızlanır.
Microsoft, gerçek zamanlı Bing arama ve Azure bilişsel hizmetleri için üretimde FPGA tabanlı modeller de dahil olmak üzere küresel veri merkezi filosuna karşı FPGA'lar tarafından dağıtılan projedir.
FPGA, GPU ve NLP için ASIC ile Karşılaştırma
NLP inference için bir hızlandırıcı seçerken, takımlar genellikle üç seçeneği tartır. Her biri farklı dağıtım senaryoları için uygun hale getiren ayrı ticaret noktalarına sahiptir.
FPGA vs. GPU
GPU'lar, büyük bir brute-force hesaplamayı ve olgun bir yazılım ekosistemi (CUDA, cuDNN, TensorRT) Büyük dil modellerini ve toplu sorguları ve katı kuyruk-latency gereksinimleri için, çünkü bunlar savaşlarda iş yapıyor ve daha tutarlı bir şekilde baskı yapıyor. FPGA'lar genellikle kompakt modeller üzerinde% 60-80 daha az enerji harcıyorlar.
Çok katmanlı hizmet senaryolarında, GPUs, paylaşılan hafıza genişliği ve hesap kaynakları nedeniyle eş zamanlı iş yükleri arasında müdahale ile mücadele ediyor. FPGAs partition logic into separate account and processing resources, her biri onants arasında gerçek donanım seviyesinde izolasyon sağlıyor. Bu, NLP ivmesini yönetilen bir hizmet olarak sunuyor, onants arasındaki tutarlı performans önemli bir SLA gereksinimidir.
FPGA vs. ASIC
Özel ASICs (Google’ın radyatörü gibi) belirli bir model mimarisi için nihai verimlilik ve hız sunuyor. Ancak programlanabilirlik yoksundur: Model değişiklikleri veya yeni bir operatör ortaya çıkarsa, ASIC bir performans ve eski çeviklik sağlar. FPGAs, Deep Learning[değiştirmeler için yeniden yapılandırılabilir veya tamamen farklı model aileleri destekler.)
ASIC'ler için sahip olmanın toplam maliyeti, model peyzajında mimari değişikliklerin riski için dikkate alınmalıdır. LSTM'den gelen değişim, ancak bir ASIC maskesini haklı çıkarmak için, FPGA'lar birçok özel ASIC'ler geri dönüş teklif etti.
Pratik Uygulama İş Akışı
Bir FPGA'yı bir NLP hattına entegre etmek, fiş ve oyun değildir. Sistemli bir yaklaşım başarı sağlar. Aşağıdaki iş akışı sayısız üretim dağıtımları aracılığıyla rafine edilmiştir:
- [FONT:0) Model Seçimi ve Sayılama:[Dönetici:[Dönetici:0) Model seçimi ve Sayısal maliyetle ilgili ölçümler için, FPGA'nın sabit hafızasını daraltırken, ölçümleme ve ölçümleme için doğrulayıcılar için doğruyu kontrol edin.In INT4 niceleştirme, gruptaki ölçüm ve doğrulama gibi teknikler, FP32 temel modelinin% 0.5'i 7B parametrelerine kadar artırmak için ölçümler.
- [FONT=0)Software-Hardware Partition: Boru hattının hangi bölümlerinin ev sahibi CPU'ya (örneğin, önceden/post-işlem, nadir işlemler) ve hangi FPGA (e.g., ana model grafiği) ortak bölmeler tamamen cihazda çalıştırılan operasyon.
- [FONT=0)Accelerator Design:[Dönetici 1) HLS aletlerini C/C++'daki hesaplama birimlerini tanımlamak için bir API'yi kullanın. Bu araçlar sentez RTL'yi yüksek seviyeli koddan sentezleyin, gelişim süresini çarpıcı bir şekilde azaltır. Anahtar optimizasyonlar, 1'in paralellik aralıklarını ortaya çıkarmak için kayıt dışı bırakmak için döngüler ve paralel hafıza erişim için bölme yapmak için borular içerir.
- [FONT:0]Memory Optimizasyonları: [Dönetici:[Dönetici:0)Putation|kullama/kullama) ile sabitleme modellerine geçiş yapmak, BRAM'da uygun bloklara girmek için bir strateji uygulamak, en iyi karo büyüklüğü, hesaplama- bant genişliği oranına bağlıdır ve çatı kapasitesi ile bulunur.
- [FONT:0)Host Integration:[Dönetici:[Dönetici:0) Bir sürücü yaz veya XRT (Xilinx Runtime) veri hareketini ev sahibi ve FPGA arasında yönetmek için bir iş akışı sağlamak. API'nin hem senkronizasyon modlarını desteklemesi gerekir, böylece en üst düzeye kadar işlemden önce işlemden önce kayıt işlemini üst üste tutma iznine izin verin.
- [FONT=0]Validation and Tuning: Gerçek iş yükleri ile test edilen testler, geç saat boyunca ve güçle ilgili ölçümler yapabilmeleri için test edilenler için, HLS pragmas (loop unrolling, borulining, partitioning) üzerinde durmaksızın, performans hedeflerini karşılamak için.
Son zamanlarda bir demoda, bir mühendislik ekibi hızlandırdı:0)Mistral-7B[DDK 1) Intel Çevik 7 FPGA kullanarak, 25'ten az bir güçle ikinci olarak 12 jeton elde edin. Ekip, hafıza bant genişliği gerekliliklerini standart bir dikkat faktörüyle azaltan bir grup dikkat mekanizması uyguladı.
Gerçek Zaman NLP Vakaları Kullanıyor
FPGA ivme, her milisaniyenin ve güç bütçelerinin sıkı olduğu senaryolarda parlar.Deterministic latency, programlanabilirlik ve güç verimliliği diğer hızlandırıcılarla pratik olacak uygulamalar açar:
- [FONT:0)Voice Asistanlar: [Dönetici: 0,0]Sekiz:0)Sürekli otomatik konuşma tanıma (ASR) Aynı FPGA bulut yuvarlak gezilerini ortadan kaldırır, mahremiyet ve duyarlılığı geliştirir. Modern FPGAs, akustik model, dil modeli ve 50ms'in altında bir güç bütçesiyle birlikte, her zaman güçlü cihazlara ses arayüzleri ortadan kaldırır.
- [FONTNT:0] ⁇ Sentiment Analizi: [Döneticiler Yüksek frekanslı ticaret platformları, FPGA-accelerated duygu sınıflandırıcıları kullanarak gerçek zamanlı olarak, bir başlıkta mikrosaniyeler içinde ticaret yapan, eleştireldir: 100 mikrosaniyenin var olması, kârlı bir ticaret ve kaçırılmış bir fırsat arasındaki farkı anlamına gelebilir.
- [FONT:0)Content Moderation:[Dönetici:[Dönetici: 0 ) Akışkanlık platformları filtre toksik yorumlar ve görüntüler tek bir FPGA kartında bir NLP ve CV boru hattı kullanarak, bulut maliyetleri olmadan ikinci olarak milyonlarca mesaj taramak. FPGA'nın yeniden yapılandırılabilirliği, yeni kötüye kullanım biçimleri olarak donanımda güncellenme kuralların güncelleştirilmesine olanak sağlar.
- [FONT:0)Edge AI Gateways: [Dönetici IoT'de, düşük güç olan kenar cihazları yerel olarak bakım günlüklerini ve teknisyenlerini analiz ederken, veri merkezine sürekli bir bağlantı kurmadan gelen anomalileri düzeltin.Bu ağ geçidi süreci günde 10W'den daha az tasarruflu bilgi edinin.
- [FONT:0)Real-Time Translation:[Dönetici:[Dönetici:0)|Dönemli sinir makinesi çeviri sistemleri süreci ses veya metin alt-100ms geçncy ile akış, dil çiftliği ile doğal konuşma imkanı sağlar ve alan, tamamen çevrimdışı çalışırken bulut hizmetlerine eşdeğer çeviri kalitesi ile eşdeğer.
Bu uygulamalardan her biri için, bulut hizmetlerindeki FPGA örneklerinin artan erişilebilirliği, ekiplerin ön donanım yatırımı olmadan FPGA'yı cazip bir alternatif haline getirir.
Overcoming Development Complexity
FPGA kabul edilmesi için en sık verilen engellerden biri, donanım geliştirmenin algılanmasıdır.Ancak, HDL'lerin tek seçenek olduğu zaman, manzara dramatik bir şekilde değişti. Ekosistem, donanım geçmişi olan bir yazılım mühendisinin bir sprint döngüsü içinde FPGA hızlandırıcısını dağıtması için olgunlaşmıştır:
- [FONT=0) Yüksek Lisans Synthesis (HLS): [Dönetici HLS ve Intel HLS Compiler, geliştiricilerin C++'da özellikle pragmas ile birlikte yazmalarına izin verir.
- [FONT:0)Domain-Specific Frameworks: ⁇ gibi projeler )Vitis AI), FPGA'nın tam olarak geliştirilmiş standart modellerini uygulama geliştiricisine sunmak.
- [FONT:0)Open-Kaynak Donanım Toplulukları: [Dönetici: 0,4][/FONT=0) PUFO platformu ve FuseSoC ekosistemi, birçok FPGA ailesi üzerinde yeniden kullanılabilir, açık kaynaklı sinir ağ hızlandırılabilir. Bu topluluk gelişmiş IP blokları bir inceleme geçiriyor ve birçok donanım platformuyla test ediliyor, rakipleri ticari tekliflerin reklam tekliflerinin güvenilirliğini sağlıyor.
- [FONT:0)Cloud-Based FPGA Instances:[Dönetici:0) Amazon EC2 F1 ve Azure NP serisi, geliştiricilerin satın alma donanımı olmadan FPGA tasarımlarını test etmelerine izin verir ve ekiplerin maliyetinin hızla azaltılmasına olanak sağlar.
Bu soyutlamalar olgun olarak, yazılım mühendisleri ve donanım tasarımcıları arasındaki yetenek boşluğu, birçok modern NLP projelerinde, tüm FPGA uygulamaları Python-to-RTL akışlarını kullanarak tamamen yazılım odaklı ML mühendisleri tarafından yapılır. MLIR ve CIRCT derleyici altyapı artışları, yüksek seviyeli model açıklamalarından optimize edilen haritalamaları daha da azaltmak için vaat ediyor.
Vaka Çalışması: FPGA-Accelerated BERT for Question Answering
FPGA NLP Hızlandırması önemli bir örnek, büyük bir bulut sağlayıcısında bir takımdan geliyor. Takım, 3ms altından az doğruluk kaybı için, ve en yüksek çözünürlükteki bir QA modeli ile encoder'i 2048 çoğaltmak için model belirledi.
Proje, daha sonraki FPGA NLP dağıtımlarını bildiren birkaç ders vurguladı:
- [FONT:0)Quantization, kanal dışı faktörlere yol açan, bu iş yükü için en iyi doğrulayıcı ticarete sahip olan eksperformasyondur.
- [FONT:0) Balanced Pipelining Kaçırma: Takım tek bir aşamanın şişen olmasını sağlamak için katmanın sayısını ayarladı. FPGA kaynak kullanımı raporları, DSP dilimleri ve katmanların arasında yeniden dengelendi.
- [FONT=0]Host-FPGA İletişim Maddeleri: PCIe Gen4'ü yüksek seviyeli bir DMA motoru ile kullanan giriş jetonları FPGA'ya talep edilen 5μs altında FPGA'ye beslendi.
- [FONT:0) Attention Head Pruning Gereksinimler Bakım: Pruning kafaları, daha derin katmanlarda doğruluk bozulmasına neden oldu. Bir katman-aware pruning stratejisi daha sonraki katmanlarda daha fazla kafaları korudu, tam modelin% 0'ı içinde doğruluk tutarken daha fazla titiz bir oran elde etti.
Bu tür vaka çalışmaları şimdi Aurora veya GTH paylaşım ara bağlantılarının tasarımı ile Llama ve Falcon gibi modelleri on milyarlarca parametre ile ele almayı amaçlayan bir sonraki nesil FPGA tabanlı NLP hızlandırıcılarının tasarımını etkiler.
Future Yol Tarifi
Önümüzdeki birkaç trend, FPGA'ların NLP görevleri için nasıl kullanıldığını şekillendirecektir. Bu gelişmeler, FPGA'ları benzersiz bir şekilde koruyan GPU'larla kalan performans boşluğu kapatma sözü verir:
- [FONT:0)Chiplet-Based FPGAs:[Dönetici: 0 ) Yeni cihazlar, XIOT'ı zorlanmış işlemci çekirdeği ve AI motorlarıyla birleştirmektedir, Xilinx Versal ACAP. Bu çipler, farklı hassas formatlar ve veri akış modelleri için programlanabilir mantık bırakarak donanıma sahiptir.
- [FONT:0]Near-Memory Computing: Tüm verileri merkezi bir hesaplama ünitesine taşımayı tercih etmek yerine, gelecekte HBM yığınlarında tüketilen toplam enerji miktarındaki küçük işleme elemanlarını ortadan kaldırır.
- [FONT:0) Model-Hardware Co-Design: [Dönetici: [Dönetici Mimarlık Arama (NAS) araçları, belirli FPGA kaynakları üzerinde modellemek, model hiperparametreleri ve donanım yapılandırmalarını araştırmak için başlangıçtır. Bayesian optimizasyon veya güçlendirme öğrenimi, Geçincil'in Sınırını bulur, doğruluk ve kaynak kullanımını önemli ölçüde azaltır.
- [FONT:0]Federated Learning at the Edge:) Çünkü FPGAs yeniden programlanabilir, merkezi bir koordinatör, yeni donanım olmadan model güncellemelerini mümkün kılar, gizlilik izni NLP için güçlü bir şekilde.
- [FONT:0)Kuantum NLP ile Integration:[Dönetici][Dönetici][FONT:0) FPGA tabanlı klasik hızlandırıcılar, karma NLP görevleri için kuantum işleme birimleri ile FPGA'nın ele geçirilmesi ve FPGA'nın farklılığı ele alırken yerleşmesi gerekir. FPGA FPGA'nın rolü klasik bir ortak işleme cihazı olarak FPGA-tavişmanlıklıdır, çünkü FPGA'nin pratik olarak kontrol edilmesi gerekir.
- [FONTcal Interconnects for FPGA Clusters: [Döneticileri, FPGA-to-FPGA iletişimini küçük enerji ile düşük enerjili yüksek ikinci hızlarda paylaşmaları için etkinleştirir.Bu, onlarca FPGA'nın üzerinde büyük dil modellerini dağıtmayı pratik hale getirecektir, optik bağlantıda bant genişliğinin dikkat puanlarını ve cihazlar arasındaki gizli durumları paylaşması gerekir.
Dil modelleri büyümeye devam ettikçe, endüstri, bir boyutlu-fitlerin-tüm GPU'ların tüm NLP uygulamaları spektrumlarına uygun şekilde hizmet edemeyeceğini kabul eder. FPGAs, ASICs'e göre bir uzlaşma olarak görülen bir alan olarak kabul edilir ve her birkaç ay içinde sanat değişikliklerini hızla gelişmektedir.
NLP uygulayıcıları için, şimdi FPGA ivmesini keşfetmenin harika bir zamanı. Makine öğrenme mühendisinin aracıkitle, bulut erişilebilirliği ve büyüyen bir depo havuzlu giriş asla daha düşük olmamıştı.Bir sonraki dil modellerine algoritma ile yolculuk artık standart bir yetenek haline geliyor - makine öğrenimi mühendisinin aracı olan FPGA'ları benimsemekte, takımlar gerçek zamanlı NLP deneyimlerini teslim edebilir, ancak bir sonraki teknoloji için hızlı, verimli ve hazır hale getirirler.