RK3576 NPU: Mainline Sürücüde Tek Görev Çalışıyor, Çoklusu Takılıyor
RK3576 NPU mainline sürücüsünde int8 hatası düzeltildi ama çoklu görev zinciri hâlâ takılıyor; kök neden analizi ve bulgular yayımlandı.
Rockchip RK3576'nın 6 TOPS'luk NPU'su için tek açık kaynak yol, mainline drivers/accel/rocket sürücüsü ve Mesa Teflon delege katmanıdır. Kardeş çip RK3588'de byte-hassasiyetinde çalışan bu yığın, RK3576'da tamamen sıfır çıktı üretiyordu. Kök neden analizi, int8 yeniden ölçeklendirmede donanımın beklediği Q4 yerine Q14 çarpanı üretilmesinden kaynaklanan 2^10 kat aşırı ölçeklemeyi ortaya çıkardı; düzeltmeyle tek bir int8 konvolüsyon artık CPU referansıyla byte-hassasiyetinde eşleşiyor.
Asıl bulgu ise daha derin: birden fazla görev içeren herhangi bir iş, yalnızca NPU güç alanı uyandıktan sonraki ilk görevi doğru hesaplıyor. Sonraki her görev birimleri devreye sokuyor, gerçek girdiyi DMA ile taşıyor ve sıralayıcıyı ilerletiyor, ama çarpma-toplama sonucu asla işlenmiyor (int8 için ölçüldü; fp16'nın bu duvardan kaçıp kaçmadığı henüz ölçülmedi, yalnızca mekanizma üzerinden tartışılıyor). Yanlışlama-öncelikli bir yaklaşımla dispatch grameri, tüm register yazma seti, yapılandırma geometrisi, tampon/önbellek/IOMMU durumu, saat/güç ve firmware dahil olası tüm yazılım kaynaklı nedenler tek tek elenmiş; aynı çekirdek üzerinde vendor'ın kapalı yığını ise onlarca görevi sorunsuz zincirliyor.
En güçlü destekli açıklama, register izi bırakmayan ve kara kutu incelemesinin erişemediği, güç oturumuna özgü bir kaynak olan çip-üstü CBUF -> CSC -> CMAC tüketim-kilidi mekanizması. Bağımsız bir RK3568 bring-up çalışması aynı 'devrede ama boş' duvarına ulaşırken, açık yığınlı bir RK3588 çabası aynı sürücü üzerinden çok işlemli fp16 matris çarpımı ve LLM prefill çalıştırarak beş bulguyu çapraz doğruluyor. Tam kayıt defteri, iki mainline'a taşınabilir hata ve sorunu yeniden açacak koşullar yayımlandı.