AArch64でsqrt関数のパフォーマンスを学ぶために取り上げています。シングルフロートsqrtf関数の コード:ダブルフロートSQRTためAArch64でのsqrt関数のパフォーマンス
fsqrt s0, s0
ret
コード機能:私はここからFSQRTのために理論的なレイテンシを参照しています
fsqrt d0, d0
ret
シングルsqrtはダブルの2倍のようです。
しかし、私はこれらの番号を取得していプロファイリング中:
326 ms sqrt
82 ms sqrtf
私は同じサイクル数の時間を取っています。 これらの数値から、sqrtfは4倍優れているようです。
理由がわかりません。 インターネットでのこの命令の実際の説明については、適切な説明を見つけることができません。
これに関する情報や方向性は、本当に便利です。
命令のアラインメントを変更して再度測定し、必要に応じて繰り返します。命令の1つのインスタンスを測定しようとしている場合、成功する可能性は低いです。 –
@old_timerループで100万回の関数呼び出しのパフォーマンスを測定しています。それは問題ではありません。 –