デュアルコアARMチップセットMSM8660のパフォーマンスを最大限に引き出すために、ARMアセンブリの最適化とマルチスレッドを使用するAndroid向けのネイティブライブラリを開発しています。私が気づいたいくつかの測定をしながら次クアルコムScorpionデュアルコアARM NEONコードの問題?
- NEONの最適化とシングルスレッドライブラリは、ARMv6のの最適化(予想通り)とシングルスレッドライブラリーより高速です。
- ARMv6の最適化とマルチスレッドライブラリはARMv6の最適化(予想通り)とシングルスレッドライブラリより高速です。
- NEONの最適化とマルチスレッドライブラリは、NEONの最適化(絶対に期待できない!)とシングルスレッドライブラリーより遅いです。
これはなぜこれが見つからなかったのかという理由で、ネット全体を検索してみました。すべてのコアが同じNEONパイプラインを共有しているかのように思えますが、すべての回路図は各コアが独自のNEONユニットを持つ必要があるようです。誰がなぜこれが起こっているのか知っていますか?
これを置くもう1つの方法は、ボトルネックがおそらく外部メモリの帯域幅であることです。この場合、コアを追加することは役に立ちません。 –
はい、しかし、それが外部メモリの帯域幅のみだった場合、パフォーマンスは少なくとも同等でなければなりません。もちろん、より多くのスレッドを追加することでより多くのコンテキスト切り替えが導入されますが、パフォーマンスにどれだけ影響を与えるかわかりません。 – onemasse