問題タブ [neon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
877 参照

iphone - iOSでの配列の高速比較

値の小さな2D配列を、はるかに大きな2D値の配列の周りに移動し、小さな配列の対応する値よりも大きい大きな配列の値を小さな配列の値に設定する必要があります。画像合成のようなものですが、フロートの2つの2D配列を使用していると考えてください。私はこれをできるだけ速く何回も行う必要があります。NEON Assembly、Accelerateフレームワーク、または私が聞いたことのない他の方法を使用して最適化する方法があるかどうか疑問に思っています。値を比較して置き換えるための二重ネストされたforループよりもはるかに高速なものはありますか?たとえば、値を2D配列ではなく1D配列として格納する方が速いでしょうか。または、各列を下に移動するのではなく、行全体の値にアクセスする方が高速ですか?私が得ることができる余分な速度を絞り出そうとしているだけですが、方法はわかりません。

0 投票する
2 に答える
918 参照

c - ネオンで改善するコード

いくつかのコードを改善しようとしましたが、できませんでした。ここで助けを求めます。組み込み関数も試しましたが、組み込み関数を使用する場合は、GCCコンパイラを使用する必要があります。このコンパイラは、LLVMよりも遅いコードをコンパイルします。 、するとすべてのコードが遅くなるため、asmを直接使用するのが最善のオプションです。改善したい両方の関数とネオンのコードを入れました。コードはナンセンスな数値を返しています。私は本当にこれについて助けが必要です、正しい方向へのどんなポイントでも私を大いに助けることができます。

改善したいコード:

ネオンコードが機能しない

どうもありがとう!!!

0 投票する
4 に答える
4105 参照

android - ARM アセンブラー NEON - パフォーマンスの向上

アルゴリズムの一部を C から ARM アセンブラー (NEON 命令を使用) に変換しましたが、元の C コードよりも 2 倍遅くなりました。どうすればパフォーマンスを向上させることができますか?

ターゲットは ARM Cortex-A9 です。

このアルゴリズムは、配列から 64 ビット値を読み取ります。この値から 1 バイトが抽出され、別のテーブルのルックアップ値として使用されます。この部分は約 10 回実行され、結果の各テーブル値が他の値と XOR 演算され、最終結果が別の配列に書き込まれます。

このようなもの:

私のアプローチでは、配列「a」全体を Neon Registers にロードしてから、右のバイトをアームレジスタに移動し、オフセットを計算してから、テーブルから値をロードします。

ここで、r2 はルックアップ テーブルのベース アドレスを保持します。

このステップ (最初のロードを除く) は 100 回ほど実行されます。なぜこれはとても遅いのですか?

また、 「vld」「vldr」、および「vldm」の違いは何ですか- そしてどれが最速です。Neon レジスタ内でのみオフセット計算を実行するにはどうすればよいですか? ありがとうございました。

0 投票する
1 に答える
726 参照

c - ARM ネオン組み込み関数を使用した深度変換

私は NEON 組み込み関数に頭を悩ませようとしており、例から始めていくつかの質問をすることができると考えました。

この実験では、32 ビット RGB を 16 ビット BGR に変換します。次のコードを NEON 組み込み関数を使用するように変換するには、まず何が良いでしょうか? ここで私が抱えている問題は、16 ビットが、私が見ることができる組み込みと一致しないことです。16x4 16x8 などがありますが、これにどのようにアプローチする必要があるかについて自分の考えをまとめる運がほとんどありません。任意のヒント?

これが私が変換しようとしているコードです。

編集: ああ、何らかの理由で 16x3 ビットを考慮してこれを見ていましたが、5,6,5 = 16 ビットを見ています。シフトが必要だと気づきました。うーん。

0 投票する
2 に答える
1218 参照

assembly - ARM Neon Assembler - working with overflowing registers

I want to do the following: I have 8 values (8 x 1Byte) in a Neon D-Register (=64Bit). Now I need to shift every value 3 to the left, but I dont want to lose any Bits. Afterwards I need to add to every value in the vector the same 32Bit value.

As I understood it i can use the VQSHL instruction to put the result in 2 D-Registers if it overflows? How do I know if an overflow occured and guarantee/force that all of my data are in the new registers?

Also could you help me with some Code for the shift and Add part?

Example Code:

out0 = CONSTANT_32BIT + ( input0 << 3)

out1 = CONSTANT_32BIT + ( input1 << 3)

out_n = CONSTANT_32BIT + ( input_n << 3)

So in theory i could do 8 or 16 of these instructions in parallel using Neon registers?

Target is an ARM Cortex-A9 if this is important.

0 投票する
3 に答える
1463 参照

android - ARMNeonAssembler-奇妙なパイプラインの問題

ネオン命令を使用してARMアセンブラで記述されたコードのパフォーマンスを向上させようとしています。

テストと計算には、次の計算機を使用します:http: //pulsar.webshaker.net/ccc/sample-706454b3

行"n.34-01c n0"で、突然ネオンユニットが10サイクル待機(?)しなければならないように見えることに気づきました。その理由は何でしょうか、それとも電卓のバグなのですか?

また、ARM/Neonアセンブラのパフォーマンスを向上させるための一般的な情報も必要です。

ターゲットはARMCortex-A9です。コンパイルには、インラインアセンブラを備えた最新のandroid-ndkを使用します。ありがとうございました。

0 投票する
4 に答える
9575 参照

arm - Arm Neon Intrinsic vs ハンド アセンブリ

https://web.archive.org/web/20170227190422/http://hilbert-space.de/?p=22

かなり古いこのサイトでは、手書きの asm が組み込み関数よりもはるかに大きな改善をもたらすことを示しています。2012年の今でもこれが真実なのか疑問です。

では、gnu クロス コンパイラを使用した組み込み関数のコンパイルの最適化は改善されましたか?

0 投票する
2 に答える
1696 参照

android - Android NDK の ARM NEON デバッグ

ARM 用の NDK (Android Native development Kit) には、古い GDB を含む gcc および GNU utils ツールチェーンが付属しています。ただし、GDB は VFP または NEON SIMD 拡張のレジスタの内容を表示できないようです。つまり、NEON/VFP 命令を使用してプログラムをデバッグする場合、レジスタのサブセットのみが表示されます。この能力を得るには、新しいバージョンの GDB が必要だと思います。使用しているハードウェアは NEON をサポートしています。

新しい gdb が必要なのですが、出荷時の Google NDK の GDB ではこれができないというのは本当ですか?

ARM Android デバイスで VFP/NEON コードをデバッグするためのビルド済みの GDB はありますか、またはこれを実行できる最新の GDB を含む NDK ツールチェーンを生成する手順はありますか? (Windows/Linux 64 ビット ホストの場合)

0 投票する
2 に答える
286 参照

c - NEONに「emms」のようなものはありますか?

q0NEON では、SIMD レジスタ~は float レジスタ~q7と共有されることがわかっています。したがって、以下のコードにはバグがあります。s0s31

x86 では、emms で解決できます。しかし、NEONでどうやってそれを行うのですか? 私の一時的な解決策はvolatileonを使用することvertStepLumaです。より良い方法はありますか?ありがとう!