Neural Processing Unit (NPU)
Sinirsel işlem birimi (NPU), telefonlarda, bilgisayarlarda ve kameralarda kuantize edilmiş modelleri verimli şekilde çalıştıran, sinir ağı hesaplamaları için tasarlanmış bir işlemcidir.
Nöral işlem birimi (NPU), nöral ağları çalıştırmak için tasarlanmış, yonga içi bellekten beslenen büyük çarp-birikim birimi dizileri etrafında oluşturulmuş bir işlemcidir. Çoğu NPU, CPU ve GPU'nun yanında bir yonga üzerindeki sistemin içinde bulunan bloklardır; kamera, konuşma ve görü özelliklerine yönelik çıkarım işlemlerini diğer iki işlemcinin harcayacağı gücün çok küçük bir bölümüyle yürütür. Huawei'nin Kirin 970'i ve Neural Engine'i saniyede 600 milyar işlem kapasitesine sahip Apple A11 Bionic, 2017'de NPU'ları telefonlara taşıdı; bunları Qualcomm'un Hexagon NPU'su, Intel'in Aralık 2023'ten itibaren Core Ultra dizüstü işlemcilerindeki NPU'su ve AMD'nin Ryzen AI yongaları izledi. Microsoft'un Copilot+ PC'leri, saniyede 40 trilyondan fazla işlem (TOPS) gerçekleştiren bir NPU gerektirir. Bu ad veri merkezi yongalarını da kapsar: Huawei, Ascend veri merkezi hızlandırıcılarına NPU adını verir ve bunları büyük modelleri eğitmek için kullanır.
NPU'lar CPU ve GPU'lardan Nasıl Ayrılır?#
Derin öğrenme çıkarımına, öngörülebilir veriler üzerindeki matris çarpımları ve evrişimler hâkimdir; bu nedenle NPU, CPU'nun genel kod için ihtiyaç duyduğu denetim mantığının ve önbelleğin çoğundan, GPU'nun grafikler için koruduğu esneklikten vazgeçer. Bu yonga alanını sabit işlevli hesaplama dizilerine ayırır ve ağırlıklarla aktivasyonları yerel bellekte tutar, çünkü veri taşımak onu hesaplamaktan daha fazla enerji harcar. NPU'lar çoğunlukla INT8 ve FP16 gibi düşük duyarlıklı sayılarla da hesaplama yapar; bu nedenle bir modelin NPU'da çalıştırılmadan önce genellikle niceleştirilmesi ve NPU veriminin INT8 TOPS cinsinden belirtilmesi gerekir. Örneğin Google Coral Edge TPU, watt başına 2 TOPS hızında 4 TOPS gerçekleştirir.
- CPU: Her türlü kodu çalıştırır, NPU'nun desteklemediği işlemleri yürütür ve büyük matris hesaplamalarında üçü arasındaki en yavaşıdır.
- GPU: Modelleri kayan nokta biçiminde yüksek verimle eğiten ve çalıştıran programlanabilir paralel işlemcidir; güç tüketimi NPU'dan fazladır.
- TPU: Google'ın matris hızlandırıcıları ailesidir. Bulut TPU'ları veri merkezlerinde modelleri eğitir ve sunar; Edge TPU ise adı dışında her yönüyle bir NPU'dur.
- Nöromorfik yongalar: Darbeli nöral ağlardaki darbeleri işler ve olay güdümlü algılayıcılara uygundur; bu, NPU'nun yoğun matris hesaplamalarından farklı bir hesaplama modelidir.
Bir Modeli NPU'da Çalıştırma#
NPU, PyTorch veya ONNX grafiği yerine derlenmiş bir program çalıştırır. Üretici derleyicisi ağı önceden veya çalışma zamanı yüklerken dönüştürür, çoğunlukla kalibrasyon görüntüleri kullanarak INT8'e niceleştirir, genellikle girdi şeklini sabitler ve her katmanı donanıma eşler. NPU'nun desteklemediği katmanlar CPU'ya veya GPU'ya aktarılır ve her aktarımda işlemciler arasında tensörler kopyalanır:
Her geri dönüş aktarım ekler ve işlemcilerden birini diğerini bekler durumda bırakır; bu nedenle uç aygıt mimarileri evrişimler, ReLU ailesi aktivasyonları ve havuzlama gibi standart işlemleri tercih eder. ONNX Runtime, Apple Core ML, Google LiteRT ve Intel OpenVINO gibi çalışma zamanları bu bölümlemeyi yönetir ve NPU varsa onu seçer.
NPU'lar Nerelerde Kullanılır?#
Akıllı telefonlar hesaplamalı fotoğrafçılık, cihaz üzerinde konuşma tanıma, yüz tanıma ve canlı çeviri için NPU'larını kullanır; bu sayede veri gizliliği korunarak görüntüler ve ses cihazda kalır. AI PC'lerde Windows Studio Effects, video görüşmeleri için arka plan bulanıklaştırma, göz teması düzeltme ve otomatik kadrajlama işlemlerini NPU'da yürütür ve CPU ile GPU'yu serbest bırakır. Uç AI alanında Rockchip, Hailo ve DEEPX NPU'ları, ağ bağlantısı olmadan güvenlik kameralarında, dronlarda ve robotlarda nesne algılama işlemlerini yürütür.
Ultralytics YOLO26, bu NPU'ların ihtiyaç duyduğu derlenmiş biçimlere dışa aktarma modu üzerinden aktarılır. Bu biçimler arasında Intel NPU'ları için OpenVINO, Apple Neural Engine için Core ML, Qualcomm Hexagon NPU'su için QNN, Rockchip için RKNN ve Huawei Ascend için .om biçimi bulunur. Ayrıca Ascend NPU'larında da eğitim yapar; çoklu NPU eğitimi için device="npu:0" veya device="npu:0,1" kullanarak seçebilirsin.










