問題タブ [unroll]
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 - ループを具体的にアンロールするように gcc に指示する
特定のループをアンロールするように GCC に指示するにはどうすればよいですか? を使用して手動でループを展開できる CUDA SDK を使用し#pragma unroll
ました。gcc に同様の機能はありますか? 少しグーグルで検索しましたが、何も見つかりませんでした。
c - 手作業による効率的なループ展開
私はこのCコードを持っています:
コンパイラの最適化の理由から (Cell プロセッサの SPE で)、これを手動でループ解除する必要があるため、次のことを試しました。
しかし、私はに対処する方法がわかりません
また、lopp は "n_n" の各実行に依存するため、手動で最大値 "n_n" が得られる回数だけコードを記述する必要があります。
どのように修正できると思いますか?
c - gcc は if ステートメントを自動的に「展開」しますか?
次のようなループがあるとします。
いくつかの些細なタスクが、数回しか実行されない if ステートメントの背後でスタックします。「ループ中のif文は遅い!」とよく耳にします。したがって、(わずかに) パフォーマンスが向上することを期待して、ループを次のように分割します。
gcc (-O3 などの適切なフラグを使用) は、1 つのループを自動的に 2 つに分割しますか? それとも展開して反復回数を減らすだけですか?
loops - トリップカウントが一定でない場合、#pragma-unrolledループのパフォーマンスが低下するのはなぜですか?
ループ展開を使用して次のコードがあります:
ここで、nが定義された定数の場合、すべてが正常に機能します。ただし、nが変数の場合、パフォーマンスは大幅に低下します。命令が発行され実行されるのは約3回であることに気づきました。実行時にループ展開を行う方法を探していると思いますが、それは現実的ではないかもしれません。
scala - scala splat は varargs 以外のものに使用できますか?
与えられた例:
私は通常呼び出すことができます:
またはスプラットで:
しかし、splat を使用して、varargs パラメーター以外の引数を指定することはできますか? たとえば、次のようなことをしたいと思います:
それは機能しませんが、タプルであろうと他のものであろうと、単一のオブジェクトから複数の引数を提供するという同じ効果を達成する方法はありますか? タプルの長さとタイプの両方がコンパイル時にわかっている場合、これをタプルに実装できない理由はありますか?
c - c c++ でのシンボリック シミュレーション
C プログラムのループ展開形式を確認できるかどうか疑問に思っています。たとえば、次のforループがあります
問題は、「このプログラムのループ展開形式を読み取り可能な形式で表示することは可能か」ということです。gcc コンパイラが h99、g99、n99、f99、j99、および k99 (99 回目のループ反復での h、g、n、f、j、および k の値) をどのように表現できるかを知りたいです。または、h99、g99、n99、f99、j99、および k99 の式を入力 a99、b99、c99、d99 から a1、b1、c1、および d1 まで下げるにはどうすればよいでしょうか。
一言で言えば、すべての反復 "i" でシンボリック シミュレーションを実行したいと考えています。 d1.
ご不明な点がございましたら、お知らせください。
opengl - OpenGL の「最適化」均一変数
control_count (ベジエ曲線の制御点の数)という名前の統一変数があります。コードのマークされた部分で、定数4をこの変数に置き換えると、動作が停止します。4の場合は正常に動作しています。変数には値 4 が含まれている必要があります。ループの前後でもテストし、コードでもこれをマークしました。それは展開の問題であるべきですか?コンパイラがこれを行わないようにするにはどうすればよいですか?
}
定数4を使用した「良い」結果:
変数control_countを使用した「間違った」結果:
javascript - リストを関数の引数に展開していますか?
引数リストと 2 つのアリティ関数があるとします。
引数を関数の引数に展開するにはどうすればよいですか? - 例えば、Python でできること: f(*args)
.
私が試したこと(より多くのJavaScriptスタイルだと思います):