問題タブ [pipelining]

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 に答える
119 参照

c++ - 浮動小数点演算を含むこの特定のコードを最適化して効率を高めるにはどうすればよいですか?

浮動小数点演算には高いレイテンシがあり、実行に多くのクロック サイクルがかかるため、パイプラインが停止する可能性があることがわかっています。次のコードを最適化するさまざまな方法は何ですか。

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

md5 - VHDL の 3 ステージ MD5 パイプライン

このリンクに従って、3 段階の MD5 パイプラインを実装しようとしています。特に、31 ページのアルゴリズム。データ転送について説明している別のドキュメントもあります。MD5 アルゴリズムは RFC1321 で説明されています。これは FPGA (Terasic DE2-115) で行われます。このプロジェクトには回路図はなく、VHDL コードのみです。

このコードを使用するとb、ラウンド 0 の最初の段階で正しい値が得られますが、その後は何も適合しないようです。このシミュレーションで見られるように、ラウンド 0 の最初のステージは正しいですが、その後は正しくありません。これはa、この式で使用する場合です。

シミュレーション

しかし... 2番目のドキュメントを正しく理解していれば、(データ転送)cの代わりに使用する必要がありますaが、ラウンド0の最初の段階も機能しません。つまり、これを行うと、ラウンド 0 の最初のステージでも間違った数字が取得されます。

コード内の特定の文字列 ( helloo) については、次の値が正しいです (すべての段階)。

ちなみに、AKM文書akw内はコード内です。

私を正しい方向に導くためのヒントや提案は大歓迎です。コードが理想的です。不明な点がある場合は、質問を編集して修正を試みます。

0 投票する
5 に答える
28708 参照

assembly - 遅延スロットのポイントは何ですか?

そのため、遅延スロットに関する私の理解では、分岐命令が呼び出されたときに発生し、分岐に続く次の命令もメモリからロードされます。これのポイントは何ですか?分岐が行われた場合に、分岐後のコードが実行されないと思いませんか? ブランチが取られなかった場合に時間を節約するためですか?

私はパイプライン図を見ていますが、とにかく分岐後の命令が実行されているようです..

0 投票する
0 に答える
111 参照

java - netty.io を使用してパイプライン外でリクエストを起動する

netty a proxy を使用して実装する正しい方法は何ですか?ただし、パイプラインの段階でのみです。たとえば、`

currentTimeMillis API を使用して現在の Date を取得する代わりに、別のサーバーに非同期リクエストを発行し、結果を取得して、パイプラインの次のステップに進みます。前もって感謝します

0 投票する
0 に答える
219 参照

http - Http1.1パイプラインサポート

Google Chromeでhttpパイプラインのサポートを有効にし、amazon.comのような大きなサイトを使用している場合でもデータの受信方法にいくつかの問題があることを確認しました。主要サーバーからのパイプライン処理の現在のサポートは何ですか?http://technet.microsoft.com/en-us/library/cc302548.aspxに言及されていますが、透過プロキシ(microsoft TMG)によっても問題が発生する可能性があるのではないかと思います。

ISAServerはパイプラインを実装していません。クライアント要求のパイプラインがサポートされているため、クライアントは各応答を待たずに複数の要求を行うことができます。ただし、Webサーバーに要求を送信するときのパイプラインはサポートされていません。」パイプライン対応のWebサーバーから誤って受信された。

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

assembly - ISA分解の読み方は?また、GPUパイプラインと待機状態

OpenCLコンパイラが最適化するために生成するマシンコードを理解しようとしています。したがって、ツールm2s-opencl-kc(multi2simから)を使用して* .clファイルをオフラインコンパイルし、中間ファイル(スイッチ:-a)を*.isaファイルとして保持しました。この*.isaには、私が探しているもののように見える「分解」セクションが含まれています...

注:私のアセンブリの知識は少し「古い」ものです。Pentium386/486CPUなどの古いCPU用のアセンブリを作成しました。ですから、私は実際にベクトル命令を読むのに問題がありますが、それらについての理論的な知識はあります。

私が疑問に思っているのは、コマンドの前にある数字と文字の意味です。私が理解したように、コンパイラはいくつかの「複雑な」命令を次のように生成しました。

(質問:それはいわゆる「VeryLong InstructionWord」ですか?)

そして、この「複雑な」命令は、次のような複数の「単純な」命令で構成されています。

これらの「単純な」命令は、各ベクトル単位の命令のようです。4つのベクトル単位は、x、y、z、およびwによって参照されます。しかし、「t」とは何ですか?それは別のベクトル単位ですか?「サイプレス」GPU用にコンパイルしました...

さて、数字について...これらは「行番号」のようなものですか?先行ゼロ:複素数命令のシリアル番号...?先行ゼロなし:単純命令のシリアル番号...?

メモリアクセスの待機状態がないと仮定すると、同じシリアルを持つすべての「単純な」命令を1サイクルで「論理的に」実行できると思います。たとえば、(上記の複雑な命令の)次の命令はサイクル0で「実行」されます。

「実行された」とは、ある種の(たとえば4サイクルの)パイプライン処理があることを意味します。これは、上記の命令がサイクル0で実行を開始し、サイクル3の後に終了する必要があることを意味します。

パイプラインに関する質問

次の命令(「1」など)がレジスタR2.xを読み取るとどうなりますか?それはR2.xの古い値(命令「0」の前)を読み取るのでしょうか、それとも命令「0」が終了するまで命令「1」を遅らせるのでしょうか?それとも、これは「気にしない」状況(未定義の結果を生成する)であり、コンパイラーがこれが決して起こらないように注意しなければならない状況ですか?

メモリアクセスに関する質問

レジスタへのアクセスは、データフェッチサイクル中に待たずに実行できると思います。メモリアクセスには、アクセスするメモリの種類に応じて、追加のサイクルが必要になります。

  • 「__private」メモリは、ほとんどがレジスタにマップされている必要があります。
  • __ローカルメモリ(同じグループの作業項目間で最大64KBを共有):現在のGPUで何サイクル余分に期待する必要がありますか?
  • __グローバルメモリ:これは、たとえば256MBからxGBの外部DRAMである必要があります。ここで何サイクル余分に期待する必要がありますか?私の知る限り、このメモリはGPUデバイス用にキャッシュされていません。
  • __定数メモリは__グローバルメモリのようにする必要がありますが、__ローカルメモリを使用してキャッシュされます

「ISA」の良いチュートリアルはありますか?

よろしく、ステファン

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

http - Firefox でパイプライン処理が機能しないように見えるのはなぜですか?

http パイプラインを使用するとリソースの読み込み速度が最適化されることを確認するために、次のようなテストを行いました。

Mac で Firefox を開き、設定でサーバーあたりの最大接続数を 1 に変更してから、12 個の画像をロードするテスト ページを開きます。次の図を取得しました。

ここに画像の説明を入力

ブラウザは各画像を 1 つずつ読み込み、12 の画像の読み込みには約 12 秒かかります (画像ごとに 1 秒の遅延を追加します)。

次に、Firefox でパイプライン処理を有効にして、ページを更新します。次の図を取得しました。

ここに画像の説明を入力

ブロッキングがまったくないことがわかります。すべてのリクエストはパイプライン処理されます。ローディングの合計時間は短縮されると思いますが、残念ながらパイプラインなしの場合と同じです。したがって、パイプライン処理が機能していないようです。

原因と解決方法を知りたいです。私はApacheサーバーを使用しています。Apache で作成する必要のある構成はありますか?

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

entity-framework - Linq には、f# スタイルのパイプライン処理用のヘルパー関数が含まれています

次のように、データベースからいくつかのレコードとそれらの関係を積極的にロードしたいと思います。

これはうまく機能しますが、クエリ式を括弧で囲んで include を呼び出せるようにする必要がありますが、これは少し奇妙に見えます。より慣用的な F# スタイルで Include を呼び出すヘルパー関数を作成できないかと考えた結果、これにたどり着きました。

これで、クエリは次のようになります (型推論はクエリ可能な型で機能します:D)

コンパイルされます!しかし、実行すると、DbExtensions ライブラリからエラーが表示されます。The Include path expression must refer to a navigation property defined on the type.

Queryable.Include に渡す前にラムダ関数を調べると、次のようになります{<StartupCode$Service>.$Worker.emails@30} Microsoft.FSharp.Core.FSharpFunc<Entities.Email,Entities.QueueItem> {<StartupCode$Service>.$Worker.emails@30}

FSharpFunc問題は、ラムダがどのように解釈されているか、および s とs の間の変換に関係していると思いますExpression<Func<>>。ヘルパー関数を書き直してExpression<Func<'a, 'b>>、最初のパラメーターとして を持たせようとしました。さらに、FSharp.Core ソースをダウンロードして、Seq モジュールと QueryBuilder の実装のインスピレーションを探しましたが、何も機能しませんでした。私はヘルパー関数を次のように再定義しようとしました:

しかし、その後、コンパイラ エラーが発生しますThis function takes too many arguments, or is used in a context where a function is not expected

私は少し困惑しています。これを機能させる方法を誰かが提案できますか?