Araştırma ve geliştirme

Sırada neler var.

Tasarım aşamasında iki uzun soluklu proje: herkesin uygulayabileceği açık bir GPU komut seti ve C++'ı RTL'ye çevirip Lumina'da doğrulayan bir yüksek seviye sentez aracı. İkisi de henüz ürün değil. Planları erkenden paylaşıyoruz, çünkü ikisini de doğru kurmak için partnerlere ihtiyacımız var.

Bunlar ürün değil, plan. Kapsam ve ayrıntılar, iş kanıtlandıkça değişecek.

Nasıl çalışıyoruz

Önce kanıt, sonra iddia.

Aşama aşama kanıtlanır

Her proje aşamalarla ilerler; bir aşama ancak testleri ve kıyaslama tasarımları geçtiğinde biter. Çalışmadan hiçbir şey bu sayfada bitmiş diye yazılmaz.

Temiz oda

Standartlardan, yayımlanmış makalelerden ve açık araçlardan kurulur. Ticari araçların kılavuzları, çıktıları ve örnekleri hiç kullanılmaz.

Önemli yerde açık

Spesifikasyonların ve bağımlılığı önleyen parçaların açık olması planlanıyor; böylece başkaları üzerine inşa edebilir ve işimizi denetleyebilir.

Spesifikasyon tasarımı

Açık bir GPU komut seti

Bugün her GPU'nun kendine ait kapalı bir komut seti var; derleyicisi ve sürücüsü de üreticisine ait. Biz açık bir komut seti tasarlıyoruz: bir kez dondurulup bir daha bozulmayan küçük bir çekirdek, grafik, ışın izleme ve yapay zekâ için uzantılar ve aynı kodlamadan oluşan üç profil. Böylece tek bir derleyici ve sürücü yığını her uygulamaya hizmet edebilir.

  • Telifsiz
  • Mobil · Masaüstü · Sunucu
  • Grafik ve hesaplama
  • FP8, FP6, FP4, MX formatları

Küçük çekirdek, modüler uzantılar

Çekirdekte tamsayı ve FP32 aritmetiği, dallanma, bellek, atomik işlemler, bariyerler ve wave işlemleri var. Grafik, ışın izleme, tensör işlemleri, mikro sayı formatları, asenkron kopyalar, çoklu GPU ve ayrıcalıklı işlemler uzantı olarak gelir.

Üç profil, tek kodlama

Mobil profil tile tabanlı, düşük güçlü grafik için; masaüstü rasterleştirme, ışın izleme ve hesaplama için; sunucu ise büyük ölçekli yapay zekâ eğitimi ve çıkarımı için. Bir sunucu çipi grafik birimlerini dışarıda bırakabilir, ama komut kodlaması ortak kalır.

Yapay zekâ sayı formatları baştan

FP16, BF16, FP8, FP6 ve FP4, blok ölçekli (MX) formatlar ve 2:4 seyreklik tasarıma baştan girer, sonradan eklenmez.

Kararlı bir sanal ISA

Derleyiciler, SPIR-V'nin ve LLVM/MLIR'ın doğrudan üretebildiği sürümlü bir sanal komut setini hedefler; böylece kod donanım nesilleri boyunca çalışmaya devam eder. Bağımsız donanım yapılabilsin diye fiziksel komut seti de yayımlanır.

Mikromimariden bağımsız

Wave genişliği, register dosyası boyutu ve önbellek hiyerarşisi ISA'da sabitlenmez; yazılımın sorguladığı parametrelerdir. Her komuttaki bağımlılık ipuçları zamanlamayı derleyiciye bırakır, donanım da sade kalabilir.

Güvenlik baştan

Bellek izolasyonu, sanallaştırma, çok kiracılı bölümleme ve gizli hesaplama sunucu profilinin parçasıdır, sonradan eklenmez.

Tasarımdan açık

Spesifikasyon
CC BY 4.0 ile yayımlanması planlanıyor: uygulamak serbest, telif ücreti yok, izin gerekmez.
Referans yazılım ve RTL
Apache 2.0 ile yayımlanması planlanıyor.
Patentler
Patentlerimizi uygulamalara karşı ileri sürmeyeceğimize dair yazılı bir taahhüt.
Yönetişim
Sürüm 1.0 dondurulmadan önce bağımsız bir vakfa devredilir; taslaklar ve yorum dönemleri herkese açıktır.
Uyumluluk
Uyumluluk işareti yalnızca uyumluluk test paketini geçen tasarımlara verilir; bizimkiler de dahil.

Nasıl kanıtlanacak

  • Spesifikasyonun çalıştırılabilir bir referans modeli; metnin belirsiz kaldığı yerde model belirleyicidir.
  • Fonksiyonel ve döngüye yakın simülatörler; böylece derleyiciler ve sürücüler daha silisyum yokken geliştirilebilir.
  • Her komutu, her uzantıyı ve bellek modeli litmus testlerini kapsayan bir uyumluluk test paketi.
  • FPGA'ya sığan küçük, açık bir RTL çekirdeği: spesifikasyonun gerçekten uygulanabildiğini göstermek için.
  • Yazılım hedefleri: bir LLVM arka ucu ve MLIR dialect'i, Mesa içinde bir Vulkan sürücüsü, OpenCL ve SYCL; ardından Triton ve PyTorch desteği.

Kimleri arıyoruz

Üniversiteler ve araştırma grupları, derleyici ve sürücü mühendisleri ve tek bir üreticinin kontrol etmediği bir GPU komut seti isteyen çip şirketleri. Taslağı erkenden incelemek isteyenlere de açığız.

Planlama

Doğrulanmış yüksek seviye sentez

Yüksek seviye sentez, C++ ile yazılmış bir algoritmanın donanıma dönüşmesini sağlar. Bugünkü araçlar ya tek bir FPGA üreticisinin cihazlarını hedefliyor ya da büyük şirketlere satılıyor ve simülatör, lint ve eşdeğerlik denetleyicisi ayrı ürünler olarak geliyor. Biz her FPGA ve her ASIC kütüphanesi için tek bir araç planlıyoruz; doğrulama da içinde: yazdığı RTL, Lumina'da geldiği C++'ın kendisine karşı denetlenir.

  • Girdi: C++ ve SystemC
  • Çıktı: Verilog, SystemVerilog, VHDL
  • Her FPGA, her ASIC kütüphanesi
  • Lumina'da doğrulanır

Doğrulama dahil

Lumina'da C/RTL eş simülasyonu: C++ testbench'i RTL üzerinde yeniden kullanılır, dalga formları C++ kaynağının yanında gösterilir, her çıktı lint'ten geçer. RTL'nin C++'a eşit olduğunun formal ispatı planlanıyor.

Tek kaynak, her hedef

Farklı üreticilerin FPGA'ları ve herhangi bir Liberty hücre kütüphanesiyle ASIC'ler; SkyWater 130 ve IHP 130 gibi açık PDK'larla başlayarak. Kod, yeniden yazılmadan cihazdan cihaza taşınır.

Açık girdi tipleri

Açık Algorithmic C kütüphanesinin bit doğruluklu tamsayı ve sabit noktalı tipleri ile SystemC tipleri; tasarımlar aracımıza kilitlenmez.

Arayüzler otomatik

AXI4, AXI4-Lite, AXI4-Stream ve Avalon; valid/ready el sıkışmaları, FIFO'lar ve bellek portları; yazılım için C başlık dosyasıyla bir kontrol register bloğu.

Okunabilir çıktı

Üretilen RTL'deki isimler ve yorumlar C++ satırlarına bağlı kalır; inceleyenler ve lint, her parçanın nereden geldiğini izleyebilir.

Üzerine iş yapılabilir raporlar

Her tasarım için gecikme, verim, kaynak kullanımı ve tahmini zamanlama; saat döngülerini kaynak satırlarına eşleyen bir zamanlama görünümü.

Akış

Yaz ve test et
Sentezlenebilir C++ veya SystemC; sıradan bir yazılım gibi, hata ayıklayıcıyla test edilir.
Yönlendir
Pipeline, döngü açma, dizi bölme, fonksiyonlar arası veri akışı; arayüzleri ve saati seç.
Sentezle
Seçilen cihaz veya hücre kütüphanesinde bir saat hedefi için zamanlama ve atama.
Doğrula
Lumina'da C++ testbench'ine karşı eş simülasyon ve sonucun lint'ten geçirilmesi.
Dışa aktar
RTL, IP-XACT paketi, zamanlama kısıtları ve sentez betikleri, bir de C sürücüsü.

Nasıl kanıtlanacak

  • Her aşamada üretilen her tasarım, C++ testbench'ine karşı Lumina'da eş simüle edilir ve lint'ten geçirilir.
  • Açık HLS kıyaslama paketleri sentezlenir, C++'larıyla aynı sonucu verir ve bir FPGA ailesinde ve bir açık PDK'da zamanlamayı karşılar.
  • Açık araçlarla ilk tam akış: C++'tan gerçek bir kartta çalışan bitstream'e kadar bir akış görüntü filtresi.
  • Üretilen RTL'ye elle yerleştirilen hatalar (yanlış yuvarlama, bir eksik döngü sınırı, düşen bir akış elemanı) her seferinde yakalanır.
  • Müşteri tarzı üç tasarım (bir görüntü filtresi, bir FIR/FFT zinciri, küçük bir sinir ağı katmanı), aracı ilk kez kullanan biri tarafından yalnızca kılavuzla doğrulanmış RTL'ye taşınır.

Kimleri arıyoruz

Algoritmaları C++'ta olan (görüntü işleme, sinyal işleme, küçük sinir ağı katmanları), erken sürümleri deneyip neyin eksik olduğunu söyleyecek tasarım partnerleri.

Katılın

Bunları birlikte şekillendirelim mi?

Bir taslağı incelemek, erken bir sürümü denemek ya da projelerden birinde bizimle çalışmak isterseniz bize yazın.

Ar-Ge

hello@lumeeslab.com

Eklemeniz faydalı olur

  • Hangi proje ilginizi çekiyor
  • Ekibiniz veya araştırma grubunuz
  • Nasıl katkı vermek istersiniz

Gizlilik ayarları

Bu sitenin neleri kullanabileceğini seçin. Kararınızı her sayfanın altındaki Gizlilik ayarları bağlantısından dilediğiniz zaman değiştirebilirsiniz.

Sitenin çalışması için gerekenler ve burada yaptığınız seçimin kaydı. Kayıt tarayıcınızda tutulur; çerez kullanılmaz.

Her zaman açık

Ziyaretleri saymamıza ve hangi sayfaların işe yaradığını görmemize olanak tanır; reklam ya da siteler arası takip içermez. Şu anda hiçbir analitik aracı kullanmıyoruz, yani seçiminiz ne olursa olsun hiçbir şey yüklenmez.

Çerez politikası · Gizlilik politikası