Una de las principales diferencias entre @sunscreentech y otras empresas de FHE es que elegimos el circuit bootstrapping (CBS) en lugar del programmable bootstrapping (PBS) en nuestra pila tecnológica. Aquí está el porqué 👇🧵 Primero que nada, ¿qué es el bootstrapping? El bootstrapping es el componente más sofisticado y que consume más recursos de un esquema de FHE. Es una técnica que permite la actualización de los ciphertexts, reduciendo esencialmente el ruido acumulado de las operaciones homomórficas y permitiendo más cálculos. El Programmable Bootstrapping (utilizado por @zama_fhe) refresca el ruido y evalúa una tabla de búsqueda en un solo paso. Toma un ciphertext LWE como entrada y devuelve un nuevo ciphertext LWE, listo para la siguiente búsqueda. La latencia por bootstrap es baja, por lo que en puertas aisladas parece atractivo. La desventaja es la dependencia secuencial. Los programas reales requieren una cadena de bootstraps y las dependencias lineales entre estas operaciones impiden que los cálculos se realicen en paralelo. Esto deja la mayoría de los recursos de cómputo (núcleos) inactivos. El Circuit Bootstrapping (utilizado por @sunscreentech) sigue un camino diferente. El bootstrap aún consume un ciphertext LWE, pero la salida es un “selector” GGSW diseñado expresamente para operaciones CMUX. Cada CMUX es mucho más barato que un bootstrap, y dado que los árboles CMUX son embarrassingly parallel, pueden distribuirse de manera eficiente entre muchos recursos de cómputo antes de que se requiera otra operación de bootstrap costosa. Ese cambio en la estructura de dependencia es decisivo; permite que nuestro tiempo de ejecución sature las CPUs y GPUs de múltiples núcleos hoy en día y se adapte perfectamente a los próximos aceleradores de FHE. Los CMUX son una base ampliamente utilizada en hardware de computación, y como tal, podemos aprovechar décadas de trabajo para habilitar la computación de propósito general a partir de partes simples de CMUX. Los circuitos PBS generalmente requieren un manejo a medida para el indexado negacíclico, el relleno de LUT y las conversiones de formato, todo lo cual ralentiza la iteración y aumenta la superficie para errores. Sin embargo, cabe señalar que tfhe-rs abstrae casi todo este trabajo para PBS si simplemente usas sus parámetros predeterminados. La reutilización de datos es importante a medida que las cargas de trabajo escalan. Un selector GGSW producido por un CBS puede impulsar múltiples CMUXes, amortizando el costoso paso a través de un amplio sub-circuito. PBS no ofrece una reutilización comparable; cada nueva puerta incurre en un nuevo bootstrap. Cuando evaluamos la aritmética completa de 16 y 32 bits, la tubería CBS-CMUX se ejecutó consistentemente con menos bootstraps secuenciales y un mayor rendimiento general. Esas ganancias se amplían a medida que aumentan los recuentos de núcleos, y se alinean con nuestra hoja de ruta de hardware a largo plazo. Para nuestro equipo @sunscreentech, CBS ofreció el equilibrio adecuado: paralelismo predecible, una historia de cómputo más limpia y una curva de rendimiento que mejora con el hardware en lugar de estancarse ante cuellos de botella secuenciales. Esa es la razón por la que CBS es la base de nuestra pila y por la que seguimos apostando por su ecosistema.
1,59K