2

Androidプラットフォームでベクトル乗算、ベクトル変換(intからFP)などの複雑な数学演算を実行するために推奨されるパッケージ。java.lang.mathが十分に頑丈であるようには見えません。NDKと優れたc/c++libまたはsiglibを調べることが提案されています。他に何か提案はありますか?ありがとう...

4

1 に答える 1

1

昨年、SIMD 数学に関するトピックを含む本を読んでいました。ご存知かもしれませんが、SIMD 演算はベクトル乗算とベクトル変換プロセスを高速化するために使用されます。ソニーの VectorMath ライブラリを調べました。

プロセッサの高価なアプリケーションを構築するつもりはありませんでしたが、便利で使いやすいものでした。問題は、実際には Sony PS3 プロセッサ アーキテクチャ用に設計されたものであり、ARM チップセットで使用できるかどうかわからないことだと思います。

ここにリンクがあります: Bullet SIMDMath ライブラリ: http://bullet.svn.sourceforge.net/viewvc/bullet/trunk/Extras/simdmathlibrary/

Bullet VectorMath ライブラリ: http://bullet.svn.sourceforge.net/viewvc/bullet/trunk/Extras/vectormathlibrary/

編集

ウィキペディアのARMアーキテクチャページから直接引用:

Advanced SIMD (NEON) Advanced SIMD 拡張機能 (別名 NEON または「MPE」メディア処理エンジン) は、64 ビットと 128 ビットを組み合わせた SIMD (Single Instruction Multiple Data) 命令セットであり、メディアおよび信号処理アプリケーションに標準化されたアクセラレーションを提供します。NEON はすべての Cortex-A8 デバイスに含まれていますが、Cortex-A9 デバイスではオプションです。[33] NEON は、10 MHz で動作する CPU で MP3 オーディオ デコーディングを実行でき、GSM アダプティブ マルチレート (AMR) 音声コーデックを 13 MHz 以下で実行できます。包括的な命令セット、個別のレジスタ ファイル、および独立した実行ハードウェアを備えています [34]。NEON は、8 ビット、16 ビット、32 ビット、および 64 ビットの整数と単精度 (32 ビット) 浮動小数点データをサポートし、SIMD 演算で動作して、オーディオとビデオの処理、グラフィックスとゲームの処理を処理します。ネオンでは、SIMD は同時に最大 16 の操作をサポートします。NEON ハードウェアは、VFP で使用されるのと同じ浮動小数点レジスタを共有します。ARM Cortex-A8 や Cortex-A9 などのデバイスは 128 ビットのベクトルをサポートしていますが、一度に実行できるのは 64 ビットだけです [32] のに対して、新しい Cortex-A15 デバイスは一度に 128 ビットを実行できます。

つまり、SIMD 命令の保証はありませんが、保証される可能性があります。

そして Tegra ファミリー:

Tegra 2 と比較して、Tegra 3 の ARM Cortex-A9 は ARM の SIMD 拡張である NEON をサポートするようになりました。

于 2012-09-11T00:13:29.160 に答える