Skip to main content
QUICK REVIEW

[論文レビュー] Toom-Cook Multiplication: Some Theoretical and Practical Aspects

M. J. Kronenburg|arXiv (Cornell University)|Feb 8, 2016
Cryptography and Residue Arithmetic参考文献 4被引用数 5
ひとこと要約

本稿は、並列処理環境における効率性に重点を置き、トゥーム・クック乗算の理論的・実用的分析を提示する。B方向のトゥーム・クック乗算の複雑度を導出し、補間法の証明(偶数・奇数最適化を含む)、8スレッドで10⁸桁の処理において単一スレッドのGMP FFT乗算と比較して最大3.81倍の高速化を達成した32ビットのC++/アセンブリ実装を実施している。

ABSTRACT

Toom-Cook multiprecision multiplication is a well-known multiprecision multiplication method, which can make use of multiprocessor systems. In this paper the Toom-Cook complexity is derived, some explicit proofs of the Toom-Cook interpolation method are given, the even-odd method for interpolation is explained, and certain aspects of a 32-bit C++ and assembler implementation, which is in development, are discussed. A performance graph of this implementation is provided. The Toom-Cook method can also be used to multithread other types of multiplication, which is demonstrated for 32-bit GMP FFT multiplication.

研究の動機と目的

  • B方向のトゥーム・クック乗算の理論的複雑度を分析し、その漸近的時間複雑度を導出すること。
  • ニュートンおよびラグランジュ表現を用いたトゥーム・クック補間法の明示的証明を提供すること。
  • 偶数・奇数補間技術を説明・最適化し、計算オーバーヘッドを2倍に削減すること。
  • トゥーム・クックを用いて、GMP FFT乗算を含む他の乗算アルゴリズムの並列化(マルチスレッド化)を実証すること。
  • マルチコアシステムにおけるパフォーマンスベンチマークを提示・評価する32ビットのC++およびアセンブリ実装を提示すること。

提案手法

  • B方向のトゥーム・クック乗算の時間複雑度を $ T(N) = N^{ rac{/log(2B-1)}{/log(B)}} $ として導出し、2次未塔のスケーリングを示している。
  • 除法差分を用いて再帰的係数 $ \alpha_k $ を定義するニュートン補間を用い、積多項式を再構築している。
  • 偶数・奇数法を適用して多項式を偶数部と奇数部に分割し、補間コストを $ (2n)^2Y $ から $ 2n^2Y $ に削減している。
  • ビットシフトによる効率的乗算を可能にするために、小さな補間点 $ x_k = 0,1,2,4,...,2^{n-1} $ を用いている。
  • 複数のプロセッサに分散される独立した部分乗算を並列化するために、トゥーム・クックを最上位レベルで統合している。
  • 各スレッドがFFTベースの乗算を実行するマルチスレッドフレームワーク内で、トゥーム・クックとGMP FFT乗算を統合している。

実験結果

リサーチクエスチョン

  • RQ1B方向のトゥーム・クック乗算の理論的時間複雑度は何か?また、Bの増加に伴いどのようにスケーリングされるか?
  • RQ2トゥーム・クック乗算における多項式補間はどのように効率的に計算可能か?また、コストを低減する最適化は何か?
  • RQ3トゥーム・クックを用いて、GMP FFTのような他の乗算アルゴリズムをどれほど効果的にマルチスレッド化できるか?
  • RQ4現代のマルチコアシステムにおいて、32ビットのC++/アセンブリ実装を用いた実際のパフォーマンス向上はどの程度達成できるか?
  • RQ5偶数・奇数補間法は計算コストをどの程度低減させ、並列処理にどのような影響を与えるか?

主な発見

  • 10⁸桁の処理において、8スレッドを用いた32ビットのトゥーム・クック実装は、単一スレッドのGMP FFT乗算と比較して3.81倍の高速化を達成した。
  • 10⁸桁の処理において、GMP FFTを併用したマルチスレッドのトゥーム・クックは、1スレッドの22.3秒から8スレッドの7.7秒に短縮され、2.90倍の改善が得られた。
  • 大規模な入力において観測されたパフォーマンス勾配1.265は、32方向のトゥーム・クックの理論的複雑度1.239に近く、一致している。
  • 偶数・奇数補間法は補間時間を2倍に削減し、偶数部と奇数部の独立した並列処理を可能にした。
  • マルチスレディングなしではメモリ使用量が入力サイズの最大6倍に増加し、マルチスレディングでは入力サイズの $ 6 \cdot \text{nthr}/B $ 倍に増加した。
  • 64ビットシステムとより高いB値(例:B=32)を用いることで、さらなるパフォーマンス向上が可能であることが実装で示されたが、32ビットプロトタイプではB=16が使用された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。