用于多项式求值的高性能SIMD模运算
High performance SIMD modular arithmetic for polynomial evaluation
摘要:
计算机代数中的两个基本问题,即多项式分解和多项式最大公约数的计算,可以有效地解决由于使用模运算的两个变量的多个多项式求值。在这篇文章中,我们专注于在单个CPU内核上高效地计算这种多项式求值。我们首先展示了如何利用SIMD计算在AVX 2和AVX-512单元上进行模运算,同时使用intrinsic和OpenMP编译器指令。然后,我们设法增加操作强度,并利用指令级并行,以提高这些多项式评估的计算效率。所有这一切最终使AVX 2的性能提高了约5倍,AVX-512的性能提高了约10倍。
英文摘要:
Two essential problems in Computer Algebra, namely polynomial factorization and polynomial greatest common divisor computation, can be efficiently solved thanks to multiple polynomial evaluations in two variables using modular arithmetic. In this article, we focus on the efficient computation of such polynomial evaluations on one single CPU core. We first show how to leverage SIMD computing for modular arithmetic on AVX2 and AVX-512 units, using both intrinsics and OpenMP compiler directives. Then we manage to increase the operational intensity and to exploit instruction-level parallelism in order to increase the compute efficiency of these polynomial evaluations. All this results in the end to performance gains up to about 5x on AVX2 and 10x on AVX-512.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。