Asosiy kontentga o‘tish
AI qo‘llanmalari

Ochiq RTL LLM inferensiya plitasi APEX’ni yaratish va tekshirish

APEX RTL’da transformer dekoder qatlamini qanday amalga oshirishi, attention ma’lumotlar yo‘li ichida KV keshini siqishi va har bir blokni bajariladigan NumPy modellari bilan tekshirishini o‘rganing. Ushbu qo‘llanmada arxitektura, lokal sozlash, tekshiruv buyruqlari, modelni baholash, FPGA namoyishlari hamda o‘lchangan va prognoz qilingan natijalarni talqin qilish bo‘yicha amaliy tavsiyalar yoritiladi.

Ochiq RTL LLM inferensiya plitasi APEX’ni yaratish va tekshirish

APEX nima qiladi

APEX — to‘liq ochiq va verifikatsiyaga ustuvorlik beruvchi LLM inferensiya tile’idir. U real RTL’da bitta transformer dekoder qatlamini, jumladan attention, KV-cache siqilishi, onlayn softmax, RMSNorm, rotary position embedding, SwiGLU, residual ulanishlar va matritsa amallarini amalga oshiradi.

Loyiha edge-inferensiyadagi muhim to‘siqqa yo‘naltirilgan: suhbat uzaygani sari har bir yangi token tobora kattalashib borayotgan key-value cache’ni o‘qishi kerak. APEX KV kodekini bevosita apparat ma’lumotlar yo‘liga joylashtiradi. Kalitlar va qiymatlar hosil bo‘lganda siqiladi, siqilgan shaklda saqlanadi va attention ularni iste’mol qilayotgan paytda ochiladi.

APEX — to‘liq accelerator chipi emas, bitta inferensiya tile’idir. DRAM kontrollerlari, PCIe va chip ichidagi tarmoq repository’da belgilangan doiraga kirmaydi.

Tile FPGA qurilmasida Qwen2.5-0.5B bilan namoyish etilgan. Qwen2.5-7B tokenlari dasturiy verifikatsiyadan o‘tgan golden pipeline orqali o‘tkazilgan, biroq README 7B modeli silicon orqali ishga tushirilganini da’vo qilmaydi.

Asosiy xususiyatlar

  • To‘liq dekoder qatlami ma’lumotlar yo‘li: RTL proyeksiyalar, attention, normalizatsiya, RoPE, feed-forward hisoblash, residual amallar va KV-cache bilan ishlashni qamrab oladi.
  • Ma’lumotlar yo‘lida KV siqilishi: Kalitlar kanal bo‘yicha INT4 kvantlashdan, qiymatlar token bo‘yicha INT4 kvantlashdan foydalanadi; murakkab kanallar esa fp16 outlier yo‘lagidan foydalanishi mumkin.
  • Moslashuvchan aniqlik: TIP qurilmasi token muhimligini kuzatadi va har bir hudud uchun KVQ8, KVQ4 yoki outlier’li KVQ4’ni tanlaydi.
  • Umumiy matritsa dvigateli: INT8 sistolik MXE dekoder qatlamidagi matritsa vazifalari o‘rtasida vaqt bo‘yicha taqsimlanadi.
  • Onlayn softmax: Skorlar kontekst uzunligiga teng buffer talab qilmaydigan, son jihatdan barqaror softmax amalga oshirilishi orqali oqimda qayta ishlanadi.
  • Bitma-bit aniq verifikatsiya: RTL natijalari bajariladigan NumPy reference modellari bilan taqqoslanadi va hech qanday tafovutga yo‘l qo‘yilmaydi.
  • Mutation-testdan o‘tgan testbench’lar: Verifikatsiya faqat ataylab kiritilgan RTL xatolari testlarning yiqilishiga sabab bo‘lgandagina mazmunli deb hisoblanadi.
  • Simulyatsiyadan silicon’ga qayta ijro: FPGA registr-amal dasturlari bitma-bit differensial taqqoslash uchun Verilator twin’ida ham ishlaydi.
  • Dalilning aniq yorliqlari: Natijalar yagona aralashtirilgan unumdorlik da’vosi o‘rniga o‘lchangan yoki prognoz qilingan sifatida tasniflanadi.

Arxitekturani tushunish

Decode bosqichi activation vektori bilan boshlanadi. RMSNorm kirishni tayyorlaydi, MXE esa query, key va value proyeksiyalarini hisoblaydi. RoPE KVQ dvigateli kalitlar va qiymatlarni saqlash uchun siqishidan oldin query va key’larni o‘zgartiradi.

Attention vaqtida keshlangan qiymatlar o‘qish yo‘lida ochiladi. MXE query-key ko‘paytmalarini hisoblaydi, ASU onlayn softmax’ni qo‘llaydi, boshqa MXE vazifasi esa ehtimollarni keshlangan qiymatlar bilan birlashtiradi. Chiqish proyeksiyasi, residual qo‘shish, yana bir normalizatsiya bosqichi va SwiGLU feed-forward yo‘li qatlamni yakunlaydi.

Asosiy RTL bloklari

  • MXE: Qatlamning matritsa amallarida ishlatiladigan INT8 sistolik GEMM dvigateli.
  • KVQ: KV-cache’ni siqish va ochish dvigateli.
  • ASU: Onlayn softmax, RMSNorm, SiLU va SwiGLU.
  • RoPE: Query va key’lar uchun rotary position embedding.
  • TIP: Token muhimligini kuzatish va aniqlik darajasini tanlash.
  • SEQ: Boshqaruv va holat registrlari fayli, vazifa dekoderi va qatlam yuritgichi.
  • SEAM: Activation framing, chegara kvantlashi va scale uzatish.
  • XBR: Ortiqcha host round trip’larisiz dvigatellar o‘rtasida marshrutlash.
  • TOP: apex_top kompozitsiya qatlami va integratsiya mantiqi.

Batafsil dizayn, qarorlar reyestri va modullar kelib chiqishi uchun ARCHITECTURE.md faylini o‘qing.

Host rejimi va walked rejimi

APEX ikki xil ijro yondashuvini qo‘llab-quvvatlaydi. Host rejimida host har bir apparat vazifasini alohida tuzadi va yuboradi. Bu rejim FPGA silicon’ida isbotlangan, biroq har bir vazifa host round trip’ini talab qiladi.

Walked rejimida host qatlamni bir marta ishga tushiradi. Tile ichidagi qatlam yuritgichi descriptor’larni oladi, dvigatellar ishini ketma-ket boshqaradi, oraliq tensorlarni XBR fabric orqali yo‘naltiradi va quantization scale’larini uzatadi. Walked qatlam simulyatsiyada bitma-bit aniq ishlaydi. README walked attention’ning FPGA’dagi bring-up jarayoni hali faol davom etayotganini bildiradi.

Host rejimi va walked rejimini bir xil unumdorlik konfiguratsiyalari deb qaramang. Host rejimi to‘g‘rilik va bring-up uchun foydali, walker esa har bir vazifa uchun yuzaga keladigan katta host xarajatini yo‘qotishga mo‘ljallangan.

O‘rnatish va lokal sozlash

Talablar

Hujjatlashtirilgan lokal verifikatsiya jarayoni uchun quyidagilarni o‘rnating:

  • Python 3.11
  • NumPy
  • Verilator 5.x
  • GNU Make
  • Icarus Verilog, ixtiyoriy, o‘zaro tekshirish uchun

Buyruqlarni checkout qilingan APEX repository’ning ildiz katalogidan ishga tushiring. Boshlashdan oldin asosiy vositalarni tekshiring:

python3 --version
verilator --version
make --version
python3 -c "import numpy; print(numpy.__version__)"

README paketlarni o‘rnatish buyrug‘i yoki Python muhitini pin qilish buyrug‘ini taqdim etmaydi. Evaluation yoki FPGA workflow’lari uchun qo‘shimcha bog‘liqliklarni aniqlashda repository’ning o‘z fayllari va quyi katalog hujjatlaridan foydalaning.

Avval dalillarni tekshiring

Uzoq davom etadigan workflow’ni ishga tushirishdan oldin loyiha dalillari va cheklovlarini ko‘rib chiqing:

  • STATUS.md mashina tomonidan yaratilgan tekshiruv hisoblari va o‘lchangan natijalarni o‘z ichiga oladi.
  • TRACEABILITY.md ma’lum bo‘shliqlarni qayd etadi va da’volarni ularni tasdiqlovchi dalillar bilan bog‘laydi.
  • Asosiy jadval joriy etish va ishga tushirish holatini kuzatadi.
  • Natijalar indeksi topshirilgan dalillarni kampaniyalar bo‘yicha tartiblaydi.

Golden-model testlarini ishga tushirish

Bajariladigan NumPy reference modellari va o‘zgarmas vektorlar bilan boshlang:

make -C golden test

Bu buyruq golden modellarni sinovdan o‘tkazadi va mahkamlangan siqishni hisoblash nazoratini ham o‘z ichiga oladi. Siqishni hisoblash muhim, chunki APEX faqat nominal INT4 yuklamasini emas, teglar, masshtablar, to‘ldirish va chet qiymatlarni saqlashni ham hisobga oladi.

RTL konveyerini tekshirish

To‘liq Attention-Tile smoke testini ishga tushirish

make -C verif/top/smoke smoke

Bu attention tile uchun hujjatlashtirilgan, boshidan oxirigacha bajariladigan smoke maqsadidir. Golden-model to‘plami muvaffaqiyatli o‘tgach, undan dastlabki integratsiya tekshiruvi sifatida foydalaning.

3-qavat verifikatsiyasini ishga tushirish

make -C verif/top l3

3-qavat maqsadi taqdim etilgan holatlar bo‘yicha haqiqiy birlashtirilgan tile’ni golden model bilan taqqoslaydi. APEX taxminiy raqamli tolerantlikni emas, bitma-bit bir xil natijalarni talab qiladi.

Layer Walker’ni tekshirish

make -C verif/seq_walker

Bu walker to‘plami va uning mutatsiya nazoratlarini ishga tushiradi. Mutatsion testlash xatti-harakatni ataylab buzadi va verifikatsiya muhiti nuqsonni aniqlay olishini tekshiradi. Omon qolgan mutant muvaffaqiyatli dizayn natijasini emas, verifikatsiyadagi zaiflikni bildiradi.

Unumdorlik modelini tekshirish

Analitik modelning kalibrlash tekshiruvlarini quyidagicha ishga tushiring:

python3 perf/apex_perf_model.py --check

Unumdorlik modeli o‘lchangan kremniy unumdorligi emas, aniq prognoz qilingan ko‘rsatkichdir. Uning taxminlari va kalibrlash tayanchlari PERF_MODEL.md faylida hujjatlashtirilgan.

7B sinfidagi o‘qish tezligi va energiya ko‘rsatkichlari hali qurilmagan yoki to‘liq bo‘lmagan tizim komponentlariga, jumladan native W4 weight path, apparat orqali qatlamlarni yuritish va keng LPDDR integratsiyasiga bog‘liq. Ularni erishilgan apparat natijalari sifatida taqdim etmaslik kerak.

Modellarda KV siqilishini baholash

Repozitoriyda verifikatsiyadan o‘tgan KV kodeki uchun model aniqligi matritsalari mavjud. 0.5B va 1.5B matritsasini quyidagicha ishga tushiring:

bash eval/kv_eval/run_matrix.sh

7B matritsasini quyidagicha ishga tushiring:

bash eval/kv_eval/run_matrix_7b.sh

Bu buyruqlarni ishga tushirishdan oldin topshirilgan natija fayllari yonidagi baholash README fayllariga murojaat qiling. Nashr qilingan baholashda 10,042 ta hujjatdan iborat to‘liq HellaSwag validation to‘plamidan foydalaniladi. README kichik modellar uchun deyarli yo‘qotishsiz ishlashni, 7B dagi KVQ8 uchun to‘liq to‘plamda aniqlanadigan ta’sir yo‘qligini va 7B dagi KVQ4 uchun kichik o‘lchangan xarajatni bildiradi.

Tegishli dalillarni head-to-head natijalar va 7B baholash natijalari orqali ko‘rish mumkin.

Modelni golden konveyer orqali ishga tushirish

Loyiha prompt bajarilishini run_tinynpu.py --prompt orqali hujjatlashtiradi. Bu greedy Qwen tokenlarini fixed-point golden konveyer orqali uzatadi va qayta ijro etish uchun apparat shaklidagi topshiriqlarni yaratishi mumkin.

run_tinynpu.py --prompt

README yuqori darajadagi ko‘rsatmalarida modelni to‘liq sozlash yoki buyruq satri argumentlarining barchasini taqdim etmaydi. Shu sababli aniq qamrov, artefaktlar va qayta tiklash tafsilotlari uchun 7B token artefakti hujjatlariga amal qiling. Bu 7B oqimi dasturiy ta’minot orqali verifikatsiya qilinganini, FPGA tile’da 7B bajarilishi haqidagi da’vo emasligini yodda tuting.

AWS F2 namoyishini ishga tushirish

Talablar va xarajat

FPGA namoyishi us-west-2 hududidagi f2.6xlarge instansiyasiga kirish huquqiga ega AWS CLI hisob ma’lumotlarini talab qiladi. README to‘liq ishga tushirish uchun taxminan 30 daqiqa va qariyb ikki AQSh dollari kerak bo‘lishini baholaydi.

Hujjatlashtirilgan reference FPGA image’i agfi-030a812cd224b409d. U 15.625 MHz tile clock’li A2 retseptidan foydalanadi.

Verifikatsiya to‘plamini ishga tushirish

bash scripts/fpga/f2/run_walked_demo.sh agfi-030a812cd224b409d

Skript FPGA instansiyasini yuklaydi, image’ni o‘rnatadi, hujjatlashtirilgan verifikatsiya to‘plami va walked chain’larni ishga tushiradi, verdict’ni chiqaradi hamda instansiyani to‘xtatadi.

Interaktiv prompt namoyishini boshlash

bash scripts/fpga/f2/run_chat_demo.sh

Interaktiv namoyish walked pipeline’dan foydalanadi. README The capital of France is jumlasini namuna prompt sifatida keltiradi va baholangan javob Paris. ekanini bildiradi.

DDR image’lari mlx-community/Qwen2.5-0.5B-Instruct-4bitdan hosil qilinadi. Jamoaning staging artefaktlari skriptlarda sozlangan. Tashqi foydalanuvchilar weight image’ni quyidagicha yaratishi kerak:

python3 scripts/fpga/f2/make_weight_image.py

Hosil bo‘lgan image’ni jamoaning staging bucket’iga kirish bor deb hisoblamasdan, o‘zingiz boshqaradigan bucket uchun sozlang.

Apparat natijalarini to‘g‘ri talqin qilish

Repozitoriy 62.5 MHz chastotadagi A0 image’da sekundiga 0.56 token va 15.625 MHz chastotadagi A2 reference image’da sekundiga 0.25 token o‘lchangan throughput’ni bildiradi. Shuningdek, host boshqaradigan sekundiga 0.004 tokenlik boshlang‘ich ko‘rsatkichdan o‘lchangan o‘sish bosqichi ham keltirilgan.

Bu ko‘rsatkichlar muayyan FPGA image’lari, clock’lar va bajarish yo‘llarini tavsiflaydi. Ularni keltirishdan oldin FIRST_WALKED_TOKENS.mdni tekshiring va tegishli konfiguratsiya hamda o‘lchangan yorliqni saqlang.

Ilg‘or maslahatlar

Golden modeldan hakam sifatida foydalaning

RTL blokini o‘zgartirganda avval bajariladigan spetsifikatsiyani yangilang yoki tekshiring, repozitoriy talab qilsa vektorlarni qayta yarating yoki tasdiqlang va RTL chiqishini bitma-bit solishtiring. Loyihaning hujjatlashtirilgan arifmetik shartnomasi buni aniq talab qilmasa, toleransga asoslangan tekshiruvlarni kiritmang.

Mutatsiya qamrovini saqlang

APEX metodologiyasida muvaffaqiyatli regressiya yetarli emas. Testbench, scoreboard, sequencer yoki arifmetik blokni o‘zgartirgandan so‘ng tegishli mutatsiya tekshiruvlarini ishga tushiring. Agar ataylab buzilgan implementatsiya testdan o‘tsa, dastlabki yashil natijaga ishonishdan oldin verifikatsiyani kuchaytiring.

Bir xil vazifani muhitlar bo‘ylab qayta bajaring

APEX amaliyotlarida shakllar, marshrutlash va kvantlash shartnomalarini o‘z ichiga olgan, o‘zini o‘zi tavsiflovchi vazifa deskriptorlaridan foydalaniladi. Mos kelmaslikni tashxislashda deskriptorlar, masshtablar va registr operatsiyalarini saqlang. Bir xil parvozni Verilator F2 egizagida va apparatda qayta bajarish RTL nuqsonlarini sintez yoki toolchain nuqsonlaridan ajratishning afzal yo‘lidir.

Masshtablarni tensor ma’lumotlari bilan birga kuzating

Kvantlash masshtablari tasodifiy metadata emas, balki apparat shartnomasining bir qismidir. Vazifalarni yaratish yoki tekshirishda choklar orqali o‘tadigan masshtab ma’lumotlarini saqlab qoling. Tegishli masshtabsiz tensor mo‘ljallangan fixed-point operatsiyani takrorlay olmaydi.

Kodek foydali yukini umumiy saqlash hajmidan ajrating

Siqishni faqat INT4 foydali yuklari asosida hisoblamang. Masshtab banklari, teglar, padding, aniqlik metadata’si va outlier yo‘laklarini ham kiriting. E’lon qilinadigan nisbatlar uchun repozitoriyning golden hisob-kitob tekshiruvi va STATUS.md faylini asosiy manba sifatida ishlating.

Model o‘lchamlari va bajarilish da’volarini ajrating

  • Qwen2.5-0.5B: Loyiha tomonidan tavsiflangan FPGA asosidagi pipeline orqali namoyish etilgan.
  • Qwen2.5-7B: Dasturiy ta’minot orqali tekshirilgan golden pipeline yordamida sinovdan o‘tkazilgan.
  • 7B sinfidagi arxitektura prognozlari: Tile atrofidagi kattaroq tizim uchun analitik prognozlar; joriy FPGA implementatsiyasidan o‘lchangan unumdorlik emas.

Walker’ni kengaytirishdan oldin og‘irliklarni uzatishni o‘rganing

Model og‘irliklari to‘liq tile’ga sig‘maydi. IB-FUEL dizayni har bir vazifa uchun og‘irlik yozuvlarini DDR’dan chip ichidagi FIFO’ga uzatadi, W4 yo‘li esa to‘rt bitli guruhlarni tashib, ularni INT8 matritsa dvigateli uchun ochadi. Rejalashtirish yoki feeder xatti-harakatini o‘zgartirishdan oldin IB_FUEL.md va W4_DATAPATH.md fayllarini ko‘rib chiqing.

Repozitoriy tuzilmasidan samarali foydalaning

  • rtl/ apparat implementatsiyasini o‘z ichiga oladi.
  • golden/ bitma-bit aniq NumPy ma’lumotnoma modellarini o‘z ichiga oladi.
  • verif/ testbenchlar, assertionlar, scoreboardlar, mutatsiya tekshiruvlari va F2 simulyatsiya egizagini o‘z ichiga oladi.
  • eval/ kodek uchun model aniqligini baholash vositalarini o‘z ichiga oladi.
  • perf/ prognoz qilinadigan analitik unumdorlik modelini o‘z ichiga oladi.
  • scripts/fpga/ build, image, DDR yuklash, flight va token-loop skriptlarini o‘z ichiga oladi.
  • docs/results/ repozitoriyga kiritilgan kampaniya dalillarini o‘z ichiga oladi.

Joriy cheklovlar va yo‘l xaritasi

Amaldagi yo‘l xaritasi FPGA’da walked attention’ni tekshirish, timing closure’ni tezlashtirish, og‘irliklarni uzluksiz uzatish, W4’ni uchidan-uchigacha qo‘llab-quvvatlash, token tezligi bo‘yicha qo‘shimcha o‘lchov ishlari va Sky130 signoff’iga tayyorgarlikni ustuvor qiladi. Joriy holat asosiy jadvalda yuritiladi.

Yo‘l xaritasidagi bandlar yakunlangan deb taxmin qilmang. Xususan, README walked attention apparatini to‘liq ishga tushirish va o‘tkazuvchanlikka bog‘liq bir nechta vazifalar hali davom etayotganini ko‘rsatadi.

Xulosa

APEX transformer decoder tile’ining RTL implementatsiyasi bo‘lish bilan birga, dalillarga asoslangan apparat verifikatsiyasi bo‘yicha amaliy misoldir. Uning eng o‘ziga xos jihati kalitlar va qiymatlarni siqilgan shaklda saqlaydigan, shu bilan birga tekshirilgan attention datapath’ining bir qismi bo‘lib qoladigan integratsiyalangan KV-cache kodekidir.

Golden testlardan boshlang, so‘ng tile va walker verifikatsiyasini ishga tushiring, o‘lchangan dalillarni tekshiring va faqat qo‘shimcha artefaktlari mavjud bo‘lganda model yoki FPGA workflow’lariga o‘ting. O‘lchangan FPGA natijalarini analitik prognozlardan alohida saqlang va da’voni taqdim etishda loyiha traceability hujjatlaridan foydalaning.

APEX Apache License 2.0 ostida chiqarilgan. Amaldagi shartlar va bildirishnomalar uchun LICENSE fayliga qarang.