FHE Bootstrapping Accelerator Cache for Memory Bandwidth Bottlenecks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing FHE schemes face significant computational and memory bottlenecks during bootstrapping operations, particularly due to the large size of bootstrapping key coefficients, which exceed the bandwidth capabilities of High Bandwidth Memory and cause memory bottlenecks.
Innovation Solution
A method and accelerator architecture that processes ciphertext portions in batches, using an on-chip bootstrapping cache to store bootstrapping key elements, allowing for iterative processing without the need for continuous off-chip loading, thereby reducing memory and computational requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If bootstrapping key coefficients are stored in off-chip memory, then sufficient storage capacity is available, but memory bandwidth requirements exceed High Bandwidth Memory capabilities causing bottlenecks
Solution Approach 1:
The bootstrapping key is divided into multiple chunks or blocks that are processed sequentially. Instead of loading the entire key into memory simultaneously, the system processes smaller segments, reducing the peak memory bandwidth requirement while maintaining sufficient storage capacity in off-chip memory.
Solution Approach 2:
The system performs preliminary processing of the bootstrapping key by pre-computing and storing intermediate results in a compact format. This preliminary action reduces the amount of data that needs to be transferred from off-chip memory during the actual bootstrapping operation, thereby reducing memory bandwidth requirements.
2Reliability
If bootstrapping operations are performed frequently to maintain noise thresholds, then calculation accuracy is maintained, but computational overhead increases significantly
Solution Approach 1:
The system implements periodic bootstrapping operations at optimized intervals rather than continuously or too frequently. By determining the optimal period between bootstrapping operations, the system maintains calculation accuracy by keeping noise below thresholds while avoiding excessive computational overhead from too-frequent operations.
Solution Approach 2:
The system dynamically adjusts bootstrapping parameters such as the modulus switching level and noise threshold monitoring based on the current state of ciphertext noise. This allows the system to maintain reliability by adapting to changing noise conditions while optimizing productivity by performing bootstrapping only when necessary.
3Productivity
If polynomial multiplication uses FFT algorithms for speedup, then multiplication performance improves, but quantization noise is introduced adding to inherent FHE noise
Solution Approach 1:
The system uses FFT-based multiplication selectively for only the most computationally intensive polynomial multiplications rather than all multiplications. For less critical operations, simpler multiplication methods are used, providing a partial application of the high-speed FFT approach that balances productivity improvement with acceptable quantization noise levels.
Data Source
AI summary
A method for performing a bootstrapping operation in cryptographic application, includes receiving in an accelerator one or more input ciphertexts used in the cryptographic application to be bootstrapped and iteratively processing one or more accumulator variables in function of portions of the input ciphertexts; multiplying, within each iteration, the processed accumulator variables with a bootstrapping key element belonging to a bootstrapping key comprising a plurality of bootstrapping key elements, said bootstrapping key element taken from a bootstrapping cache memory in the accelerator; while performing the multiplying for each of the one or more accumulator variables in turn, loading into the bootstrapping cache memory from an external memory a next bootstrapping key element of the plurality of bootstrapping key elements to be used in a next iteration of the bootstrapping operation.

