Large integer multiplication is becoming a major challenge for FPGA-based acceleration of many cryptographic applications. Existing techniques for decomposing and optimizing large integer multiplication bring about nontrivial trade-offs between different resource types as well as performance. In this work, we regard determining the level and order of multiplication decomposition as a phase ordering problem, which is a notable problem in compiler optimization. Our framework, IMpress, leverages equality saturation to automatically produce a wide range of equivalent integer multiplication expressions corresponding to various hardware implementations. We devise constrained and multi-objective extraction techniques to automatically choose the optimal expressions based on the resource requirements of a given application. IMpress automatically translates extracted integer multiplication expressions into behavioral descriptions in C++ and initiates FPGA compilation through high-level synthesis. IMpress offers significant control over resource utilization and balance, and it increases the maximum number of instances of cryptographic applications on FPGA.
大型整数乘法已成为基于FPGA的许多加密应用加速的主要挑战。分解和优化大整数乘法的现有技术在不同的资源类型和性能之间带来了非平凡的权衡。在这项工作中,我们将确定乘法分解的水平和顺序视为相位排序问题,这在编译器优化中是一个显着的问题。我们的框架,印象深刻,利用平等饱和度自动产生与各种硬件实现相对应的广泛的等效整数乘法表达式。我们设计了受限制的多目标提取技术,以根据给定应用程序的资源要求自动选择最佳表达式。印象会自动将提取的整数乘法表达式转化为C ++中的行为描述,并通过高级合成来启动FPGA汇编。 Impress提供了对资源利用和平衡的重大控制,并且增加了FPGA上加密应用程序的最大实例数量。