Abstract
In this study, we implemented large integer multiplication with Single Instruction Multiple Data (SIMD) instructions. We evaluated the implementation on a processor with Cannon Lake microarchitecture, containing Intel AVX-512IFMA (Integer Fused Multiply-Add) instructions. AVX-512IFMA can compute multiple 52-bit integer multiplication and addition operations through one instruction and it has the potential to process large integer multiplications faster than its conventional AVX-512 counterpart. Furthermore, the AVX-512IFMA instructions take three 52-bit integers of 64-bit spaces as operands, and we can use the remaining 12 bits effectively to accumulate carries (reduced-radix representation). For multiplication in the context of larger integers, we applied the Karatsuba and Basecase methods to our program. The former is known to be a faster algorithm than the latter. For evaluation purposes, we compared execution times against extant alternatives and the GNU Multiple Precision Arithmetic Library (GMP). This comparison showed that we were able to achieve a substantive improvement in performance. Specifically, our proposed approach was up to approximately 3.07 times faster than AVX-512F (Foundation) and approximately 2.97 times faster than GMP.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
GMP source code used in Mathematica. http://www.wolfram.com/LGPL/GMP
The GNU MP. https://gmplib.org/
Intel AVX-512 Instructions and Their Use in the Implementation of Math Functions, http://www.fit.vutbr.cz/~iklubal/IPA/AVX-512_Cornea.pdf
Intel Intrinsics Guide. https://software.intel.com/sites/landingpage/IntrinsicsGuide/#avx512techs=AVX512IFMA52
Mathematica. https://www.wolfram.com/mathematica/index.en.html
Maxima. http://maxima.sourceforge.net
Intel Xeon Phi Processor Product Brief. https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/xeon-phi-processor-product-brief.pdf (2016)
Second Generation Intel Xeon Scalable Processors Specification Update. https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/2nd-gen-xeon-scalable-spec-update.pdf (May 2019)
Brent, R., Zimmermann, P.: Modern Computer Arithmetic. Cambridge University Press (2010)
Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301 (1965)
Drucker, N., Gueron, S.: Fast Modular Squaring with AVX512IFMA. In: Latifi, S. (ed.) 16th International Conference on Information Technology-New Generations (ITNG 2019), pp. 3–8. Springer International Publishing, Cham (2019)
Edamatsu, T., Takahashi, D.: Acceleration of Large Integer Multiplication with Intel AVX-512 Instructions. In: 2018 IEEE 20th International Conference on High Performance Computing and Communications (HPCC). pp. 211–218 (2018)
Fürer, M.: Faster integer multiplication. SIAM J. Comput. 39, 979–1005 (2009)
Gueron, S., Krasnov, V.: Accelerating Big Integer Arithmetic Using Intel IFMA Extensions. In: Proc. 2016 IEEE 23rd Symposium on Computer Arithmetic (ARITH). pp. 32–38 (2016)
Harvey, D., van der Hoeven, J.: Integer multiplication in time \(O(n\) log \(n)\) (2019), https://hal.archives-ouvertes.fr/hal-02070778
Intel Corporation: Using Streaming SIMD Extensions (SSE2) to Perform Big Multiplications, version 2.0. Technical Report AP-941 (248606–001) (2000), https://software.intel.com/sites/default/files/14/4f/24960
Karatsuba, A., Ofman, Y.: Multiplication of multidigit numbers on automata. Soviet Physics Doklady 7, 595 (1963)
Keliris, A., Maniatakos, M.: Investigating Large Integer Arithmetic on Intel Xeon Phi SIMD Extensions. In: Proc. Design & Technology of Integrated Systems In Nanoscale Era (DTIS). pp. 1–6 (2014)
Miller, V.S.: Use of elliptic curves in cryptography. In: Williams, H.C. (ed.) Advances in Cryptology – CRYPTO ’85 Proceedings, pp. 417–426. Springer, Berlin, Heidelberg (1985)
Montgomery, P.L.: Modular multiplication without trial division. Math. Comput. 44, 519–521 (1985)
Rivest, R.L., Shamir, A., Adleman, L.: A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 21, 120–126 (1978)
Schönhage, A., Strassen, V.: Schnelle Multiplikation großer Zahlen. Computing 7, 281–292 (1971)
Toom, A.L.: The complexity of a scheme of functional elements realizing the multiplication of integers. Soviet Mathematics Doklady 3, 714–716 (1963)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Edamatsu, T., Takahashi, D. (2020). Accelerating Large Integer Multiplication Using Intel AVX-512IFMA. In: Wen, S., Zomaya, A., Yang, L. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2019. Lecture Notes in Computer Science(), vol 11944. Springer, Cham. https://doi.org/10.1007/978-3-030-38991-8_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-38991-8_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-38990-1
Online ISBN: 978-3-030-38991-8
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)