Spektre によって提供されたコードは、C でモジュラー演算と数論変換 (NTT) 最適化を実装します。以下にコードの説明と、提起された質問への回答を示します。
1. NTT パフォーマンスの最適化:
NTT パフォーマンスを最適化するために、コードはいくつかの手法を使用します:
2.剰余算術最適化の安全性:
剰余算術の最適化では、0xC0000001 である剰余素数 p の特定のプロパティが利用されます。ただし、これらの最適化は p の異なる値には適さない可能性があることに注意することが重要です。
1。 NTT 高速ループの再配置:
メイン NTT ループは、パフォーマンス向上のために再配置されました。
2.剰余演算における分岐の削減:
ビット単位のトリックを使用して modadd() での分岐が排除され、実行が高速化されました。
3.不要な if ステートメントの削除:
不要な if ステートメントとビットごとの関数が削除され、コードがさらに合理化されました。
4.新しい Modmul インライン アセンブリ:
modmul() 関数は新しいインライン アセンブリ実装で強化され、速度がさらに向上しました。
Spektre が提供するコードにより、NTT およびモジュラー演算のパフォーマンスが大幅に向上します。最適化には、アルゴリズムの改善、事前計算されたパワー テーブル、効率的なインライン アセンブリが含まれます。
以上がSpektre の C 実装はモジュラー演算と NTT をどのように最適化してパフォーマンスを向上させますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。