問題タブ [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 - _never_executed() の目的は?
このマクロが以前に定義されているのを見たことがありますが、その目的を本当に知りませんでした。誰でもこれに光を当てることができますか?
c - MSVC 組み込み関数を使用して、この GCC コードに相当するものを取得するにはどうすればよいですか?
次のコードは、GCC の clz/ctz の組み込み関数を呼び出します。他のシステムでは、C バージョンがあります。明らかに、システムに組み込みの clz/ctz 命令 (x86 や ARM など) がある場合、C バージョンは少し最適ではありません。
ここで MSVC の適切な ifdef を追加するには、どの関数を呼び出す必要がありますか、どのヘッダーを含める必要がありますか? 私はすでにこのページを見てきましたが、#pragma の目的 (必須ですか?) と、コンパイルの MSVC バージョン要件にどのような制限を課すのか、完全にはわかりません。MSVC を実際に使用していない人として、これらの組み込み関数が他のアーキテクチャで同等の C を持っているかどうか、またはそれらを #define するときに x86/x86_64 を #ifdef する必要があるかどうかもわかりません。
gcc - 私のバージョンの _bittestandset の問題点
私はアセンブリ言語が初めてです。gcc には MSVC のように intrin.h に _bittestandset 関数がないようなので、新たに実装しました。これは Linux では問題なく動作しますが、winVista マシンの mingw では問題が発生します。コードは次のとおりです。
memory - 組み込み memcmp
gcc docsによると、memcmp は GCC の組み込み関数ではありません。gcc で glibc の memcmp を高速化したい場合は、ドキュメントで定義されている下位レベルの組み込み関数を使用する必要があります。ただ、ネットで調べてみると、memcmpは組み込み関数という印象を持っている人が多いようです。一部のコンパイラ向けであり、他のコンパイラ向けではありませんか?
iphone - XcodeでのGCC4.2.1オプションの設定
XcodeとGCC4.2.1との相互作用についていくつか質問があります。
XcodeTargetPropertiesインスペクターがすべての可能なGCCオプションを公開しているようには見えません。これは正しいです?
具体的には、arm_neon.h組み込み関数ヘッダーで説明されているように、「mfpu」オプションを設定することに興味があります。これは可能ですか、またはサポートされていますか?または、他のXcode設定の副作用として設定されている可能性がありますか?
誰かがこれを試したか、いくつかのリソースを投稿できるなら、それは大いに役立つでしょう。
c - 内積 - SSE2 と BLAS の比較
ベクトル x と多数のベクトル y_i の内積を計算するための私の最善の策は何ですか。x と y_i の長さは 10k 程度です。
- y をマトリックスに押し込み、最適化された
s/dgemv
ルーチンを使用しますか? - または、SSE2 ソリューションをハンドコーディングしてみてください (cpuinfo によると、私は SSE3 を持っていません)。
ここでは一般的なガイダンスを探しているだけなので、どんな提案も役に立ちます。
はい、私にはパフォーマンスが必要です。光をありがとう。
c++ - movsd を使用してコンパイラに文字をコピーさせる
タイム クリティカルな関数で、比較的短いメモリ シーケンス (1 KB 未満、通常は 2 ~ 200 バイト) をコピーしたいと考えています。CPU側でこれに最適なコードはrep movsd
. ただし、コンパイラにこのコードを生成させることはできません。memcpy を使用すると、コンパイラの組み込み組み込み関数を使用してこれが行われることを望んでいましたが (漠然とそうしていたのを覚えています)、逆アセンブリとデバッグに基づいて、コンパイラは代わりに memcpy/memmove ライブラリ実装への呼び出しを使用しているようです。また、コンパイラが次のループを認識して単独で使用できるほどスマートであることを願っていましrep movsd
たが、そうではないようです。
rep movsd
インライン アセンブリを使用する以外に、Visual Studio コンパイラでシーケンスを生成する方法はありますか?
c++ - ベクトルの合計の最大要素をすばやく見つける方法は?
プログラムの最も内側のループに次のコードがあります
それが巧妙なアルゴリズム (しかし、これが最も興味深い) であろうと、C++ のトリック、組み込み関数、またはアセンブラーであろうと、私は気にしません。しかし、findmax 関数をより効率的にする必要があります。
よろしくお願いします。
編集: ブランチが最も遅い操作のようです(予測ミス?)。
c++ - C 組み込み関数の使用とクラスでのメモリ アラインメントの問題
わかりましたので、コードで C 組み込み関数を使い始めたばかりで、クラスを作成しました。これは次のように簡略化されています。
ここまでは順調ですね。しかし、_Vector3D メンバーを持つ 2 番目のクラスを作成すると、問題が発生します。
次のエラーが表示されます。
エラー C2719: 'origins': __declspec(align('16')) の仮パラメーターは位置合わせされません
コンストラクターのオーバーロードを指しています:
それで、私はこれについて間違った方法をとっていますか?代わりに構造体を使用する必要がありますか、それともクラスで動作させることができますか?
c# - C# 高速 crc32 計算:
Ants を使用してアプリケーションのプロファイリングを行ったところ、10% を超える割合が CRC32 計算に含まれていることがわかりました。(CRC32 計算はプレーンな C# で行われます)
グーグルで調べて、Visual Studio 2008 の次の組み込み関数について学びました。
_mm_crc32_u8
_mm_crc32_u16
_mm_crc32_u32
_mm_crc32_u64
( http://msdn.microsoft.com/en-us/library/bb514036.aspx )
自作のCRC32を置き換えるためにこれらを使用する方法を教えてもらえますか?