deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Npunlock, tersine mühendislikle bulduğu bir yol üzerinden Intel Meteor Lake NPU'larda özel C kernel'ları çalıştırıyor

Açık kaynaklı bir proje, Intel NPU'ları için eksik olan toolchain yolunu yeniden inşa ediyor; kullanıcı C kodunu derleyip Meteor Lake donanımındaki grafikler içinde çalışan SHAVE makine koduna dönüştürüyor.

Npunlock, tersine mühendislikle bulduğu bir yol üzerinden Intel Meteor Lake NPU'larda özel C kernel'ları çalıştırıyor

Npunlock adlı açık kaynaklı bir proje, Hacker News'te alışılmadık bir iddiayla ortaya çıktı: geliştiriciler Intel'in sinir işleme birimlerinde (NPU) kendi C kernel'larını yazıp çalıştırabiliyor. Windows x64 üzerinde bir Meteor Lake NPU (NPU3720) ile doğrulanan proje, donanımın desteklediği fakat Intel'in herkese açık yazılım yığınının hiçbir zaman sunmadığı bir yeteneği tersine mühendislikle ortaya çıkarıyor.

Npunlock'un doldurduğu boşluk

Intel'in Core Ultra NPU'ları, yazılım kernel'ları çalıştıran programlanabilir çekirdekler olan ACT-SHAVE işlemciler içerir. Ancak GitHub'daki proje dokümantasyonuna göre Intel'in resmi araçları yalnızca derleyicisinin zaten tanıdığı işlemlerden oluşturulan grafikleri kabul ediyor. Bir işlemin C ile yazılmış bir uygulamasını sunmak için desteklenen bir iş akışı bulunmuyor.

Npunlock bu eksik yolu yeniden inşa ediyor. Kullanıcının yazdığı C kodunu ACT-SHAVE makine koduna derliyor ve sonucu NPU grafiklerine ekliyor; çevresindeki grafik ve donanım yürütmesi için ise yine Intel'in kendi derleyicisine ve sürücüsüne dayanıyor. Proje bu yaklaşımı, bir Python betiğine gömülü eksiksiz bir FP32 GELU kernel'ı ile gösteriyor; kernel bir grafiğe yerleştiriliyor ve NumPy referansına karşı doğrulanıyor. README'deki ilginç bir ayrıntı: altta yatan MoviTools toolchain'i, math.h dahil etmeden kernel'lara çoğu geleneksel libm fonksiyonunu sunuyor — GELU örneği tanhf'ı doğrudan çağırıyor.

Toolchain'i elde etmek

SHAVE çekirdekleri için C derlemek, npunlock'un ne yeniden dağıttığı ne de indirdiği Intel/Movidius MoviTools gerektiriyor. README'ye göre, çalıştığı doğrulanmış bir paket eski bir Lenovo sürücü paketinde bulundu: Intel NPU sürücüsü 31.0.100.1688 içindeki MVC_depend payload'ı. Dokümantasyon, kullanıcıların yalnızca bu payload'ı çıkarmaları gerektiğini ve eski sürücünün kendisini kesinlikle kurmamaları ya da sürüm düşürmemeleri gerektiğini vurguluyor.

Tam gereksinim listesi şöyle: Windows x64, kurulu bir Intel NPU sürücüsüne sahip Meteor Lake / NPU3720 cihazı, Python 3.10 veya daha yenisi, kaynaktan derleme için MSVC toolchain'li CMake 3.24 veya daha yenisi ve çıkarılmış MoviTools dizini. Dikkat çekici bir şekilde, npunlock kurulu Intel sürücüsü için OpenVINO formatında IR üretse de çalışma zamanı, Python paketi ya da derleyici ön ucu olarak OpenVINO gerekmiyor.

Bugün çalışanlar

Doğrulanmış işlevler arasında kullanıcı C kodunun ACT-SHAVE makine koduna derlenmesi, Intel NPU grafikleri içinde özel kernel'ların çalıştırılması, statik yoğun FP16 tek girişli ve iki girişli kernel'lar, doğrulanmış bir FP32 tek girişli yol ve GELU ile tanhf gibi doğrusal olmayan matematik yer alıyor. Python, CLI ve yerel C API'lerinin tümü sunuluyor. 23 Eylül 2026 tarihli bir atılım sayesinde tek bir yerel grafik, bağımsız FP32-tek girişli ve FP16-ikili özel dalları yürütebiliyor; açık bir ACT-group ön kontrol adımı, derleyicinin dalları yeniden sıralamasını telafi ediyor.

Sınırlar da aynı derecede net. Destek deneysel ve yalnızca Windows x64, Meteor Lake / NPU3720, statik şekiller, uyumlu ACT taşıyıcıları ve bilinen tensor düzenleriyle sınırlı. Bağlantılı karışık hassasiyet dönüşüm grupları henüz patch yoluyla keşfedilemiyor, bu yüzden doğrulanmış karışık hassasiyet örneği bunun yerine bağımsız dallar kullanıyor. Başka hiçbir NPU nesli test edilmedi.

Linux ve daha yeni NPU'lar hâlâ açık sorular

İki hipotez umut verici ama test edilmemiş olarak işaretlenmiş durumda. NPU firmware'ı özel makine kodunu bizzat yürüttüğü için, Windows'ta oluşturulmuş yamalanmış bir NPU3720 grafiği Linux'ta değiştirilmeden çalışabilir; Linux'ta SHAVE kodu derlemek ayrıca Windows MoviTools DLL'lerini yüklemenin bir yolunu gerektirirdi. Ayrıca, daha yeni Intel NPU'ları mevcut 3720xx SHAVE imajını kabul edebilir ya da bu nesiller için eşleşen MoviTools bileşenleri eski OEM sürücü paketlerinde olabilir. Yazar, donanım doğrulama raporları, sürücü ve firmware sürüm kayıtları ile bir ana makine referans uygulamasına karşı çıktı karşılaştırmaları istiyor.

Proje Apache 2.0 lisanslı; MoviTools ve Intel/Movidius kütüphaneleri ise harici tescilli bağımlılıklar olarak kalıyor. Yazar ayrıca iskelet oluşturma, tekrarlayan uygulama işleri, dokümantasyon ve İngilizce düzenlemede yapay zekâdan yardım alındığını, tersine mühendisliğin, deneylerin ve teknik sonuçların ise uygulamalı çalışmadan geldiğini belirtiyor.

Neden önemli

Intel, Core Ultra ailesi boyunca gerçekten programlanabilir çekirdeklere sahip NPU'lar piyasaya sürdü; ancak herkese açık yığın bunları yalnızca önceden tanımlı işlemler üzerinden erişilebilen sabit işlevli hızlandırıcılar olarak ele alıyor. Npunlock, silikonun satıcının açığa çıkardığından fazlasını yapabileceğini gösteriyor ve araştırmacılara, zaten sahip oldukları donanımda özel operatörler, hassasiyet deneyleri ve performans keşfi için çalışan bir yol sunuyor.

Gerçekçi olmak gerekiyor: tek bir NPU nesliyle, tek bir işletim sistemiyle, statik şekillerle ve eski bir sürücü paketinden çıkarılmış bir derleyiciyle sınırlı deneysel bir araç, üretim altyapısı değildir. Bugünkü değeri bir yetenek kanıtı ve bir temel olarak — ve bir davet olarak. Linux ve daha yeni NPU hipotezleri doğrulanırsa, özel NPU kernel'ları Intel'in şimdiye kadar sağladığından çok daha geniş kesimlerce erişilebilir hale gelebilir.

  • #intel-npu
  • #open-source
  • #reverse-engineering
  • #kernels
  • #developer-tools

İlgili yazılar