En av de största skillnaderna mellan @sunscreentech och andra FHE-företag är att vi valde circuit bootstrapping (CBS) framför programmerbar bootstrapping (PBS) i vår teknikstack. Här är varför vi gjorde det 👇🧵 Först och främst, vad är bootstrapping? Bootstrapping är den mest sofistikerade och beräkningsintensiva komponenten i ett FHE-schema. Det är en teknik som gör det möjligt att uppdatera chiffertexter, vilket i huvudsak minskar det ackumulerade bruset från homomorfa operationer och möjliggör ytterligare beräkningar. Programmerbar start (används av @zama_fhe) uppdaterar brus och utvärderar en uppslagstabell i ett enda steg. Den tar en LWE chiffertext som indata och returnerar en ny LWE chiffertext, redo för nästa sökning. Latensen per bootstrap är låg, så på isolerade grindar ser det attraktivt ut. Kompromissen är sekventiellt beroende. Riktiga program kräver en kedja av bootstraps och de linjära beroendena mellan dessa operationer innebär att beräkningar hindras från att köras parallellt. Detta gör att majoriteten av beräkningsresurserna (kärnorna) är inaktiva. Circuit Bootstrapping (används av @sunscreentech) följer en annan väg. Bootstrap använder fortfarande en LWE-chiffertext, men utdata är en GGSW-"väljare" som uttryckligen är utformad för CMUX-operationer. Varje CMUX är mycket billigare än en bootstrap, och eftersom CMUX-träd är pinsamt parallella kan de effektivt distribueras mellan många beräkningsresurser innan ytterligare en dyr bootstrap-operation krävs. Denna förändring av beroendestrukturen är avgörande. det gör att vår körtid mättar flerkärniga CPU:er och GPU:er idag och mappar rent till kommande FHE-acceleratorer. CMUX är en allmänt använd grund inom datorhårdvara, och som sådan kan vi använda årtionden av arbete för att möjliggöra allmän databehandling från enkla CMUX-delar. PBS-kretsar kräver i allmänhet skräddarsydd hantering för negacyklisk indexering, LUT-utfyllnad och formatkonverteringar, som alla saktar ner iterationen och ökar ytan för buggar. Observera dock att tfhe-rs abstraherar bort nästan allt detta arbete för PBS om du bara använder deras standardparametrar. Återanvändning av data är viktigt när arbetsbelastningarna skalas. En GGSW-väljare som produceras av en CBS kan driva flera CMUX:er, vilket amorterar det dyra steget över en bred underkrets. PBS erbjuder ingen jämförbar återanvändning; Varje ny grind medför en ny bootstrap. När vi jämförde full 16- och 32-bitars aritmetik kördes CBS-CMUX-pipelinen konsekvent med färre sekventiella bootstraps och högre övergripande genomströmning. Dessa vinster ökar i takt med att antalet kärnor ökar, och de ligger i linje med vår långsiktiga färdplan för maskinvara. För vårt team @sunscreentech levererade CBS rätt balans: förutsägbar parallellitet, en renare beräkningshistoria och en prestandakurva som förbättras med hårdvara istället för att stanna upp mot sekventiella flaskhalsar. Det är därför CBS är grunden i vår stack och varför vi fortsätter att fördubbla dess ekosystem.
1,59K