Uma das principais diferenças entre a @sunscreentech e outras empresas da FHE é que escolhemos o bootstrapping de circuito (CBS) em vez do bootstrapping programável (PBS) em nossa pilha de tecnologia. Veja por que fizemos isso 👇🧵 Em primeiro lugar, o que é bootstrapping? O bootstrapping é o componente mais sofisticado e com uso intensivo de computação de um esquema FHE. É uma técnica que permite a atualização de textos cifrados, essencialmente reduzindo o ruído acumulado de operações homomórficas e permitindo cálculos adicionais. O Programmable Bootstrapping (usado pelo @zama_fhe) atualiza o ruído e avalia uma tabela de pesquisa em uma única etapa. Ele usa um texto cifrado LWE como entrada e retorna um novo texto cifrado LWE, pronto para a próxima pesquisa. A latência por inicialização é baixa, portanto, em portas isoladas, parece atraente. O trade-off é a dependência sequencial. Programas reais requerem uma cadeia de bootstraps e as dependências lineares entre essas operações significam que os cálculos são impedidos de serem executados em paralelo. Isso deixa a maioria dos recursos de computação (núcleos) ociosos. O Circuit Bootstrapping (usado pelo @sunscreentech) segue um caminho diferente. O bootstrap ainda consome um texto cifrado LWE, mas a saída é um "seletor" GGSW expressamente projetado para operações CMUX. Cada CMUX é muito mais barato do que um bootstrap e, como as árvores CMUX são embaraçosamente paralelas, elas podem ser distribuídas com eficiência entre muitos recursos de computação antes que outra operação de bootstrap cara seja necessária. Essa mudança na estrutura de dependência é decisiva; ele permite que nosso tempo de execução sature CPUs e GPUs de muitos núcleos hoje e mapeie de forma limpa os próximos aceleradores FHE. O CMUX é uma base amplamente utilizada em hardware de computação e, como tal, podemos utilizar décadas de trabalho para permitir a computação de uso geral a partir de peças simples do CMUX. Os circuitos PBS geralmente exigem manuseio sob medida para indexação negacíclica, preenchimento de LUT e conversões de formato, todos os quais retardam a iteração e aumentam a área de superfície para bugs. Observe, no entanto, que tfhe-rs abstrai quase todo esse trabalho para PBS se você simplesmente usar seus parâmetros padrão. A reutilização de dados é importante à medida que as cargas de trabalho aumentam. Um seletor GGSW produzido por um CBS pode acionar vários CMUXes, amortizando a etapa cara em um amplo subcircuito. A PBS não oferece reutilização comparável; Cada novo portão incorre em um novo bootstrap. Quando comparamos a aritmética completa de 16 e 32 bits, o pipeline CBS-CMUX foi executado de forma consistente com menos inicializações sequenciais e maior taxa de transferência geral. Esses ganhos aumentam à medida que a contagem de núcleos aumenta e se alinham com nosso roteiro de hardware de longo prazo. Para nossa equipe @sunscreentech, a CBS forneceu o equilíbrio certo: paralelismo previsível, uma história de computação mais limpa e uma curva de desempenho que melhora com hardware em vez de travar contra gargalos sequenciais. É por isso que a CBS é a base de nossa pilha e continuamos a dobrar seu ecossistema.
1,59K