Rockchip RK3588 NPU, kağıt üzerinde 6 TOPS performans vaat etse de, Orange Pi 5 gibi kenar cihazlarda modern yapay zeka modellerini, özellikle de Vision Transformer'ları (örn. SmolVLM), çalıştırmakta zorlanmaktadır. Mevcut rknn-toolkit2 SDK'sı eski ve öngörülebilir Evrişimsel Sinir Ağları (CNN) için optimize edildiğinden, büyük Dikkat (Attention) matrisleri üreten Vision Transformer'lar, sürücüde "REGTASK Overflow (0xe010)" gibi anlaşılması güç hatalara yol açarak derlenmeyi reddetmektedir. Bu durum, NPU'nun atıl kalmasına ve modelin CPU üzerinde yaklaşık 30 saniyede çalışmasına neden olmaktadır.Yazar, bu kısıtlamayı kabul etmeyerek, NPU'nun neden başarısız olduğunu anlamak ve tam hızda çalışmasını sağlamak amacıyla tersine mühendislik yapmaya karar vermiştir. Rockchip'in yeni rknn-llm SDK'sının Transformer'lar için özel araç zincirleri sunmasına rağmen, yazar "İlk İlkeler" yaklaşımını benimsemiş ve eski rknn-toolkit2 yığını üzerinde çalışmıştır. Amaç, kara kutu çözümler yerine, donanımın Dikkat katmanlarında neden çöktüğünü ve herhangi bir Transformer'ı kısıtlı bir kenar hızlandırıcıda çalıştırmak için evrensel mimari desenler (manuel döşeme ve grafik parçalama gibi) bulup bulamayacağını anlamaktı.Dedektiflik çalışması sırasında, Rockchip'in halka açık bir Talimat Seti Mimarisi (ISA) yayınlamaması nedeniyle, yazar sentetik ONNX grafikleri oluşturarak donanım sınırlarını test etmiştir. Bu testler sonucunda, NPU'nun vektör işlemleri için donanım tarafından uygulanan 32KB'lık bir L1 SRAM Scratchpad önbellek limitine sahip olduğu keşfedilmiştir. Derleyici, 25MB'lık bir Dikkat matrisini bu 32KB'lık alana sığdırmaya çalıştığı için sistem çöküyordu. Bu sorunu çözmek amacıyla yazar, PyTorch'ta "Nano-Tiling" adı verilen bir algoritma geliştirmiştir.
Bu çalışma, kenar cihazlardaki yapay zeka hızlandırıcılarının gizli donanım kısıtlamalarını ortaya çıkararak, modern modellerin bu platformlarda verimli bir şekilde çalıştırılması için yeni yöntemlerin kapısını aralıyor.