私はCPUの機能について少し勉強していて、NEONを見つけました。AndroidプログラムではどのようにNEON SIMDを使用しますか?
NEONはこれを使用するには特定のプログラミングが必要ですが、これは完全に正しいですか、この機能を備えたCPUはまだそれを調整し、それには特定のコードはありませんが?
私はCPUの機能について少し勉強していて、NEONを見つけました。AndroidプログラムではどのようにNEON SIMDを使用しますか?
NEONはこれを使用するには特定のプログラミングが必要ですが、これは完全に正しいですか、この機能を備えたCPUはまだそれを調整し、それには特定のコードはありませんが?
NEON命令を使用する方法はいくつかあります。それらのいくつかは:
ハンドコーディングされたアセンブラ。あなたが最高のパフォーマンスを達成したい場合、これは最高のようです。それはまた、多大な労力とCS知識を必要とします。
最後に、NEONを使用するアプリをダウンロードするだけで、NEONを使用できます。お気に入りの音楽プレーヤーは、おそらくあなたのスマートフォンにうまく利用してNEONユニットを置く:)
結論:NEONは用法をたくさん持っていますが、コードは、具体的NEON命令が含まれている場合にのみ使用されます。より技術的には、@ pstが述べたように、がコードをターゲットにする必要があります。
ありがとうございます。ミュージック/ビデオ再生のあなたの言及は、私たちがSoundPoolを使用するとき、アンドロイドはそれを自動的に使用する(コンパイルする)ことを意味しますか? (私は、2つの携帯電話のサウンドエフェクトを開始する速度の違いに気付きました.1つは、ネオンを含む、もう1つは、cpu機能にリストされています)。 – Tam
ほとんどの場合、AndroidはオーディオAPIの最適化バージョンを提供します。 NEONをサポートしている電話機、およびNEONのないもののためのシンプルなC++バージョンです。私はAndroidのソースコードやドライバをチェックしませんでしたが、これは標準モデルです。 – Sam
命令セットの拡張は* something *(drivers/kernel/Cライブラリなど)の対象にする必要があります。 –
Androidコンパイラがこれを特定のレベルにするという意味で(すべてのcpusにこの機能があるわけではないので)?私はMMXの拡張機能のように、インテルcpusはプログラマーがターゲットにしなければならないと思っていたコンパイラが、それが存在すると仮定していたと思っていましたが、古くなってしまいました.. – Tam
コンパイラは、しかし、「60%-150%の数字」と主張している人にとっては、それでもハンドコーディングと本来の使用知識が必要です。(アセンブリでプログラム全体を書くのではなく、CODECや3D変換など) –