問題タブ [coalescing]
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.
clojure - clojure:暗黙的な変換の可能性を定義できますか?
というプロトコルがあり、それを実装IExample
するレコード タイプを定義します。A
B
このプロトコルを実装するために別の (基本的な) 型を拡張したいが、 から に変換する方法を知っているとしましょB
うA
:
この変換があるため、上のプロトコルのすべての呼び出しを委任することで、IExample
上B
のIExample
プロトコルにA
委任できます。
ただし、これは非常に多くのボイラープレート (特に大きなプロトコルの場合) であり、clojure の慣用句ではないようです。
関数を使用して、オブジェクトで関数が呼び出されるたびに暗黙的に変換B
するようにclojureに指示するにはどうすればよいですか?A
IExample
B
B-to-A
c++ - 不完全なグローバル メモリ アクセスは結合されていますか?
合体している場合はn < warpSize
?
N
このような状況は、 で割り切れないものがある場合、サイクルの最後の反復で発生しますwarpSize
。これらの状況について実行し、割り切れるデバイスメモリを割り当てるwarpSize
か、そのまま合体する必要がありますか?
ios - 複数の読み取り操作をバッチ処理する方法
ディスクに保存されている同じリソースに対して複数の読み取り操作を実行しています。
場合によっては、読み取り操作自体が、同じリソースに対する要求間の時間よりも長くかかることがあります。そのような場合、読み取り操作をディスクからの 1 つの読み取り要求にまとめてから、同じ結果をさまざまな要求元に返すことが理にかなっています。
最初に、最初のフェッチ リソース リクエストの結果をキャッシュしようとしましたが、リソースの読み取りに時間がかかりすぎて、新しいリクエストが入ってきたため、これは機能しませんでした。つまり、リソースもフェッチしようとすることになります。
すでに進行中のリクエストに追加のリクエストを「追加」することはできますか?
私が今持っているコードは、この基本構造に従っています (これでは十分ではありません)。
simd - Xeon Phi: 完全なメモリ結合を実現し、SMID ユニットを完全に活用することは不可能ですか?
キューブ (3D イメージ、正確にはスペクトル キューブ) を処理する GPU/CUDA コードがあります。立方体を一連の画像/スライス、または別の方法として、異なる空間位置 (正方形上) を持つスペクトルの束と考えてください。画像の各ピクセルは、異なる x 値、y 値、および同じ z 値を持ちます。スペクトル上の各ピクセルの x、y は同じですが、z は異なります。キューブのメモリは、2 つの連続するメモリ アドレスが x と x+1 に対応するように配置されます。
私の CUDA コードでは、各 CUDA スレッドが異なるスペクトルを処理するように構成しました。このようにして、グローバルメモリの合体を実現できます。次に、このコードを Intel Phi (#pragma offload+OpenMP) に移植しました。GPU の場合と同様に、各 Phi コアで異なるスペクトルを処理します。その結果、ここでもメモリの合体が達成されます。ただし、出来は悪いです。
- 問題は、グローバル メモリと合体したものの、各スペクトルのピクセルが連続したメモリ アドレスにないため、Phi のベクトル化によってパフォーマンスが向上しないことだと思います。(各コアは、関連するスペクトル全体で何らかの削減を行うことに注意してください。より正確には、1 次、2 次、および 3 次モーメントを計算します)。この考えは理にかなっていますか?
- SIMD からパフォーマンスを得るために私が間違っていなければ、メモリアドレスは連続している必要がありますよね?
- そのため、Xeon phi では、グローバル メモリを結合する完全なメモリを実現し、同時に SIMD を最大限に活用することは不可能のようです。これは理にかなっていますか、それとも私は完全に間違っていますか?
PS: Intel Xeon Phi 7120 を使用しています。