限界を押し広げる:手書きの ARM Cortex-A53 NEON アセンブリカーネル

2025-04-21

この記事では、ARM Cortex-A53向けにNEONアセンブリカーネルを最適化する方法を深く掘り下げています。y[n] = ax[n] + bを例に、Cortex-A53の命令タイミング特性(部分的なデュアルイシュー機能と順次実行)を利用して、64ビットロードデータパスの制約を克服する方法を詳細に説明します。命令パイプラインとプリフェッチなどのテクニックを使用して、パフォーマンスを最大限に高めます。手書きのアセンブリカーネルは、LLVMによって生成されたコードよりも大幅に優れたパフォーマンスを示し、堅牢なCPUモデルがない場合の手動最適化の可能性を強調しています。