質問

iphoneはネイティブに2倍にできないため、通常のフロートよりもはるかに遅くなると聞きました。

これは本当ですか?証拠?

プログラムには高精度の計算が必要であり、速度について妥協する必要があるため、この問題に非常に興味があります。

役に立ちましたか?

解決

iPhoneは、ハードウェアで単精度と倍精度の両方の演算を実行できます。 1176(オリジナルのiPhoneおよびiPhone3G)では、ほぼ同じ速度で動作しますが、より多くの単精度データをキャッシュに収めることができます。 Cortex-A8(iPhone3GS、iPhone4、iPad)では、単精度演算はVFPではなくNEONユニットで実行され、かなり高速です。

集中的な浮動小数点計算を行う場合は、armv6のコンパイル設定でサムモードを必ずオフにしてください。

他のヒント

このスライドショーは、浮動小数点が適切でない理由と、浮動小数点が存在する理由(ベクトル浮動小数点ユニット)についての洞察を提供します。どうやら、「親指モード」を確認することが重要です。浮動小数点サポートが有効かどうかに影響します。これは常に改善とは限りません。アセンブリコードで正しい指示を見つける方法を示しています。

また、コードを実行するどのバージョンの電話にも依存します。最新のものは「より高性能」だと思われます。浮動小数点演算を行います。

編集:VFPおよびNEON SSEを使用したARMでの浮動小数点最適化に関する興味深い記事があります。

ARM1176JZF-Sマニュアルには、倍精度浮動小数点数をサポートしていると書かれています。体調が良いはずです。 リンク PDFドキュメントへ。後のiPhoneはCortexチップであり、確かに機能が低下することはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top