Una dintre principalele diferențe dintre @sunscreentech și alte companii FHE este că am ales bootstrapping-ul de circuit (CBS) în detrimentul bootstrap-ului programabil (PBS) în stiva noastră tehnologică. Iată de ce am făcut asta 👇🧵 În primul rând, ce este bootstrapping-ul? Bootstrapping-ul este cea mai sofisticată și intensivă componentă a unei scheme FHE. Este o tehnică care permite reîmprospătarea textelor cifrate, reducând în esență zgomotul acumulat din operațiile homomorfe și permițând calcule ulterioare. Bootstrap-ul programabil (utilizat de @zama_fhe) reîmprospătează zgomotul și evaluează un tabel de căutare într-un singur pas. Ia un text cifrat LWE ca intrare și returnează un nou text cifrat LWE, gata pentru următoarea căutare. Latența per bootstrap este scăzută, așa că pe porțile izolate arată atractiv. Compromisul este dependența secvențială. Programele reale necesită un lanț de bootstrap-uri, iar dependențele liniare dintre aceste operațiuni înseamnă că calculele sunt împiedicate să ruleze în paralel. Acest lucru lasă majoritatea resurselor de calcul (nuclee) inactive. Circuit Bootstrapping (folosit de @sunscreentech) urmează o cale diferită. Bootstrap-ul încă consumă un text cifrat LWE, dar ieșirea este un "selector" GGSW conceput în mod expres pentru operațiuni CMUX. Fiecare CMUX este mult mai ieftin decât un bootstrap și, deoarece arborii CMUX sunt jenant de paraleli, pot fi distribuiți eficient între mai multe resurse de calcul înainte de a fi necesară o altă operațiune de bootstrap costisitoare. Această schimbare în structura dependenței este decisivă; permite timpului nostru de rulare să satureze procesoarele și GPU-urile cu mai multe nuclee astăzi și se mapează curat pe viitoarele acceleratoare FHE. CMUX este o bază utilizată pe scară largă în hardware-ul de calcul și, ca atare, putem utiliza zeci de ani de muncă pentru a permite calculul de uz general din piese CMUX simple. Circuitele PBS necesită, în general, o manipulare personalizată pentru indexarea negaciclică, umplutura LUT și conversiile de format, toate acestea încetinind iterația și crescând suprafața pentru erori. Rețineți totuși că tfhe-rs abstracționează aproape toată această muncă pentru PBS dacă utilizați pur și simplu parametrii lor impliciti. Reutilizarea datelor contează pe măsură ce sarcinile de lucru se extind. Un selector GGSW produs de un CBS poate conduce mai multe CMUX, amortizând pasul scump pe un subcircuit larg. PBS nu oferă o reutilizare comparabilă; Fiecare nouă poartă implică un nou bootstrap. Când am evaluat aritmetica completă pe 16 și 32 de biți, canalul CBS-CMUX a executat în mod constant cu mai puține bootstrap-uri secvențiale și un debit general mai mare. Aceste câștiguri se extind pe măsură ce numărul de nuclee crește și se aliniază cu foaia noastră de parcurs hardware pe termen lung. Pentru echipa noastră @sunscreentech, CBS a oferit echilibrul potrivit: paralelism previzibil, o poveste de calcul mai curată și o curbă de performanță care se îmbunătățește cu hardware, în loc să se blocheze în fața blocajelor secvențiale. Acesta este motivul pentru care CBS este fundamentul stivei noastre și de ce continuăm să dublăm ecosistemul său.
1,59K