3.3 NEON のコードの記述方法

NEON のコードを記述するには、多くの方法を使用できます。

以下の方法があります。
  • アセンブリ言語で記述するか、C の組み込みアセンブリ言語を使用し、NEON 命令を直接使用します。
  • NEON の C 言語の拡張機能を使用して、C または C++ で記述します。
  • NEON 命令を使用するために最適化されたライブラリルーチンを呼び出します。
  • 自動ベクトル化を使用して、ループを NEON 用にベクトル化します。
パフォーマンスを最適化するには、プログラム内で多くの時間を浪費している場所を知る必要があります。パフォーマンスを最大限に向上させるには、現実的な条件のもとでコードのプロファイリングおよびベンチマークを行うことも必要です。
関連する概念
3.2 NEON ユニット
3.6 自動ベクトル化
3.8 ストライドパターンとデータアクセス
3.9 NEON ベクトル化によるパフォーマンスに影響を与える要因
3.12 コードをベクトル化するときのデータの依存関係による競合
3.13 キャリーアラウンドスカラ変数とベクトル化
3.14 ベクタのスカラへの縮退
3.15 ポインタを含むループのベクトル化
3.16 ポインタおよび間接アドレス指定を含むループの非ベクトル化
3.17 条件付き終了の非ベクトル化
3.18 ベクトル化可能なループ繰り返し回数
3.19 __promise(expr) によるコンパイラへのループ繰り返し回数の指定
3.20 ベクトル化のための構造体アクセスのグループ化
3.21 ベクトル化と struct メンバの長さ
3.22 ループ内からの非インライン関数への関数呼び出しの非ベクトル化
3.23 条件付きステートメントと効率的なベクトル化
3.24 ベクトル化診断を使用してコードを調整し、パフォーマンスを改善する
3.25 ベクトル化可能なコードの例
3.26 DSP のベクトル化可能なコードの例
関連する作業
3.4 C または C++ コードからの NEON 命令の生成
関連する参考文書
8.192 --vectorize、--no_vectorize
3.5 NEON の C 拡張機能
3.7 ベクトル化可能なループ内のデータ参照
3.10 NEON ベクトル化によるパフォーマンスの目標
3.11 ベクトル化のために推奨されるループ構造
3.27 自動ベクトル化を制限または抑制する要因
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.