問題タブ [sse3]

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 投票する
1 に答える
258 参照

x86 - SSSE3 フラグ付きの ROS (ロボット オペレーティング システム)

私は最近 ROS を使い始めましたが、1 つの問題に行き詰まりました。SSE2、SSE3、および SSSE3 CPU 拡張機能を必要とするいくつかのクラスを使用する必要があります。

ROS パッケージの manifest.xml ファイルを次のように編集しようとしました

しかし、うまくいきませんでした!

コードは "Not-ROS-project" で正常に動作しましたが、何らかの理由で cflags がコンパイラから無視されているようです。

私は LinuxMint (ubuntu 12.04) に取り組んでおり、チップ拡張をサポートしています。

フラグはどこに置く必要がありますか?

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

c++ - C++SSE3命令セットが有効になっていません

からのHMMlibライブラリを使用してC++でいくつかの隠れマルコフコードを処理しようとしています

私はubuntu12.04をgcc/g++4.6で使用しています

私のコンパイル手順は次のとおりです。

これにより、次のエラーが発生します。

私はこれらのエラーが何を意味するのか、そしてそれらをどのように解決するのか全く分かりません

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

assembly - AVXとバブルソート

入力に単精度数値を含む AVX 命令を使用して、バブル ソート アルゴリズムを開発する必要があります。最適な実装を探すのを手伝ってくれる人はいますか?

SSE3のバブル ソート バージョンを実行しました。

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

c++ - SSSE3 組み込み関数を有効にするが、コンパイラの最適化での使用を無効にする方法

SSSE3 組み込みコマンド (トリプル S に注意) を使用するコードと、それを使用するかどうかのランタイム チェックがあるため、アプリケーションは SSSE3 をサポートしていない CPU で実行する必要があると想定しました。ただし、-O1 最適化で -mssse3 を使用すると、コンパイラは、明示的に呼び出していない SSSE3 命令も挿入するため、プログラムがクラッシュします。

関連する組み込み関数を明示的に呼び出すときに SSSE3 コードを有効にする方法はありますが、コンパイラが独自の SSSE3 コードを追加するのを止める方法はありますか?

-O1 最適化を無効にすることはできないことに注意してください。

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

vectorization - SIMD 整数ストア

SSE 命令を使用して整数値の乗算と加算を行うプログラムを作成しています。フロートで同じプログラムを実行しましたが、整数バージョンの指示がありません。

float を使用すると、すべての操作が完了したら、値を通常の float 配列に戻して次のようにします。

temp4 は float * で、temp3 は __m128 です。

問題は、整数の同様の組み込み関数が見つからないことです。値を通常の配列に戻すにはどうすればよいですか?

回答ありがとうございます ;)

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

c# - 宛先配列に「ギャップ」があるファイルの読み取り

ファイルを「ギャップ」のある配列に読み込む方法を見つけようとしています。
したがって、読み取りデータはバイト配列bufferの位置buffer[0], buffer[2], .., buffer[2*i]にあり、速度が大幅に低下することはありません。

より具体的には、int 単位 (つまり ) で読みたいと思いb[0], b[4], ..., b[i * 4]ます。

それは何らかの方法で可能ですか (C#、C++)、または別のアプローチを探す必要がありますか?

もう少し背景:
私はハッシュアルゴリズムを高速化しようとしています(ファイルをブロックごとにハッシュし、ブロックハッシュを連結し、ハッシュし、結果のハッシュを取得します)。
アイデアは、SSE3 を使用して 4 つのブロックを「並列」で実行することでした。そのため、データをそのように必要とするため、データをレジスタに簡単にロードできます。

私が C++ で書いた (pinvokable) lib は良い結果 (つまり 4 倍の速さ) をもたらしますが、データを並べ替えると速度が低下します。

現在、ファイルをブロックごとに読み取ってから、int を並べ替えています (C#):

chunkはバイト配列でchunkIndexあり、int であり、メソッドのパラメーターとして渡されます。私のC++コードによって割り当てられ
bufferたポインタです。uint32_t*

これの問題は、時間がかかりすぎることです。上記のコードを 4 回呼び出すと、約 90 ミリ秒かかりますが、ハッシュには 3 ミリ秒かかります。
大きな不一致は少し奇妙に思えますが、正しいハッシュが生成されます。

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

intel - Intel 組み込み関数 SSSE3 の代替を使用するとパフォーマンスが低下する

MMX、SSE、SSE2、および SSE3 のみをサポートする Intel Atom プロセッサに移植する必要があるパフォーマンス クリティカルなアプリケーションを開発しています。私の以前のアプリケーションは AVX だけでなく SSSE3 もサポートしていましたが、今は Intel Atom プロセッサ (MMX、SSE、SSE2、SSE3) にダウングレードしたいと考えています。

特にssse3命令_mm_hadd_epi16をこのコードに置き換えると、パフォーマンスが大幅に低下します

これは、この特定の命令に対して私が思いついた最高の変換です。しかし、この変更はプログラム全体のパフォーマンスに深刻な影響を与えました。

MMX、SSE、SSE2、および SSE3 命令内で、よりパフォーマンス効率の高い代替案を命令に提案して_mm_hadd_epi16ください。前もって感謝します。

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

intel - Atom cloverview プロセッサの Intel 組み込み関数のサポート

SSE to AVX を使用する Sandbridge プロセッサ用に設計されたアプリケーションがあり、同じアプリケーションを Atom プロセッサで実行したいと考えています。

私は最近、Atom cloverview プロセッサの組み込みサポートについてネットを閲覧していました。言及されているすべての場所で、SSE3までサポートされています。

ただし、これは SSE3 までしかサポートしていないか、SSE3 に追加の SSE3 が含まれていることを意味します。

Intel Atom アーキテクチャ マニュアルでは、すべての Atom プロセッサが SSE3 および SSSE3 までの単一命令複数データ拡張をサポートすると述べています。

アプリケーションを開発していて、SSSE3をアプリケーションに含めるかどうかわからないので、誰かが上記について明確にしてくれませんか。

Intel Atom が SSSE3 をサポートしていれば、私の苦痛はかなり軽減されます

前もって感謝します。

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

c - int から (16 ビット) __m128i への変換

プログラムの一部として次のコードがありますが、コンパイルすると次のエラーが発生します。

コードの場所:

問題はこの行にあります

命令を見つけました__m128i _mm_cvtsi32_si128(int a)が、残念ながら、16 ビット要素 (サイズ 8 のベクトル) があるのに対し、32 ビット要素のみに使用されます。

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

audio - SSE/simd 命令を使用して 24 ビット オーディオを 16 ビット オーディオに変換する

オーディオ サンプルの配列に対して (組み込み関数または asm を使用して) 24 ビットから 16 ビットへの量子化を行う高速な方法があるかどうか疑問に思います。

ソース形式は署名済み 24 ファイルです。

更新:説明のように変換を行うことができました:

ディザリングについて - 量子化効果を回避するには?

どんなヒントでも大歓迎です。どうも