LLM·2 dk okuma·

Apple Neural Engine'den 50 GB/s Bant Genişliğini Geri Kazanmak

Paylaş
LLMEdumints Blog

Giriş

Apple M3 işlemcisinde yer alan Apple Neural Engine (ANE), toplam ağırlık boyutu 1 MiB'nin tam katı olduğunda DRAM ağırlık akış bant genişliğini nominal 45–60 GB/s seviyelerinden 17–19 GB/s bandına düşüren bir RTL (Register-Transfer Level) donanım performans hatası barındırmaktadır. Bu donanımsal darboğaz, açık kaynaklı optimize çıkarım motoru ANEMLL bünyesinde yer alan 15 modelin 7'sini doğrudan ve olumsuz yönde etkilemektedir.

Çekirdek DMA (Kernel DMA) motorunun spekülatif önbelleğe alma (speculative prefetch) halkasındaki bu problemli yürütme yolu baypas edildiğinde elde edilen somut performans kazanımları şunlardır:

  • Llama 3.2 1B: Modelin token üretim hızı saniyede 10.0'dan 24.3 token/sn seviyesine çıkmış; DRAM bant genişliği kullanımı 24.7'den 60.0 GB/s değerine fırlamıştır.
  • Qwen3-8B: Token üretim hızı 1.36'dan 2.97 token/sn seviyesine ulaşırken, DRAM bant genişliği tüketimi 22.4'ten 48.7 GB/s değerine yükselmiştir.

Keşif

Tekil token üretimi (single token decode) sırasındaki ağırlık akışı $X[1, D] \times W[D, N] = Y[1, N]$ matris çarpımı üzerinden profillendiğinde çarpıcı bir anormallik gözlemlenmiştir. $N=4096$ sabit tutulduğunda, $D=1536$ boyutunun, Llama 3.2 modelinin varsayılan tensör boyutu olan $D=2048$'e kıyasla neredeyse 3 kat daha hızlı çalıştığı (yaklaşık 310 µs'ye karşılık 995 µs medyan gecikme) tespit edilmiştir.

$D=2048$ parametresi etrafında ve genelinde gerçekleştirilen analiz bulguları şunları ortaya koymuştur:

  • Sert Bant Genişliği Kaybı: $D=2016$ değerinde 44.5 GB/s olan aktarım hızı, $D=2048$ değerinde 27.57 GB/s (%61.96) düşüşle 16.93 GB/s seviyesine çakılmaktadır.
  • Kontrollü Test Ortamı: Deneyler M3 Air cihazında, sabit termal ve yük koşullarında 40 bağımsız koşu ile yinelenmiş; ANE register düzeyinde yalnızca DMA boyutu ve taban adreslerinin değiştiği doğrulanmıştır.
  • FFT ve Rezonans Analizi: 2.747 gözlem ve 67 farklı $D$ değeri üzerinden yapılan Fourier dönüşümü (FFT), bellek denetleyicisinin 2048 dalga boyunda baskın bir harmonik çöküş (dip) yaşadığını göstermiştir.
  • Kredi Yetersizliği Rejimi: Bu durum donanımsal bir doğruluk (correctness) hatası değildir; DMA aktarımı hatasız tamamlanmaktadır. Ancak 2048'in katlarındaki istekler donanımda "kredi yetersizliği" (credit-starved) rejimine itilmekte ve veri akışı ~256 satır boyunca kilitlenmektedir.

Yazılım Geliştirme ve Öğrenme Çıkarımları

  • Donanım Uyumlu Tensör Boyutlandırma: Uç birimlerde (edge) LLM modelleri çalıştırırken mimari katman boyutlarının donanım bellek denetleyicisi sınırlarıyla çakışmamasına dikkat edilmelidir.
  • Stratejik Dolgulama (Padding): 2048 veya 1 MiB katlarındaki tensörlere küçük dolgular (padding) eklemek veya prefetch mekanizmasını düzenlemek, donanım kaynaklı %60'lık hız kaybını anında telafi edebilmektedir.

Orijinal kaynağa buradan ulaşabilirsiniz.


Bu konuyu derinlemesine öğrenmek isterseniz: Edge Runtime ve Production Optimizasyonu modülüne göz atın.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →