問題タブ [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.
c++ - sse3なしでgnuプログラムをコンパイルする
アーキテクチャがsse2以降のsseをサポートしていないデバイス用にアプリをコンパイルしていますが、GNU autoconfで生成されたconfigureスクリプトからのsse3命令を使用したコンパイルを無効にすることは可能ですか?mno-sse3オプションを使用してgcc/g ++でオフにできることは知っていますが、makeファイルを生成してからそのコンパイラフラグを手動で挿入するのではなく、構成レベルでオフにできると便利です...
atomic - _mm_mwait はどのように機能しますか?
どのよう_mm_mwait
にpmmintrin.h
働くのですか?(asm ではなく、アクションと、このアクションが NUMA システムでどのように実行されるかを意味します。store
監視は、バスのスヌーピングを備えたバスベースの SMP システムでのみ簡単に実装できます。)
どのプロセッサがそれを実装していますか?
一部のスピンロックで使用されていますか?
visual-studio-2008 - Visual Studio 2008 で SSE3/SSE4.1 命令セットを有効にするにはどうすればよいですか?
私は従おうとしました:
[プロジェクト] > [プロパティ] > [構成プロパティ] > [C/C++] > [コード生成] > [拡張命令セットを有効にする]
しかし、私が得た唯一のオプションは、SSEまたはSSE2でした。
ありがとう。
c++ - 本当に基本的なSSE
パフォーマンスを改善しようとしている非常に単純なプログラムがあります。私が知っている 1 つの方法は、SSE3 を利用することです (私が作業しているマシンはこれをサポートしているため) が、これを行う方法がまったくわかりません。コード スニペット (c++) は次のとおりです。
私はこれについて少し読んで、その考えを理解しましたが、これを実装する方法がまったくわかりません。誰か助けてくれませんか?特に私の単純なプログラムの場合、これはかなり単純だと思いますが、開始するのが最も難しい場合があります。
ありがとう!
c++ - SSE 命令セットが有効になっていません
「SSE instruction set not enabled」というエラーで問題が発生しています。どうすればこれを理解できますか?
私はACER i7、Ubuntu 11.10を持っています。誰か助けてください。
どんな助けでも大歓迎です!
また実行中:
与えます:
実際、gazebo-1.0.0-RC2-x86_64 をインストールしようとして、このエラーが発生しました。
私のcmakefileにはすでにこのオプションがあります
sum - _m128ベクトルの4つの32ビット要素の合計
私は組み込み関数を使用して私のプログラムを最適化しています。しかし、結果を浮動小数点値と比較するために、__m128ベクトルにある4つの要素を合計したいと思います。たとえば、次の128ビットベクトルがあるとします:{a、bc、d}。a + b + c + dをeと比較するにはどうすればよいですか?eはfloatタイプです。
SSE2またはSSE3はそれを簡単に行う方法を提供しますか、それとも私を助けることができるコードスニペットがありますか?ありがとう !
x86 - Intel で SSE2 を使用して、オーバーフローのない符号なしバイトの合計削減
Intel i3 プロセッサで 32 要素 (各 1 バイト データ) の合計削減を見つけようとしています。これは私がしました:
ただし、私のアプリケーションはリアルタイム アプリケーションなので、時間がかかります。最終的な合計が 255 を超える可能性があることに注意してください。
低レベルの SIMD SSE2 命令を使用してこれを実装する方法はありますか? 残念ながら、私は SSE を使用したことがありません。この目的でsse2関数を検索してみましたが、これも利用できません。このような小さなサイズの問題の計算時間を短縮することは (sse) 保証されていますか?
助言がありますか??
注: OpenCL と CUDA を使用して同様のアルゴリズムを実装しましたが、問題のサイズが大きい場合にのみうまく機能しました。小規模な問題の場合、オーバーヘッドのコストはより多くなりました。SSEでの動作がわからない
c - ベクトル化のためのIntelSSE組み込み関数を使用したコードの最適化
SSE組み込み関数を扱うのはこれが初めてです。Intel SSE組み込み型(SSE4.2まで)を使用して、単純なコードをより高速なバージョンに変換しようとしています。いくつかのエラーが発生したようです。
コードのスカラーバージョンは次のとおりです:(単純な行列の乗算)
これは私のバージョンです:私は含まれています#include <ia32intrin.h>
私はこれでどこが間違っているのですか?次のようなエラーが発生します。
mm_vec.c(84):エラー:タイプ「int」の値をタイプ「__m128d」のエンティティに割り当てることはできませんa_i = __mm_load_ps(&A [n * i + k]);
これが私がコンパイルしている方法です:icc -O2 mm_vec.c -o vec
誰かがこのコードを正確に変換するのを手伝ってくれませんか。ありがとう!
アップデート:
あなたの提案によると、私は次の変更を加えました:
しかし、今はセグメンテーション違反が発生しているようです。おそらく、配列A、B、Cの配列添え字に適切にアクセスしていないため、これを知っています。私はこれに非常に慣れていないので、これをどのように進めるかわかりません。
このコードを処理するための正しいアプローチを決定するのを手伝ってください。
assembly - ASM SSSE3 コードが存在する場合、-mssse3 でコンパイルする必要がありますか?
GCC で x264 のビルドをコンパイルすることに関して質問があります。
x264 には、SSE3 や SSSE3 などの命令セットを処理するアセンブリ コードがあり、デフォルトでは、makefile で自動ベクトル化が無効になっています。
とにかく -mssse3 フラグを付けてコンパイルする必要がありますか、それとも実際にパフォーマンスが低下する可能性がありますか?
また、-mssse3 は -msse3 を意味しますか、それとも SSE3 は SSSE3 とは別のものですか?
c++ - SSE操作使用時のメモリアクセス違反
SSE3 コマンドを使用するために、いくつかの既存のベクトルおよび行列クラスを再実装しようとしましたが、ベクトルの配列に対して一連の操作を実行するたびに、これらの「メモリ アクセス違反」エラーが発生しているようです。私は SSE に比較的慣れていないので、単純なものから始めています。これが私のベクトルクラスの全体です:
したがって、まだ多くは行われておらず、いくつかのコンストラクター、アクセサー、および 1 つの操作のみです。私の (確かに限られた) SSE の知識を使用して、次のように追加操作を実装しました。
古いベクトル クラスに対して新しいベクトル クラスの速度をテストする (全体を再実装する価値があるかどうかを確認する) ために、SSEVector3D オブジェクトのランダムな配列を生成してそれらを追加する簡単なプログラムを作成しました。複雑すぎません:
変数は、タイプのsseVectors
要素を含む std::vectorであり、そのコンポーネントはすべてとSSEVector3D
の間の乱数に初期化されます。-1
1
これが私が抱えている問題です。のサイズが (試行錯誤を重ねてたどり着いた数値) 以下であればsseVectors
問題8,191
なく動作します。サイズが8,192
以上の場合、実行しようとすると次のエラーが発生します。
signal: SIGSEGV, si_code: 0 (アドレス: 0x00000080 でメモリアクセス違反)
しかし、その print 文を最後にコメントアウトするとsseVectors
、サイズが 8,192 以上であってもエラーになりません。
このベクトル クラスの書き方に何か問題がありますか? GCC バージョン 4.6 で Ubuntu 12.04.1 を実行しています