截断乘法与批量软件 SIMD AVX512 实现:加速蒙哥马利乘法与模幂运算
分布式、并行与集群计算
2024-10-25 v1
摘要
本文介绍了处理多精度整数运算的批量计算的软件实现。在这项工作中,我们使用了 x86-64 处理器的单指令多数据流(SIMD)AVX512 指令集,特别是向量化融合乘加器 VPMADD52。我们专注于使用字切片存储对 8 个值进行批量乘法、平方、模乘、模平方和常数时间模幂运算。我们探索了使用 Schoolbook 和 Karatsuba 方法处理分别高达 4108 位和 4154 位的操作数。我们还引入了一种截断乘法,在软件实现的背景下加速了蒙哥马利模约简的计算。我们改进的截断蒙哥马利模乘相比传统的非截断版本提供了近 20% 的速度提升。与最先进的 GMP 和 OpenSSL 库相比,我们的加速模运算速度快了 4 倍以上。与使用 AVX512 和 256 位寄存器中 madd52*(madd52hi 或 madd52lo)的 OpenSSL BN_mod_exp_mont_consttimex2 相比,在 1024 和 2048 位大小的固定窗口指数运算中,我们的 512 位实现分别提供了 1.75 和 1.38 的加速比,而 256 位版本对于 1024 和 2048 位大小的加速比分别为 1.51 和 1.05(此情况下为 4 个值的批量)。
引用
@article{arxiv.2410.18129,
title = {Truncated multiplication and batch software SIMD AVX512 implementation for faster Montgomery multiplications and modular exponentiation},
author = {Laurent-Stéphane Didier and Nadia Mrabet and Léa Glandus and Jean-Marc Robert},
journal= {arXiv preprint arXiv:2410.18129},
year = {2024}
}