問題タブ [intrinsics]
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.
c - ARM Cortex-a8 で乗算および累算組み込み関数を使用する方法は?
GCC が提供する Multiply-Accumulate 組み込み関数の使用方法は?
この関数に渡さなければならない 3 つのパラメーターを誰か説明できますか? ソースレジスタとデスティネーションレジスタ、および関数が返すものを意味しますか?
ヘルプ!!!
simd - NEON SIMDを使用して2行の要素をマージする方法は?
私は
私は私と2列を持っています、
これらからどうやって得ることができますか -
これらの 2 つの行をマージできる単一の NEON SIMD 命令はありますか? または、組み込み関数を使用して可能な限り最小限の手順でこれを達成するにはどうすればよいですか?
zip/unzip組み込み関数を使用することを考えましたが、 zip 関数が返すデータ型はfloat32x2x2_t
、私には適していませんfloat32x4_t
。データ型が必要です。
optimization - SSE2 組み込み関数: メモリーに直接アクセス
多くの SSE 命令では、ソース オペランドを 16 バイト アラインされたメモリ アドレスにすることができます。たとえば、さまざまな (un) pack 命令。PUNCKLBW には次の署名があります。
PUNPCKLBW xmm1, xmm2/m128
現在、これは組み込み関数ではまったく可能ではないようです。_mm_load* 組み込み関数を使用してメモリ内の何かを読み取ることが必須のようです。これは、PUNPCKLBW の組み込みです。
__m128i _mm_unpacklo_epi8 (__m128i a、__m128i b);
(私の知る限り、__m128i 型は常に XMM レジスタを参照します。)
さて、これはなぜですか?メモリを直接アドレス指定することで最適化の可能性が見られるので、かなり悲しいです...
c - 組み込み関数、定義できません(C)
abs()という関数を実装しました。このエラーが発生します:
組み込み関数、定義できません
私は何を間違えましたか?VisualStudio2005を使用しています。
arm - 8 ビットの uint8_t を uint32_t としてロードしますか?
私の画像処理プロジェクトはグレースケール画像で動作します。ARM Cortex-A8 プロセッサ プラットフォームを使用しています。NEONを活用したい。
私はグレースケールの画像を持っています (以下の例を考えてください)。私のアルゴリズムでは、列のみを追加する必要があります。
4 つの 8 ビット ピクセル値( uint8_t ) を4 つの uint32_tとして128 ビット NEON レジスタの 1 つに並列にロードするにはどうすればよいですか? これを行うには、どの組み込み関数を使用する必要がありますか?
つまり:
よく見ると、255 + 255 を実行する瞬間は 512 であり、8 ビット レジスタに保持できないため、32 ビットとしてロードする必要があります。
例えば
gcc - Mac での SSE4.1 組み込みコンパイル エラー
SSE4.1 組み込み関数をサポートしている (と思う) ハードウェアで SSE4.1 組み込み関数を使用するのに問題があります。私が何かを逃したかどうか誰かに教えてもらえますか?
MacBookPro5,4 (Penryn) で次のコードをビルドします。
次のエラーが生成されます。
arm - NEON 比較 (以上) 命令の使用方法
一般的な NEON 比較命令の使用方法
これは、私が使用したい、より大きいまたは等しい命令ですか?
現在、私は、
NEON では、x を同じように使用したいと思いますが、今回の x はベクトルです。
c - SSE 組み込み関数を使用して連続しないメモリ位置に値を格納する方法は?
私は SSE の初心者で、組み込み関数を使用してコードのセクションを最適化しました。操作自体には満足しているのですが、結果の書き方をもっとうまくできないかと模索中です。結果は 3 つの_m128i
変数になります。
私がやろうとしているのは、結果値から特定のバイトを連続しないメモリ位置に保存することです。私は現在これをやっています:
ここy
で、、、cb
およびcr
はバイト ( unsigned char
) 配列です。私が定義できない理由から、これは私には間違っているようです。より良い方法について何か提案はありますか?
ありがとう!
c++ - サイクルを最適化するには?
次のボトルネック関数があります。
C++
コードを SSE2 組み込み関数に置き換えたい。試してみ_mm_cmpgt_epi8
ましたが、符号付き比較を使用しました。符号なしの比較が必要です。
私の問題を解決するためのトリック (SSE、SSE2、SSSE3) はありますか?
注: この場合、マルチスレッドを使用したくありません。
arm - 組み込み関数を使用した先行ゼロの計算
組み込みシステム(FLACデコード、Windows CE、ARM 926 MCU)で動作するコードを最適化しようとしています。
デフォルトの実装では、マクロとルックアップテーブルを使用します。
bsr
ただし、ほとんどのCPUには、x86およびclz
ARM(http://www.devmaster.net/articles/fixed-point-optimizations/ )に専用の命令がすでにあり、より効率的です。
_CountLeadingZeros
Windows CEには、その値を呼び出すだけの組み込み関数があります。ただし、マクロの4倍の速度です(1,000万回の反復で測定)。
専用のASM命令に依存する(はずの)組み込み関数が4倍遅くなる可能性はありますか?