Một trong những điểm khác biệt chính giữa @sunscreentech và các công ty FHE khác là chúng tôi đã chọn circuit bootstrapping (CBS) thay vì programmable bootstrapping (PBS) trong công nghệ của mình. Đây là lý do tại sao chúng tôi đã làm như vậy 👇🧵 Trước hết, bootstrapping là gì? Bootstrapping là thành phần tinh vi và tốn nhiều tính toán nhất trong một sơ đồ FHE. Đây là một kỹ thuật cho phép làm mới các ciphertext, về cơ bản là giảm tiếng ồn tích lũy từ các phép toán đồng hình và cho phép các phép toán tiếp theo. Programmable Bootstrapping (được sử dụng bởi @zama_fhe) làm mới tiếng ồn và đánh giá một bảng tra cứu trong một bước duy nhất. Nó nhận một ciphertext LWE làm đầu vào và trả về một ciphertext LWE mới, sẵn sàng cho lần tra cứu tiếp theo. Độ trễ mỗi lần bootstrapping là thấp, vì vậy trên các cổng riêng lẻ, nó trông hấp dẫn. Tuy nhiên, sự đánh đổi là sự phụ thuộc tuần tự. Các chương trình thực tế yêu cầu một chuỗi các bước bootstrapping và sự phụ thuộc tuyến tính giữa các phép toán này có nghĩa là các phép toán không thể chạy song song. Điều này khiến phần lớn tài nguyên tính toán (các lõi) bị bỏ trống. Circuit Bootstrapping (được sử dụng bởi @sunscreentech) đi theo một con đường khác. Bootstrapping vẫn tiêu tốn một ciphertext LWE, nhưng đầu ra là một “selector” GGSW được thiết kế đặc biệt cho các phép toán CMUX. Mỗi CMUX rẻ hơn nhiều so với một bước bootstrapping, và vì các cây CMUX có thể chạy song song một cách dễ dàng, chúng có thể được phân phối hiệu quả giữa nhiều tài nguyên tính toán trước khi cần một bước bootstrapping tốn kém khác. Sự thay đổi trong cấu trúc phụ thuộc này là quyết định; nó cho phép thời gian chạy của chúng tôi tận dụng tối đa các CPU và GPU nhiều lõi hiện nay và phù hợp một cách rõ ràng với các bộ tăng tốc FHE sắp tới. CMUX là một nền tảng được sử dụng rộng rãi trong phần cứng máy tính, và vì vậy chúng tôi có thể tận dụng hàng thập kỷ công việc để cho phép tính toán đa năng từ các phần CMUX đơn giản. Các mạch PBS thường yêu cầu xử lý riêng cho chỉ mục negacyclic, padding LUT và chuyển đổi định dạng, tất cả đều làm chậm quá trình lặp lại và tăng diện tích bề mặt cho lỗi. Tuy nhiên, hãy lưu ý rằng tfhe-rs đã trừu tượng hóa hầu hết công việc này cho PBS nếu bạn chỉ sử dụng các tham số mặc định của họ. Việc tái sử dụng dữ liệu rất quan trọng khi khối lượng công việc tăng lên. Một selector GGSW được tạo ra bởi một CBS có thể điều khiển nhiều CMUX, phân bổ bước tốn kém qua một sub-circuit rộng. PBS không cung cấp tái sử dụng tương tự; mỗi cổng mới đều phát sinh một bước bootstrapping mới. Khi chúng tôi kiểm tra toàn bộ số học 16 và 32-bit, pipeline CBS-CMUX liên tục thực hiện với ít bước bootstrapping tuần tự hơn và thông lượng tổng thể cao hơn. Những lợi ích này mở rộng khi số lượng lõi tăng lên, và chúng phù hợp với lộ trình phần cứng dài hạn của chúng tôi. Đối với đội ngũ của chúng tôi @sunscreentech, CBS đã mang lại sự cân bằng đúng đắn: tính song song có thể dự đoán, một câu chuyện tính toán rõ ràng hơn, và một đường cong hiệu suất cải thiện với phần cứng thay vì bị kẹt trước các nút thắt tuần tự. Đó là lý do tại sao CBS là nền tảng của công nghệ của chúng tôi và tại sao chúng tôi tiếp tục đầu tư vào hệ sinh thái của nó.
1,59K