Uma das principais diferenças entre @sunscreentech e outras empresas de FHE é que escolhemos o circuit bootstrapping (CBS) em vez do programmable bootstrapping (PBS) na nossa pilha tecnológica. Aqui está o porquê 👇🧵 Primeiro de tudo, o que é bootstrapping? Bootstrapping é o componente mais sofisticado e intensivo em computação de um esquema de FHE. É uma técnica que permite a atualização de ciphertexts, essencialmente reduzindo o ruído acumulado das operações homomórficas e permitindo mais cálculos. O Programmable Bootstrapping (usado pela @zama_fhe) atualiza o ruído e avalia uma tabela de consulta em um único passo. Ele recebe um ciphertext LWE como entrada e retorna um novo ciphertext LWE, pronto para a próxima consulta. A latência por bootstrap é baixa, então 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 computacionais (núcleos) ociosos. O Circuit Bootstrapping (usado pela @sunscreentech) segue um caminho diferente. O bootstrap ainda consome um ciphertext LWE, mas a saída é um “seletor” GGSW projetado expressamente para operações CMUX. Cada CMUX é muito mais barato do que um bootstrap, e como as árvores CMUX são embaraçosamente paralelas, podem ser distribuídas de forma eficiente entre muitos recursos computacionais antes que outra operação de bootstrap cara seja necessária. Essa mudança na estrutura de dependência é decisiva; permite que nosso tempo de execução saturasse CPUs e GPUs de múltiplos núcleos hoje e se mapeie de forma limpa em futuros aceleradores de FHE. CMUX são uma base amplamente utilizada em hardware de computação, e como tal, podemos utilizar décadas de trabalho para habilitar computação de propósito geral a partir de partes simples de CMUX. Os circuitos PBS geralmente exigem manuseio sob medida para indexação negacíclica, preenchimento de LUT e conversões de formato, tudo isso que atrasa a iteração e aumenta a área de superfície para bugs. Note, no entanto, que o tfhe-rs abstrai quase todo esse trabalho para PBS se você simplesmente usar seus parâmetros padrão. A reutilização de dados importa à medida que as cargas de trabalho escalam. Um seletor GGSW produzido por um CBS pode acionar múltiplos CMUXes, amortizando o passo caro em um amplo sub-circuito. O PBS não oferece reutilização comparável; cada nova porta incorrerá em um novo bootstrap. Quando avaliamos a aritmética completa de 16 e 32 bits, o pipeline CBS-CMUX executou consistentemente com menos bootstraps sequenciais e maior throughput geral. Esses ganhos aumentam à medida que a contagem de núcleos sobe, e eles se alinham com nosso roadmap de hardware a longo prazo. Para nossa equipe @sunscreentech, o CBS entregou o equilíbrio certo: paralelismo previsível, uma história de computação mais limpa e uma curva de desempenho que melhora com o hardware em vez de estagnar contra gargalos sequenciais. É por isso que o CBS é a base da nossa pilha e por que continuamos a investir em seu ecossistema.
1,59K